From 04ba87e23435e76583c05d4530d63686f9af712f Mon Sep 17 00:00:00 2001 From: Gangzheng Tong Date: Tue, 13 May 2025 19:23:27 -0700 Subject: Add Payload Access Qualifiers to the raytracing examples (#7092) --- examples/ray-tracing-pipeline/shaders.slang | 6 +++--- examples/ray-tracing/shaders.slang | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'examples') diff --git a/examples/ray-tracing-pipeline/shaders.slang b/examples/ray-tracing-pipeline/shaders.slang index 77193f08e..12013cb44 100644 --- a/examples/ray-tracing-pipeline/shaders.slang +++ b/examples/ray-tracing-pipeline/shaders.slang @@ -19,9 +19,9 @@ struct Primitive float3 getColor() { return color.xyz; } }; -struct RayPayload +struct [raypayload] RayPayload { - float4 color; + float4 color : read(caller) : write(caller, closesthit, miss); }; uniform RWTexture2D resultTexture; @@ -104,5 +104,5 @@ float4 fragmentMain( uniform RWTexture2D t) : SV_Target { - return t.Load(sv_position.xy); + return t.Load(uint2(sv_position.xy)); } diff --git a/examples/ray-tracing/shaders.slang b/examples/ray-tracing/shaders.slang index 0aff55435..006d02d4b 100644 --- a/examples/ray-tracing/shaders.slang +++ b/examples/ray-tracing/shaders.slang @@ -49,6 +49,8 @@ bool traceRayFirstHit( primitiveIndex = q.CommittedPrimitiveIndex(); return true; } + primitiveIndex = q.CandidatePrimitiveIndex(); + unused(t); return false; } @@ -80,6 +82,8 @@ bool traceRayNearestHit( primitiveIndex = q.CommittedPrimitiveIndex(); return true; } + primitiveIndex = q.CandidatePrimitiveIndex(); + unused(t); return false; } @@ -103,7 +107,7 @@ void computeMain( float4 resultColor = 0; - int primitiveIndex; + int primitiveIndex = 0; float intersectionT; if (traceRayNearestHit(sceneBVH, uniforms.cameraPosition.xyz, rayDir, intersectionT, primitiveIndex)) { @@ -140,5 +144,5 @@ float4 fragmentMain( uniform RWTexture2D t) : SV_Target { - return t.Load(sv_position.xy); + return t.Load(uint2(sv_position.xy)); } -- cgit v1.2.3