summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArielG-NV <159081215+ArielG-NV@users.noreply.github.com>2024-04-01 13:42:32 -0400
committerGitHub <noreply@github.com>2024-04-01 10:42:32 -0700
commit844a8d6274cb5e4927bf3241a94b2a9d9553df90 (patch)
treedd42c7631a114d237fd59150e9c8e4ea39263849
parent75afa659e9a16589638083a1fcf9e879225619cd (diff)
Correctly emit spv extension targeting EXT rather than NV, added to test for this case (#3864)
CullPrimitive [follows capabilities to emit as per SPIR-V specification](https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#_capability)
-rw-r--r--source/slang/slang-emit-spirv.cpp2
-rw-r--r--tests/pipeline/rasterization/mesh/primitive-output.slang5
2 files changed, 6 insertions, 1 deletions
diff --git a/source/slang/slang-emit-spirv.cpp b/source/slang/slang-emit-spirv.cpp
index ae7c9bcc8..36c9aa5f8 100644
--- a/source/slang/slang-emit-spirv.cpp
+++ b/source/slang/slang-emit-spirv.cpp
@@ -3815,7 +3815,7 @@ struct SPIRVEmitContext
else if (semanticName == "sv_cullprimitive")
{
requireSPIRVCapability(SpvCapabilityMeshShadingEXT);
- ensureExtensionDeclaration(UnownedStringSlice("SPV_NV_mesh_shader"));
+ ensureExtensionDeclaration(UnownedStringSlice("SPV_EXT_mesh_shader"));
return getBuiltinGlobalVar(inst->getFullType(), SpvBuiltInCullPrimitiveEXT);
}
else if (semanticName == "sv_shadingrate")
diff --git a/tests/pipeline/rasterization/mesh/primitive-output.slang b/tests/pipeline/rasterization/mesh/primitive-output.slang
index 99d4f63b9..c83574d85 100644
--- a/tests/pipeline/rasterization/mesh/primitive-output.slang
+++ b/tests/pipeline/rasterization/mesh/primitive-output.slang
@@ -3,6 +3,11 @@
// Test that a simple mesh shader compiles
//TEST:CROSS_COMPILE:-target spirv -profile glsl_450+spirv_1_4 -entry main -stage mesh
+//TEST:SIMPLE(filecheck=SPV_CHECK):-target spirv -profile glsl_450+spirv_1_4 -entry main -stage mesh
+
+//SPV_CHECK-NOT: SPV_NV_mesh_shader
+//SPV_CHECK: SPV_EXT_mesh_shader
+//SPV_CHECK: CullPrimitiveEXT
const static float2 positions[3] = {
float2(0.0, -0.5),