diff --git a/renderdoc/driver/gl/gl_shader_refl.cpp b/renderdoc/driver/gl/gl_shader_refl.cpp index a82868bcf..ba1fabfe5 100644 --- a/renderdoc/driver/gl/gl_shader_refl.cpp +++ b/renderdoc/driver/gl/gl_shader_refl.cpp @@ -200,7 +200,16 @@ static GLuint CreateSepProgram(const GLHookSet &gl, GLenum type, GLsizei numSour GLuint MakeSeparableShaderProgram(const GLHookSet &gl, GLenum type, vector sources, vector *includepaths) { - const string block = "\nout gl_PerVertex { vec4 gl_Position; float gl_PointSize; float gl_ClipDistance[]; };"; + string block = ""; + + if(type == eGL_VERTEX_SHADER) + block = "\nout gl_PerVertex { vec4 gl_Position; float gl_PointSize; float gl_ClipDistance[]; };"; + else if(type == eGL_TESS_CONTROL_SHADER) + block = "\nin gl_PerVertex { vec4 gl_Position; float gl_PointSize; float gl_ClipDistance[]; } gl_in[];" \ + "\nout gl_PerVertex { vec4 gl_Position; float gl_PointSize; float gl_ClipDistance[]; } gl_out[];"; + else + block = "\nin gl_PerVertex { vec4 gl_Position; float gl_PointSize; float gl_ClipDistance[]; } gl_in[];" \ + "\nout gl_PerVertex { vec4 gl_Position; float gl_PointSize; float gl_ClipDistance[]; };"; const char **strings = new const char*[sources.size()]; for(size_t i=0; i < sources.size(); i++) @@ -222,7 +231,8 @@ GLuint MakeSeparableShaderProgram(const GLHookSet &gl, GLenum type, vector