@@ -571,9 +571,11 @@ TEST_F(DxilModuleTest, PayloadQualifier) {
571571 " {\n "
572572 " double a : read(caller, closesthit, anyhit) : "
573573 " write(caller, miss, closesthit);\n "
574+ " int b : read(caller) : write(miss);\n "
574575 " };\n\n "
575576 " [shader(\" miss\" )]\n "
576- " void Miss( inout Payload payload ) { payload.a = 4.2; }\n " ;
577+ " void Miss( inout Payload payload ) { payload.a = 4.2; "
578+ " payload.b = 1; }\n " ;
577579
578580 c.Compile (shader, L" lib_6_6" , arguments, {});
579581
@@ -582,9 +584,9 @@ TEST_F(DxilModuleTest, PayloadQualifier) {
582584
583585 for (auto &p : DTS.GetPayloadAnnotationMap ()) {
584586 const DxilPayloadAnnotation &plAnnotation = *p.second ;
585- for ( unsigned i = 0 ; i < plAnnotation. GetNumFields (); ++i) {
587+ {
586588 const DxilPayloadFieldAnnotation &fieldAnnotation =
587- plAnnotation.GetFieldAnnotation (i );
589+ plAnnotation.GetFieldAnnotation (0 );
588590 VERIFY_IS_TRUE (fieldAnnotation.HasAnnotations ());
589591 VERIFY_ARE_EQUAL (DXIL::PayloadAccessQualifier::ReadWrite,
590592 fieldAnnotation.GetPayloadFieldQualifier (
@@ -599,6 +601,23 @@ TEST_F(DxilModuleTest, PayloadQualifier) {
599601 fieldAnnotation.GetPayloadFieldQualifier (
600602 DXIL::PayloadAccessShaderStage::Anyhit));
601603 }
604+ {
605+ const DxilPayloadFieldAnnotation &fieldAnnotation =
606+ plAnnotation.GetFieldAnnotation (1 );
607+ VERIFY_IS_TRUE (fieldAnnotation.HasAnnotations ());
608+ VERIFY_ARE_EQUAL (DXIL::PayloadAccessQualifier::Read,
609+ fieldAnnotation.GetPayloadFieldQualifier (
610+ DXIL::PayloadAccessShaderStage::Caller));
611+ VERIFY_ARE_EQUAL (DXIL::PayloadAccessQualifier::NoAccess,
612+ fieldAnnotation.GetPayloadFieldQualifier (
613+ DXIL::PayloadAccessShaderStage::Closesthit));
614+ VERIFY_ARE_EQUAL (DXIL::PayloadAccessQualifier::Write,
615+ fieldAnnotation.GetPayloadFieldQualifier (
616+ DXIL::PayloadAccessShaderStage::Miss));
617+ VERIFY_ARE_EQUAL (DXIL::PayloadAccessQualifier::NoAccess,
618+ fieldAnnotation.GetPayloadFieldQualifier (
619+ DXIL::PayloadAccessShaderStage::Anyhit));
620+ }
602621 }
603622}
604623
0 commit comments