OpenGL 4.5 Core Profile section 7.1, in the documentation for CompileShader, says: "Changing the source code of a shader object with ShaderSource does not change its compile status or the compiled shader code." (I haven't checked older versions of the spec.)
According to Karol Herbst, the game "Divinity: Original Sin - Enhanced Edition" depends on this odd quirk of the spec. See: https://lists.freedesktop.org/archives/mesa-dev/2016-March/109789.html This patch, together with MESA_GL_VERSION_OVERRIDE=4.2, allows "Divinity" to start up successfully on i965, though rendering bugs remain. Signed-off-by: Jamey Sharp <ja...@minilop.net> Cc: Karol Herbst <nouv...@karolherbst.de> --- src/mesa/main/shaderapi.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c index b28b5ce..fc2e885 100644 --- a/src/mesa/main/shaderapi.c +++ b/src/mesa/main/shaderapi.c @@ -949,7 +949,6 @@ shader_source(struct gl_shader *sh, const GLchar *source) /* free old shader source string and install new one */ free((void *)sh->Source); sh->Source = source; - sh->CompileStatus = GL_FALSE; #ifdef DEBUG sh->SourceChecksum = _mesa_str_checksum(sh->Source); #endif -- 2.6.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev