summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit-spirv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-emit-spirv.cpp')
-rw-r--r--source/slang/slang-emit-spirv.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/source/slang/slang-emit-spirv.cpp b/source/slang/slang-emit-spirv.cpp
index 1a661920a..2f318c464 100644
--- a/source/slang/slang-emit-spirv.cpp
+++ b/source/slang/slang-emit-spirv.cpp
@@ -3663,7 +3663,11 @@ struct SPIRVEmitContext
{
requireSPIRVCapability(SpvCapabilityFragmentShadingRateKHR);
ensureExtensionDeclaration(UnownedStringSlice("SPV_KHR_fragment_shading_rate"));
- return getBuiltinGlobalVar(inst->getFullType(), SpvBuiltInPrimitiveShadingRateKHR);
+ auto importDecor = inst->findDecoration<IRImportDecoration>();
+ if (importDecor && importDecor->getMangledName() == "gl_PrimitiveShadingRateEXT")
+ return getBuiltinGlobalVar(inst->getFullType(), SpvBuiltInPrimitiveShadingRateKHR);
+ else
+ return getBuiltinGlobalVar(inst->getFullType(), SpvBuiltInShadingRateKHR);
}
SLANG_UNREACHABLE("Unimplemented system value in spirv emit.");
}