[Mesa-dev] [PATCH] glShaderSource must not change compile status.
Jamey Sharp
jamey at minilop.net
Tue Apr 26 05:06:40 UTC 2016
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 <jamey at minilop.net>
Cc: Karol Herbst <nouveau at 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
More information about the mesa-dev
mailing list