From 844a8d6274cb5e4927bf3241a94b2a9d9553df90 Mon Sep 17 00:00:00 2001 From: ArielG-NV <159081215+ArielG-NV@users.noreply.github.com> Date: Mon, 1 Apr 2024 13:42:32 -0400 Subject: 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) --- source/slang/slang-emit-spirv.cpp | 2 +- tests/pipeline/rasterization/mesh/primitive-output.slang | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) 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), -- cgit v1.2.3