summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit-glsl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-emit-glsl.cpp')
-rw-r--r--source/slang/slang-emit-glsl.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/source/slang/slang-emit-glsl.cpp b/source/slang/slang-emit-glsl.cpp
index 8063fcc1d..d13bc96d1 100644
--- a/source/slang/slang-emit-glsl.cpp
+++ b/source/slang/slang-emit-glsl.cpp
@@ -2208,9 +2208,7 @@ void GLSLSourceEmitter::handleRequiredCapabilitiesImpl(IRInst* inst)
{
// only allowed 1 of derivative_group_quadsNV or derivative_group_linearNV
if (m_entryPointStage != Stage::Compute
- || m_requiredPreludesRaw.contains("layout(derivative_group_quadsNV) in;")
- || m_requiredPreludesRaw.contains("layout(derivative_group_linearNV) in;")
- )
+ || m_requiredAfter.requireComputeDerivatives.getLength() > 0)
return;
_requireGLSLExtension(UnownedStringSlice("GL_NV_compute_shader_derivatives"));
@@ -2225,12 +2223,12 @@ void GLSLSourceEmitter::handleRequiredCapabilitiesImpl(IRInst* inst)
if (isQuad)
{
verifyComputeDerivativeGroupModifiers(getSink(), inst->sourceLoc, true, false, numThreadsDecor);
- m_requiredPreludesRaw.add("layout(derivative_group_quadsNV) in;");
+ m_requiredAfter.requireComputeDerivatives = "layout(derivative_group_quadsNV) in;";
}
else
{
verifyComputeDerivativeGroupModifiers(getSink(), inst->sourceLoc, false, true, numThreadsDecor);
- m_requiredPreludesRaw.add("layout(derivative_group_linearNV) in;");
+ m_requiredAfter.requireComputeDerivatives = "layout(derivative_group_linearNV) in;";
}
}
}