diff options
Diffstat (limited to 'source/slang/slang-emit-spirv.cpp')
| -rw-r--r-- | source/slang/slang-emit-spirv.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/source/slang/slang-emit-spirv.cpp b/source/slang/slang-emit-spirv.cpp index da2620856..a5a77e148 100644 --- a/source/slang/slang-emit-spirv.cpp +++ b/source/slang/slang-emit-spirv.cpp @@ -6226,6 +6226,23 @@ struct SPIRVEmitContext : public SourceEmitterBase, public SPIRVEmitSharedContex SpvBuiltInCullPrimitiveEXT, inst); } + else if (semanticName == "sv_fragsize") + { + requireSPIRVCapability(SpvCapabilityFragmentDensityEXT); + ensureExtensionDeclaration( + UnownedStringSlice("SPV_EXT_fragment_invocation_density")); + return getBuiltinGlobalVar(inst->getFullType(), SpvBuiltInFragSizeEXT, inst); + } + else if (semanticName == "sv_fraginvocationcount") + { + requireSPIRVCapability(SpvCapabilityFragmentDensityEXT); + ensureExtensionDeclaration( + UnownedStringSlice("SPV_EXT_fragment_invocation_density")); + return getBuiltinGlobalVar( + inst->getFullType(), + SpvBuiltInFragInvocationCountEXT, + inst); + } else if (semanticName == "sv_shadingrate") { requireSPIRVCapability(SpvCapabilityFragmentShadingRateKHR); |
