diff --git a/shaders/hlsl/raytracingpositionfetch/closesthit.rchit b/shaders/hlsl/raytracingpositionfetch/closesthit.rchit index 59e91df1..2223640c 100644 --- a/shaders/hlsl/raytracingpositionfetch/closesthit.rchit +++ b/shaders/hlsl/raytracingpositionfetch/closesthit.rchit @@ -20,12 +20,16 @@ struct UBO float4x4 projInverse; float4 lightPos; }; -cbuffer ubo : register(b2) -{ - UBO ubo; -}; +ConstantBuffer ubo : register(b2); + +// We need to use special syntax for SPIR-V inlines +#define HitTriangleVertexPositionsKHR 5335 +#define RayTracingPositionFetchKHR 5336 [[vk::ext_extension("SPV_KHR_ray_tracing_position_fetch")]] +[[vk::ext_capability(RayTracingPositionFetchKHR)]] +[[vk::ext_builtin_input(HitTriangleVertexPositionsKHR)]] +const static float3 gl_HitTriangleVertexPositions[3]; [shader("closesthit")] void main(inout Payload p, in Attributes attribs) @@ -35,11 +39,6 @@ void main(inout Payload p, in Attributes attribs) // With VK_KHR_ray_tracing_position_fetch we can access the vertices for the hit triangle in the shader - // We need to use special syntax for SPIR-V inlines - #define HitTriangleVertexPositionsKHR 5391 - [[vk::ext_builtin_output(HitTriangleVertexPositionsKHR)]] - static float3 gl_HitTriangleVertexPositions[3]; - float3 vertexPos0 = gl_HitTriangleVertexPositions[0]; float3 vertexPos1 = gl_HitTriangleVertexPositions[1]; float3 vertexPos2 = gl_HitTriangleVertexPositions[2]; diff --git a/shaders/hlsl/raytracingpositionfetch/closesthit.rchit.spv b/shaders/hlsl/raytracingpositionfetch/closesthit.rchit.spv new file mode 100644 index 00000000..cce003a5 Binary files /dev/null and b/shaders/hlsl/raytracingpositionfetch/closesthit.rchit.spv differ diff --git a/shaders/hlsl/raytracingpositionfetch/miss.rmiss.spv b/shaders/hlsl/raytracingpositionfetch/miss.rmiss.spv new file mode 100644 index 00000000..9cc0453a Binary files /dev/null and b/shaders/hlsl/raytracingpositionfetch/miss.rmiss.spv differ diff --git a/shaders/hlsl/raytracingpositionfetch/raygen.rgen.spv b/shaders/hlsl/raytracingpositionfetch/raygen.rgen.spv new file mode 100644 index 00000000..5535f2ed Binary files /dev/null and b/shaders/hlsl/raytracingpositionfetch/raygen.rgen.spv differ