diff options
Diffstat (limited to 'tests/diagnostics/raypayload-missing-access-qualifiers.slang')
| -rw-r--r-- | tests/diagnostics/raypayload-missing-access-qualifiers.slang | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/diagnostics/raypayload-missing-access-qualifiers.slang b/tests/diagnostics/raypayload-missing-access-qualifiers.slang new file mode 100644 index 000000000..d22a6300b --- /dev/null +++ b/tests/diagnostics/raypayload-missing-access-qualifiers.slang @@ -0,0 +1,37 @@ +// raypayload-missing-access-qualifiers.slang + +//DIAGNOSTIC_TEST:SIMPLE: + +// Test error for field in ray payload struct missing read/write access qualifiers + +struct [raypayload] RayPayload +{ + float4 color : read(caller, anyhit) : write(caller); + float4 colorMissingQualifiers; // Error expected here + +}; + +uniform RWTexture2D<float4> resultTexture; +uniform RaytracingAccelerationStructure sceneBVH; + +[shader("raygeneration")] +void rayGenShaderA() +{ + int2 threadIdx = DispatchRaysIndex().xy; + + float3 rayDir = float3(0, 0, 1); + float3 rayOrigin = 0; + rayOrigin.x = (threadIdx.x * 2) - 1; + rayOrigin.y = (threadIdx.y * 2) - 1; + + // Trace the ray. + RayDesc ray; + ray.Origin = rayOrigin; + ray.Direction = rayDir; + ray.TMin = 0.001; + ray.TMax = 10000.0; + RayPayload payload = { float4(0, 0, 0, 0) , float4(0, 0, 0, 0)}; + TraceRay(sceneBVH, RAY_FLAG_NONE, ~0, 0, 0, 0, ray, payload); + + resultTexture[threadIdx.xy] = payload.color; +} |
