diff --git a/data/shaders/glsl/raytracingbasic/closesthit.rchit b/data/shaders/glsl/raytracingbasic/closesthit.rchit index 743a258536c7cec0d5f4001c95c25e8c0a6ea404..44936f2057bb296da122319a174b73e4833ec6b0 100644 --- a/data/shaders/glsl/raytracingbasic/closesthit.rchit +++ b/data/shaders/glsl/raytracingbasic/closesthit.rchit @@ -3,7 +3,7 @@ #extension GL_EXT_nonuniform_qualifier : enable layout(location = 0) rayPayloadInEXT vec3 hitValue; -hitAttributeEXT vec3 attribs; +hitAttributeEXT vec2 attribs; void main() { diff --git a/data/shaders/glsl/raytracingcallable/closesthit.rchit b/data/shaders/glsl/raytracingcallable/closesthit.rchit index 1b80673695aa97f2a3cce4b649ba0c10c4cf875c..210a2d5958ee4dc8968a77168cbb46500a11c7e9 100644 --- a/data/shaders/glsl/raytracingcallable/closesthit.rchit +++ b/data/shaders/glsl/raytracingcallable/closesthit.rchit @@ -4,7 +4,6 @@ layout(location = 0) rayPayloadInEXT vec3 hitValue; layout(location = 0) callableDataEXT vec3 outColor; -hitAttributeEXT vec3 attribs; layout(binding = 0, set = 0) uniform accelerationStructureEXT topLevelAS; diff --git a/data/shaders/glsl/raytracingreflections/closesthit.rchit b/data/shaders/glsl/raytracingreflections/closesthit.rchit index 6d057617a6958dee7ee8ca6b200d56f86c1562a3..301686c7365a554f0bdb2f2a72d5875d6e365c41 100644 --- a/data/shaders/glsl/raytracingreflections/closesthit.rchit +++ b/data/shaders/glsl/raytracingreflections/closesthit.rchit @@ -11,7 +11,7 @@ struct RayPayload { layout(location = 0) rayPayloadInEXT RayPayload rayPayload; -hitAttributeEXT vec3 attribs; +hitAttributeEXT vec2 attribs; layout(binding = 0, set = 0) uniform accelerationStructureEXT topLevelAS; layout(binding = 2, set = 0) uniform UBO diff --git a/data/shaders/glsl/raytracingshadows/closesthit.rchit b/data/shaders/glsl/raytracingshadows/closesthit.rchit index df016938d75d3f6587292255049590414335db8b..25079bdf89e2ec2f4f428a6803a04172967509eb 100644 --- a/data/shaders/glsl/raytracingshadows/closesthit.rchit +++ b/data/shaders/glsl/raytracingshadows/closesthit.rchit @@ -4,7 +4,7 @@ layout(location = 0) rayPayloadInEXT vec3 hitValue; layout(location = 2) rayPayloadEXT bool shadowed; -hitAttributeEXT vec3 attribs; +hitAttributeEXT vec2 attribs; layout(binding = 0, set = 0) uniform accelerationStructureEXT topLevelAS; layout(binding = 2, set = 0) uniform UBO diff --git a/data/shaders/hlsl/compile.py b/data/shaders/hlsl/compile.py index 24a9f250487beae7fe09e4704ce0fe1c08b038b2..2b44f4d287e6f7efeee35f90a692ffdab08bea2f 100644 --- a/data/shaders/hlsl/compile.py +++ b/data/shaders/hlsl/compile.py @@ -37,6 +37,7 @@ for root, dirs, files in os.walk(dir_path): hlsl_file = os.path.join(root, file) spv_out = hlsl_file + ".spv" + target = '' profile = '' if(hlsl_file.find('.vert') != -1): profile = 'vs_6_1' @@ -53,6 +54,7 @@ for root, dirs, files in os.walk(dir_path): elif(hlsl_file.find('.rgen') != -1 or hlsl_file.find('.rchit') != -1 or hlsl_file.find('.rmiss') != -1): + target='-fspv-target-env=vulkan1.2' profile = 'lib_6_3' print('Compiling %s' % (hlsl_file)) @@ -61,9 +63,10 @@ for root, dirs, files in os.walk(dir_path): '-spirv', '-T', profile, '-E', 'main', - '-fspv-extension=SPV_NV_ray_tracing', + '-fspv-extension=SPV_KHR_ray_tracing', '-fspv-extension=SPV_KHR_multiview', '-fspv-extension=SPV_KHR_shader_draw_parameters', '-fspv-extension=SPV_EXT_descriptor_indexing', + target, hlsl_file, '-Fo', spv_out]) diff --git a/data/shaders/hlsl/raytracingbasic/closesthit.rchit b/data/shaders/hlsl/raytracingbasic/closesthit.rchit index ace73d3d67912f32244052846f6db0f2bb36d371..2a8921ce5dcabbf9a94acde9aa152c7f39f44d37 100644 --- a/data/shaders/hlsl/raytracingbasic/closesthit.rchit +++ b/data/shaders/hlsl/raytracingbasic/closesthit.rchit @@ -11,7 +11,7 @@ struct Payload }; [shader("closesthit")] -void main(inout Payload p, in float3 attribs) +void main(inout Payload p, in float2 attribs) { const float3 barycentricCoords = float3(1.0f - attribs.x - attribs.y, attribs.x, attribs.y); p.hitValue = barycentricCoords; diff --git a/data/shaders/hlsl/raytracingcallable/closesthit.rchit b/data/shaders/hlsl/raytracingcallable/closesthit.rchit index 61caef219c51e5aa5e24cb522c8c769eace856fc..80cd773d69bbfe207a6990ba7d73e312c772f938 100644 --- a/data/shaders/hlsl/raytracingcallable/closesthit.rchit +++ b/data/shaders/hlsl/raytracingcallable/closesthit.rchit @@ -1,10 +1,5 @@ // Copyright 2021 Sascha Willems -struct Attribute -{ - float2 attribs; -}; - struct Payload { [[vk::location(0)]] float3 hitValue; @@ -16,7 +11,7 @@ struct CallData }; [shader("closesthit")] -void main(inout Payload p, in float3 attribs) +void main(inout Payload p, in float2 attribs) { // Execute the callable shader indexed by the current geometry being hit // For our sample this means that the first callable shader in the SBT is invoked for the first triangle, the second callable shader for the second triangle, etc. diff --git a/data/shaders/hlsl/raytracingreflections/closesthit.rchit b/data/shaders/hlsl/raytracingreflections/closesthit.rchit index aff970a45107e1b5f556eb7d5a2bad189a407d46..643bfbe9f3f8326d17bf284d7d146642f52ab856 100644 --- a/data/shaders/hlsl/raytracingreflections/closesthit.rchit +++ b/data/shaders/hlsl/raytracingreflections/closesthit.rchit @@ -50,7 +50,7 @@ Vertex unpack(uint index) } [shader("closesthit")] -void main(inout RayPayload rayPayload, in float3 attribs) +void main(inout RayPayload rayPayload, in float2 attribs) { uint PrimitiveID = PrimitiveIndex(); int3 index = int3(indices[3 * PrimitiveID], indices[3 * PrimitiveID + 1], indices[3 * PrimitiveID + 2]); diff --git a/data/shaders/hlsl/raytracingshadows/closesthit.rchit b/data/shaders/hlsl/raytracingshadows/closesthit.rchit index 0d04e5eef513c44b306fdcc716aea13dfd6a7b62..4408f55cb326aa9ce645234ef050910dc0aff19d 100644 --- a/data/shaders/hlsl/raytracingshadows/closesthit.rchit +++ b/data/shaders/hlsl/raytracingshadows/closesthit.rchit @@ -52,7 +52,7 @@ Vertex unpack(uint index) } [shader("closesthit")] -void main(in InPayload inPayload, inout InOutPayload inOutPayload, in float3 attribs) +void main(in InPayload inPayload, inout InOutPayload inOutPayload, in float2 attribs) { uint PrimitiveID = PrimitiveIndex(); int3 index = int3(indices[3 * PrimitiveID], indices[3 * PrimitiveID + 1], indices[3 * PrimitiveID + 2]);