From acbe682392a20e7ce25726ad5fa76e26008c141d Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 1 Feb 2019 15:57:48 +0000 Subject: [PATCH] Explicitly skip system builtin inputs in GL reflection * Some drivers (e.g. macOS) will still return a location even for gl_.. builtins --- renderdoc/driver/gl/gl_shader_refl.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/renderdoc/driver/gl/gl_shader_refl.cpp b/renderdoc/driver/gl/gl_shader_refl.cpp index c0c28198d..86a7ab345 100644 --- a/renderdoc/driver/gl/gl_shader_refl.cpp +++ b/renderdoc/driver/gl/gl_shader_refl.cpp @@ -2277,6 +2277,10 @@ void GetBindpointMapping(GLuint curProg, int shadIdx, ShaderReflection *refl, { for(int32_t i = 0; i < refl->inputSignature.count(); i++) { + // skip system inputs, as some drivers will return a location for them + if(refl->inputSignature[i].systemValue != ShaderBuiltin::Undefined) + continue; + GLint loc = GL.glGetAttribLocation(curProg, refl->inputSignature[i].varName.c_str()); if(loc >= 0 && loc < numVAttribBindings)