diff options
Diffstat (limited to 'source/slang/slang-emit-glsl.cpp')
| -rw-r--r-- | source/slang/slang-emit-glsl.cpp | 8 |
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;"; } } } |
