diff --git a/MobileGL/MG_Util/ShaderTranspiler/glslang/TMglGlslIoResolver.cpp b/MobileGL/MG_Util/ShaderTranspiler/glslang/TMglGlslIoResolver.cpp index b32051f3..6d5adb91 100644 --- a/MobileGL/MG_Util/ShaderTranspiler/glslang/TMglGlslIoResolver.cpp +++ b/MobileGL/MG_Util/ShaderTranspiler/glslang/TMglGlslIoResolver.cpp @@ -15,6 +15,13 @@ namespace MobileGL { writableType.getQualifier().layoutLocation = it->second; } } + if (currentStage == EShLangFragment && type.getQualifier().isPipeOutput()) { + auto it = m_explicitFragOuts.find(name.c_str()); + if (it != m_explicitFragOuts.end()) { + auto& writableType = ent.symbol->getWritableType(); + writableType.getQualifier().layoutLocation = it->second; + } + } TDefaultGlslIoResolver::reserverStorageSlot(ent, infoSink); } } \ No newline at end of file