diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/vkray/rayquery-closesthit.slang | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/vkray/rayquery-closesthit.slang b/tests/vkray/rayquery-closesthit.slang new file mode 100644 index 000000000..6576e09bd --- /dev/null +++ b/tests/vkray/rayquery-closesthit.slang @@ -0,0 +1,35 @@ +// rayquery-closesthit.slang +//TEST:SIMPLE(filecheck=CHECK): -profile glsl_460+GL_EXT_ray_tracing -stage closesthit -entry main -target spirv-assembly +//TEST:SIMPLE(filecheck=CHECK): -stage closesthit -entry main -target spirv-assembly -emit-spirv-directly + +struct IntersectionPayload +{ + float3 triangleVerticeCommitted[3]; + float3 triangleVerticeCandidate[3]; +}; + +RaytracingAccelerationStructure accelerationStructure; + +void main( + BuiltInTriangleIntersectionAttributes attributes, + in out IntersectionPayload ioPayload) +{ + RayQuery<RAY_FLAG_NONE> rayQuery; + + uint instanceInclusionMask = 0x00; + RayDesc rayDesc; + rayQuery.TraceRayInline(accelerationStructure, RAY_FLAG_NONE, instanceInclusionMask, rayDesc); + + ioPayload.triangleVerticeCommitted = rayQuery.CandidateGetIntersectionTriangleVertexPositions(); + ioPayload.triangleVerticeCandidate = rayQuery.CommittedGetIntersectionTriangleVertexPositions(); +} + +// CHECK: OpCapability RayQueryKHR +// CHECK: OpCapability RayTracingPositionFetchKHR +// CHECK: OpCapability RayQueryPositionFetchKHR +// CHECK: OpExtension "SPV_KHR_ray_query" +// CHECK: OpExtension "SPV_KHR_ray_tracing_position_fetch" +// CHECK: OpEntryPoint ClosestHitNV %main "main" +// CHECK: OpRayQueryInitializeKHR %rayQuery{{.*}} +// CHECK: OpRayQueryGetIntersectionTriangleVertexPositionsKHR %_arr_v3float_{{u?}}int_3{{.*}} %rayQuery{{.*}} %{{u?}}int_0 +// CHECK: OpRayQueryGetIntersectionTriangleVertexPositionsKHR %_arr_v3float_{{u?}}int_3{{.*}} %rayQuery{{.*}} %{{u?}}int_1 |
