From 9d40ce4e8921ef468281c91f052dbd443ecf56e2 Mon Sep 17 00:00:00 2001 From: cheneym2 Date: Thu, 19 Sep 2024 16:02:49 -0400 Subject: Update spirv-tools version (#5089) * Update spirv-headers and spirv-tools versions * Fix compute-derivative regressions with upgraded spirv headers Extension was promoted from NV to KHR while retaining same enums. Fixes #5106 * Prevent DCE on ray trace position fetch Adds dummy usage to the intersection positions fetched from HitTriangleVertexPositions to prevent DCE from removing their usage. Fixes #5105 * Update spirv-tools-generated * More DerivativeGroup*KHR test fixes Add fixes for a missing test intrinsic-derivative-function-in-compute.slang Use the {{NV|KHR}} syntax to tolerate either enum. Fixes #5106 * Squash tabs in closesthit test * HACK test CI * Avoid multiple IncomingRayPayloadKHR storage params * Revert "HACK test CI" This reverts commit c2556ea2baef0bd48e4c86f90cf17dfab80015c1. * Avoid multiple IncomingRayPayloadKHR storage params in anyhit --- .../derivative-mode-many-entry-points1.slang | 8 ++--- .../derivative-mode-many-entry-points2.slang | 4 +-- .../derivative-mode-many-entry-points3.slang | 2 +- .../derivative-mode-undefined-mode.slang | 6 ++-- .../derivative-mode-undefined-mode2.slang | 4 +-- .../derivative-mode-undefined-mode3.slang | 4 +-- .../intrinsic-derivative-function-in-compute.slang | 12 ++++---- tests/vkray/anyhit.slang | 11 +++---- tests/vkray/closesthit.slang | 35 +++++++++++----------- 9 files changed, 44 insertions(+), 42 deletions(-) (limited to 'tests') diff --git a/tests/glsl-intrinsic/compute-derivative/derivative-mode-many-entry-points1.slang b/tests/glsl-intrinsic/compute-derivative/derivative-mode-many-entry-points1.slang index 498542a39..28a86d154 100644 --- a/tests/glsl-intrinsic/compute-derivative/derivative-mode-many-entry-points1.slang +++ b/tests/glsl-intrinsic/compute-derivative/derivative-mode-many-entry-points1.slang @@ -1,10 +1,10 @@ //TEST:SIMPLE(filecheck=CHECK_SPV_SYNTAX): -allow-glsl -fvk-use-entrypoint-name -target spirv -// CHECK_SPV_SYNTAX: DerivativeGroupQuadsNV -// CHECK_SPV_SYNTAX: DerivativeGroupLinearNV +// CHECK_SPV_SYNTAX: DerivativeGroupQuads{{NV|KHR}} +// CHECK_SPV_SYNTAX: DerivativeGroupLinear{{NV|KHR}} //TEST:SIMPLE(filecheck=CHECK_GLSL_SYNTAX): -allow-glsl -fvk-use-entrypoint-name -target spirv -DGLSL_SYNTAX -// CHECK_GLSL_SYNTAX: DerivativeGroupQuadsNV -// CHECK_GLSL_SYNTAX: DerivativeGroupQuadsNV +// CHECK_GLSL_SYNTAX: DerivativeGroupQuads{{NV|KHR}} +// CHECK_GLSL_SYNTAX: DerivativeGroupQuads{{NV|KHR}} #ifdef GLSL_SYNTAX layout(derivative_group_quadsNV) in; #endif diff --git a/tests/glsl-intrinsic/compute-derivative/derivative-mode-many-entry-points2.slang b/tests/glsl-intrinsic/compute-derivative/derivative-mode-many-entry-points2.slang index 0dbaac640..2749c3fae 100644 --- a/tests/glsl-intrinsic/compute-derivative/derivative-mode-many-entry-points2.slang +++ b/tests/glsl-intrinsic/compute-derivative/derivative-mode-many-entry-points2.slang @@ -1,6 +1,6 @@ //TEST:SIMPLE(filecheck=CHECK_SPV_SYNTAX): -allow-glsl -fvk-use-entrypoint-name -target spirv -// CHECK_SPV_SYNTAX: DerivativeGroupQuadsNV -// CHECK_SPV_SYNTAX: DerivativeGroupLinearNV +// CHECK_SPV_SYNTAX: DerivativeGroupQuads{{NV|KHR}} +// CHECK_SPV_SYNTAX: DerivativeGroupLinear{{NV|KHR}} #ifdef GLSL_SYNTAX layout(derivative_group_quadsNV) in; diff --git a/tests/glsl-intrinsic/compute-derivative/derivative-mode-many-entry-points3.slang b/tests/glsl-intrinsic/compute-derivative/derivative-mode-many-entry-points3.slang index 327f41f36..74255d51e 100644 --- a/tests/glsl-intrinsic/compute-derivative/derivative-mode-many-entry-points3.slang +++ b/tests/glsl-intrinsic/compute-derivative/derivative-mode-many-entry-points3.slang @@ -1,5 +1,5 @@ //TEST:SIMPLE(filecheck=CHECK_SPV_SYNTAX): -allow-glsl -fvk-use-entrypoint-name -target spirv -// CHECK_SPV_SYNTAX: DerivativeGroupQuadsNV +// CHECK_SPV_SYNTAX: DerivativeGroupQuads{{NV|KHR}} #ifdef GLSL_SYNTAX layout(derivative_group_quadsNV) in; diff --git a/tests/glsl-intrinsic/compute-derivative/derivative-mode-undefined-mode.slang b/tests/glsl-intrinsic/compute-derivative/derivative-mode-undefined-mode.slang index 610045b78..76b9c643e 100644 --- a/tests/glsl-intrinsic/compute-derivative/derivative-mode-undefined-mode.slang +++ b/tests/glsl-intrinsic/compute-derivative/derivative-mode-undefined-mode.slang @@ -1,6 +1,6 @@ //TEST:SIMPLE(filecheck=CHECK_SPV_SYNTAX): -allow-glsl -fvk-use-entrypoint-name -target spirv -// CHECK_SPV_SYNTAX: DerivativeGroupQuadsNV -// CHECK_SPV_SYNTAX: DerivativeGroupQuadsNV +// CHECK_SPV_SYNTAX: DerivativeGroupQuads{{NV|KHR}} +// CHECK_SPV_SYNTAX: DerivativeGroupQuads{{NV|KHR}} //TEST:SIMPLE(filecheck=CHECK_GLSL_SYNTAX): -allow-glsl -stage compute -entry main2 -target glsl // CHECK_GLSL_SYNTAX: derivative_group_quadsNV @@ -22,4 +22,4 @@ void main1(uint3 dispatchThreadID : SV_DispatchThreadID) void main2(uint3 dispatchThreadID : SV_DispatchThreadID) { outputBuffer.result = asint(ddx(1)); -} \ No newline at end of file +} diff --git a/tests/glsl-intrinsic/compute-derivative/derivative-mode-undefined-mode2.slang b/tests/glsl-intrinsic/compute-derivative/derivative-mode-undefined-mode2.slang index e02f0dbe7..6e266e063 100644 --- a/tests/glsl-intrinsic/compute-derivative/derivative-mode-undefined-mode2.slang +++ b/tests/glsl-intrinsic/compute-derivative/derivative-mode-undefined-mode2.slang @@ -1,5 +1,5 @@ //TEST:SIMPLE(filecheck=CHECK_SPV_SYNTAX): -allow-glsl -stage compute -entry main -target spirv -// CHECK_SPV_SYNTAX: DerivativeGroupQuadsNV +// CHECK_SPV_SYNTAX: DerivativeGroupQuads{{NV|KHR}} //TEST:SIMPLE(filecheck=CHECK_GLSL_SYNTAX): -allow-glsl -stage compute -entry main -target glsl // CHECK_GLSL_SYNTAX: derivative_group_quadsNV @@ -18,4 +18,4 @@ int someFunc() void main(uint3 dispatchThreadID : SV_DispatchThreadID) { outputBuffer.result = someFunc(); -} \ No newline at end of file +} diff --git a/tests/glsl-intrinsic/compute-derivative/derivative-mode-undefined-mode3.slang b/tests/glsl-intrinsic/compute-derivative/derivative-mode-undefined-mode3.slang index 6dde2fc09..e2f1f8064 100644 --- a/tests/glsl-intrinsic/compute-derivative/derivative-mode-undefined-mode3.slang +++ b/tests/glsl-intrinsic/compute-derivative/derivative-mode-undefined-mode3.slang @@ -1,5 +1,5 @@ //TEST:SIMPLE(filecheck=CHECK_SPV_SYNTAX): -allow-glsl -stage compute -entry main -target spirv -// CHECK_SPV_SYNTAX: DerivativeGroupQuadsNV +// CHECK_SPV_SYNTAX: DerivativeGroupQuads{{NV|KHR}} //TEST:SIMPLE(filecheck=CHECK_GLSL_SYNTAX): -allow-glsl -stage compute -entry main -target glsl // CHECK_GLSL_SYNTAX: derivative_group_quadsNV @@ -17,4 +17,4 @@ int someFunc() void main(uint3 dispatchThreadID : SV_DispatchThreadID) { outputBuffer.result = someFunc(); -} \ No newline at end of file +} diff --git a/tests/glsl-intrinsic/compute-derivative/intrinsic-derivative-function-in-compute.slang b/tests/glsl-intrinsic/compute-derivative/intrinsic-derivative-function-in-compute.slang index 36d65c24e..c5c2e36cc 100644 --- a/tests/glsl-intrinsic/compute-derivative/intrinsic-derivative-function-in-compute.slang +++ b/tests/glsl-intrinsic/compute-derivative/intrinsic-derivative-function-in-compute.slang @@ -10,14 +10,14 @@ // CHECK_GLSL_LINEAR_C: layout(derivative_group_linearNV) //TEST:SIMPLE(filecheck=CHECK_SPV_QUAD_C): -allow-glsl -stage compute -entry computeMain -target spirv -DQUAD -DCOMPUTE -// CHECK_SPV_QUAD_C: DerivativeGroupQuadsNV -// CHECK_SPV_QUAD_C-NOT: DerivativeGroupQuadsNV +// CHECK_SPV_QUAD_C: DerivativeGroupQuads{{NV|KHR}} +// CHECK_SPV_QUAD_C-NOT: DerivativeGroupQuads{{NV|KHR}} // CHECK_SPV_QUAD_C: "SPV_NV_compute_shader_derivatives" // CHECK_SPV_QUAD_C-NOT: "SPV_NV_compute_shader_derivatives" //TEST:SIMPLE(filecheck=CHECK_SPV_LINEAR_C): -allow-glsl -stage compute -entry computeMain -target spirv -DLINEAR -DCOMPUTE -// CHECK_SPV_LINEAR_C: DerivativeGroupLinearNV -// CHECK_SPV_LINEAR_C-NOT: DerivativeGroupLinearNV +// CHECK_SPV_LINEAR_C: DerivativeGroupLinear{{NV|KHR}} +// CHECK_SPV_LINEAR_C-NOT: DerivativeGroupLinear{{NV|KHR}} // CHECK_SPV_LINEAR_C: "SPV_NV_compute_shader_derivatives" // CHECK_SPV_LINEAR_C-NOT: "SPV_NV_compute_shader_derivatives" @@ -28,11 +28,11 @@ // CHECK_GLSL_F-NOT: GL_NV_compute_shader_derivatives //TEST:SIMPLE(filecheck=CHECK_SPV_QUAD_F): -allow-glsl -stage fragment -entry computeMain -target spirv -DQUAD -// CHECK_SPV_QUAD_F-NOT: DerivativeGroupQuadsNV +// CHECK_SPV_QUAD_F-NOT: DerivativeGroupQuads{{NV|KHR}} // CHECK_SPV_QUAD_F-NOT: "SPV_NV_compute_shader_derivatives" //TEST:SIMPLE(filecheck=CHECK_SPV_LINEAR_F): -allow-glsl -stage fragment -entry computeMain -target spirv -DLINEAR -// CHECK_SPV_LINEAR_F-NOT: DerivativeGroupLinearNV +// CHECK_SPV_LINEAR_F-NOT: DerivativeGroupLinear{{NV|KHR}} // CHECK_SPV_LINEAR_F-NOT: "SPV_NV_compute_shader_derivatives" //TEST:SIMPLE(filecheck=CHECK_GLSL_QUAD_F): -allow-glsl -stage fragment -entry computeMain -target glsl diff --git a/tests/vkray/anyhit.slang b/tests/vkray/anyhit.slang index 641fa3059..45d35b1fa 100644 --- a/tests/vkray/anyhit.slang +++ b/tests/vkray/anyhit.slang @@ -12,6 +12,7 @@ struct SphereHitAttributes struct ShadowRay { float4 hitDistance; + float3 dummyOut; }; struct Params @@ -42,13 +43,13 @@ void main( } uint index = 0U; - HitTriangleVertexPosition(index); + ioPayload.dummyOut = HitTriangleVertexPosition(index); - index = 1U; - HitTriangleVertexPosition(index); + index = 1U; + ioPayload.dummyOut += HitTriangleVertexPosition(index); - index = 2U; - HitTriangleVertexPosition(index); + index = 2U; + ioPayload.dummyOut += HitTriangleVertexPosition(index); } // SPIRV-DAG: OpCapability RayTracing diff --git a/tests/vkray/closesthit.slang b/tests/vkray/closesthit.slang index 31728abc1..b7d40e5f9 100644 --- a/tests/vkray/closesthit.slang +++ b/tests/vkray/closesthit.slang @@ -5,6 +5,7 @@ struct ReflectionRay { float4 color; + float3 dummyOut; }; StructuredBuffer colors; @@ -12,33 +13,33 @@ StructuredBuffer colors; layout(shaderRecordNV) cbuffer ShaderRecord { - uint shaderRecordID; + uint shaderRecordID; } void main( - BuiltInTriangleIntersectionAttributes attributes, - in out ReflectionRay ioPayload) + BuiltInTriangleIntersectionAttributes attributes, + in out ReflectionRay ioPayload) { - uint materialID = (InstanceIndex() << 1) - + InstanceID() - + PrimitiveIndex() - + HitKind() - + shaderRecordID; + uint materialID = (InstanceIndex() << 1) + + InstanceID() + + PrimitiveIndex() + + HitKind() + + shaderRecordID; - float4 color = colors[materialID]; + float4 color = colors[materialID]; - color *= RayTCurrent() - RayTMin(); + color *= RayTCurrent() - RayTMin(); - ioPayload.color = color; + ioPayload.color = color; - uint index = 0U; - HitTriangleVertexPosition(index); + uint index = 0U; + ioPayload.dummyOut = HitTriangleVertexPosition(index); - index = 1U; - HitTriangleVertexPosition(index); + index = 1U; + ioPayload.dummyOut += HitTriangleVertexPosition(index); - index = 2U; - HitTriangleVertexPosition(index); + index = 2U; + ioPayload.dummyOut += HitTriangleVertexPosition(index); } // CHECK: OpCapability RayTracing -- cgit v1.2.3