diff options
| author | Yong He <yonghe@outlook.com> | 2023-05-02 20:29:38 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-02 20:29:38 -0700 |
| commit | d52376a65f37fcbbb67428b917fd3819436b6dfb (patch) | |
| tree | da25b3c9a00bd003b1970b4a6c4eb38eccf62aa1 /tests/pipeline | |
| parent | 55291b0bf6d729fcbaf75a01926da7da8975b8e9 (diff) | |
Various dxc/fxc compatibility fixes. (#2863)
* Various dxc/fxc compatibility fixes.
* Cleanup.
* Fix test cases.
* Fix comments.
---------
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'tests/pipeline')
| -rw-r--r-- | tests/pipeline/ray-tracing/trace-ray-inline.slang.glsl | 137 |
1 files changed, 132 insertions, 5 deletions
diff --git a/tests/pipeline/ray-tracing/trace-ray-inline.slang.glsl b/tests/pipeline/ray-tracing/trace-ray-inline.slang.glsl index 166d19537..bb605a14a 100644 --- a/tests/pipeline/ray-tracing/trace-ray-inline.slang.glsl +++ b/tests/pipeline/ray-tracing/trace-ray-inline.slang.glsl @@ -3,6 +3,8 @@ #extension GL_EXT_ray_query : require layout(row_major) uniform; layout(row_major) buffer; + +#line 89 "tests/pipeline/ray-tracing/trace-ray-inline.slang" struct SLANG_ParameterGroup_C_0 { vec3 origin_0; @@ -14,151 +16,276 @@ struct SLANG_ParameterGroup_C_0 uint shouldStopAtFirstHit_0; }; + +#line 89 layout(binding = 1) layout(std140) uniform _S1 { - SLANG_ParameterGroup_C_0 _data; -} C_0; + vec3 origin_0; + float tMin_0; + vec3 direction_0; + float tMax_0; + uint rayFlags_0; + uint instanceMask_0; + uint shouldStopAtFirstHit_0; +}C_0; + +#line 12 layout(binding = 0) uniform accelerationStructureEXT myAccelerationStructure_0; + +#line 59 struct MyProceduralHitAttrs_0 { int value_0; }; + +#line 81 bool myProceduralIntersection_0(inout float tHit_0, inout MyProceduralHitAttrs_0 hitAttrs_0) { return true; } + +#line 26 struct MyRayPayload_0 { int value_1; }; + +#line 69 bool myProceduralAnyHit_0(inout MyRayPayload_0 payload_0) { return true; } + +#line 51 bool myTriangleAnyHit_0(inout MyRayPayload_0 payload_1) { return true; } + +#line 40 void myTriangleClosestHit_0(inout MyRayPayload_0 payload_2) { payload_2.value_1 = 1; return; } + +#line 65 void myProceduralClosestHit_0(inout MyRayPayload_0 payload_3, MyProceduralHitAttrs_0 attrs_0) { payload_3.value_1 = attrs_0.value_0; return; } + +#line 33 void myMiss_0(inout MyRayPayload_0 payload_4) { payload_4.value_1 = 0; return; } + +#line 103 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; void main() { + rayQueryEXT query_0; + MyRayPayload_0 payload_5; + +#line 110 payload_5.value_1 = -1; - rayQueryInitializeEXT((query_0), (myAccelerationStructure_0), (C_0._data.rayFlags_0 | 512), (C_0._data.instanceMask_0), (C_0._data.origin_0), (C_0._data.tMin_0), (C_0._data.direction_0), (C_0._data.tMax_0)); + + rayQueryInitializeEXT((query_0), (myAccelerationStructure_0), (C_0.rayFlags_0 | 512), (C_0.instanceMask_0), (C_0.origin_0), (C_0.tMin_0), (C_0.direction_0), (C_0.tMax_0)); + +#line 112 MyProceduralHitAttrs_0 committedProceduralAttrs_0; + +#line 112 for(;;) { + +#line 121 bool _S2 = rayQueryProceedEXT(query_0); + +#line 121 if(!_S2) { + +#line 121 break; } uint _S3 = (rayQueryGetIntersectionTypeEXT((query_0), false)); + +#line 123 MyProceduralHitAttrs_0 committedProceduralAttrs_1; + +#line 123 switch(_S3) { case 1U: { MyProceduralHitAttrs_0 candidateProceduralAttrs_0; + +#line 127 candidateProceduralAttrs_0.value_0 = 0; float tHit_1 = 0.0; bool _S4 = myProceduralIntersection_0(tHit_1, candidateProceduralAttrs_0); + +#line 129 if(_S4) { bool _S5 = myProceduralAnyHit_0(payload_5); + +#line 131 if(_S5) { rayQueryGenerateIntersectionEXT(query_0, tHit_1); MyProceduralHitAttrs_0 _S6 = candidateProceduralAttrs_0; - if(C_0._data.shouldStopAtFirstHit_0 != 0U) + if(C_0.shouldStopAtFirstHit_0 != 0U) { + +#line 136 rayQueryTerminateEXT(query_0); + +#line 135 } + else + { + +#line 135 + } + +#line 135 committedProceduralAttrs_1 = _S6; + +#line 135 } else { + +#line 135 committedProceduralAttrs_1 = committedProceduralAttrs_0; + +#line 135 } + +#line 135 } else { + +#line 135 committedProceduralAttrs_1 = committedProceduralAttrs_0; + +#line 135 } + +#line 135 break; } case 0U: { + +#line 144 bool _S7 = myTriangleAnyHit_0(payload_5); + +#line 144 if(_S7) { rayQueryConfirmIntersectionEXT(query_0); - if(C_0._data.shouldStopAtFirstHit_0 != 0U) + if(C_0.shouldStopAtFirstHit_0 != 0U) { + +#line 148 rayQueryTerminateEXT(query_0); + +#line 147 } + else + { + +#line 147 + } + +#line 144 } + else + { + +#line 144 + } + +#line 144 committedProceduralAttrs_1 = committedProceduralAttrs_0; + +#line 144 break; } default: { + +#line 144 committedProceduralAttrs_1 = committedProceduralAttrs_0; + +#line 144 break; } } + +#line 119 committedProceduralAttrs_0 = committedProceduralAttrs_1; + +#line 119 } + +#line 158 uint _S8 = (rayQueryGetIntersectionTypeEXT((query_0), true)); + +#line 158 switch(_S8) { case 1U: { + +#line 161 myTriangleClosestHit_0(payload_5); break; } case 2U: { + +#line 165 myProceduralClosestHit_0(payload_5, committedProceduralAttrs_0); break; } case 0U: { + +#line 169 myMiss_0(payload_5); break; } default: { + +#line 170 break; } } + +#line 172 return; } + |
