yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Jay KwakUpdate spirv-header and spirv-tools to Jun/2024 (#4679)ad379b7c5

master
1.4 KiB34 linesraw
1// rayquery-closesthit.slang
2//TEST:SIMPLE(filecheck=CHECK): -profile glsl_460+GL_EXT_ray_tracing -stage closesthit -entry main -target spirv-assembly
3//TEST:SIMPLE(filecheck=CHECK): -stage closesthit -entry main -target spirv-assembly -emit-spirv-directly
4
5struct IntersectionPayload
6{
7    float3 triangleVerticeCommitted[3];
8    float3 triangleVerticeCandidate[3];
9};
10
11RaytracingAccelerationStructure accelerationStructure;
12
13void main(
14	BuiltInTriangleIntersectionAttributes 	attributes,
15	in out IntersectionPayload 				ioPayload)
16{
17	RayQuery<RAY_FLAG_NONE> rayQuery;
18
19	uint instanceInclusionMask = 0x00;
20	RayDesc rayDesc;
21	rayQuery.TraceRayInline(accelerationStructure, RAY_FLAG_NONE, instanceInclusionMask, rayDesc);
22
23	ioPayload.triangleVerticeCommitted = rayQuery.CandidateGetIntersectionTriangleVertexPositions();
24	ioPayload.triangleVerticeCandidate = rayQuery.CommittedGetIntersectionTriangleVertexPositions();
25}
26
27// CHECK: OpCapability RayQueryKHR
28// CHECK: OpCapability RayQueryPositionFetchKHR
29// CHECK: OpExtension "SPV_KHR_ray_query"
30// CHECK: OpExtension "SPV_KHR_ray_tracing_position_fetch"
31// CHECK: OpEntryPoint ClosestHit{{NV|KHR}} %main "main"
32// CHECK: OpRayQueryInitializeKHR %rayQuery{{.*}}
33// CHECK: OpRayQueryGetIntersectionTriangleVertexPositionsKHR %_arr_v3float_{{u?}}int_3{{.*}} %rayQuery{{.*}} %{{u?}}int_0
34// CHECK: OpRayQueryGetIntersectionTriangleVertexPositionsKHR %_arr_v3float_{{u?}}int_3{{.*}} %rayQuery{{.*}} %{{u?}}int_1