From 5b2d18fdffd17d020ef1bb3db62bc0725bfd6a83 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Thu, 13 Nov 2025 12:54:05 +0800 Subject: [PATCH] [Fix]: (MG_Util/ShaderTranspiler): implement logic to reserve explicitly set frag outs --- .../ShaderTranspiler/glslang/TMglGlslIoResolver.cpp | 7 +++++++ 1 file changed, 7 insertions(+) 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