diff --git a/renderdoc/driver/gl/wrappers/gl_shader_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_shader_funcs.cpp index 6023e2107..0394dad24 100644 --- a/renderdoc/driver/gl/wrappers/gl_shader_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_shader_funcs.cpp @@ -274,6 +274,8 @@ void WrappedOpenGL::ShaderData::ProcessCompilation(WrappedOpenGL &drv, ResourceI rdcspv::CompilationSettings settings(rdcspv::InputLanguage::OpenGLGLSL, rdcspv::ShaderStage(ShaderIdx(type))); + settings.gles = IsGLES; + rdcstr s = rdcspv::Compile(settings, sources, spirvwords); if(!spirvwords.empty()) spirv.Parse(spirvwords); diff --git a/renderdoc/driver/shaders/spirv/spirv_compile.cpp b/renderdoc/driver/shaders/spirv/spirv_compile.cpp index dde6db240..a2cc2bec4 100644 --- a/renderdoc/driver/shaders/spirv/spirv_compile.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_compile.cpp @@ -82,7 +82,7 @@ rdcstr rdcspv::Compile(const rdcspv::CompilationSettings &settings, const rdcarr if(settings.debugInfo) flags = EShMessages(flags | EShMsgDebugInfo); - bool success = shader->parse(GetDefaultResources(), 110, false, flags); + bool success = shader->parse(GetDefaultResources(), settings.gles ? 100 : 110, false, flags); if(!success) { diff --git a/renderdoc/driver/shaders/spirv/spirv_compile.h b/renderdoc/driver/shaders/spirv/spirv_compile.h index 004fd0445..2d541aca5 100644 --- a/renderdoc/driver/shaders/spirv/spirv_compile.h +++ b/renderdoc/driver/shaders/spirv/spirv_compile.h @@ -56,6 +56,7 @@ struct CompilationSettings ShaderStage stage = ShaderStage::Invalid; InputLanguage lang = InputLanguage::Unknown; bool debugInfo = false; + bool gles = false; rdcstr entryPoint; };