summaryrefslogtreecommitdiffstats
path: root/src/glsl/linker.cpp
diff options
context:
space:
mode:
authorKalyan Kondapally <[email protected]>2014-09-08 11:10:42 +0300
committerTapani Pälli <[email protected]>2014-09-09 10:39:39 +0300
commit78c9201a5b57ed635b7161fd638cf6814e103e1b (patch)
treea778199a667f4177e61fa7ebba574713a36912b3 /src/glsl/linker.cpp
parent2a49a940799fdf538dbf86cb04a8335f7d5a829e (diff)
Linking fails when not writing gl_Position.
According to GLSL-ES Spec(i.e. 1.0, 3.0), gl_Position value is undefined after the vertex processing stage if we don't write gl_Position. However, GLSL 1.10 Spec mentions that writing to gl_Position is mandatory. In case of GLSL-ES, it's not an error and atleast the linking should pass. Currently, Mesa throws an linker error in case we dont write to gl_position and Version is less then 140(GLSL) and 300(GLSL-ES). This patch changes it so that we don't report an error in case of GLSL-ES. Signed-off-by: Kalyan Kondapally <[email protected]> Reviewed-by: Tapani Pälli <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=83380
Diffstat (limited to 'src/glsl/linker.cpp')
-rw-r--r--src/glsl/linker.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index 57be4931d78..e9cf5503a27 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -559,10 +559,10 @@ validate_vertex_shader_executable(struct gl_shader_program *prog,
* vertex processing has occurred. Its value is undefined if
* the vertex shader executable does not write gl_Position."
*
- * GLSL ES 3.00 is similar to GLSL 1.40--failing to write to gl_Position is
- * not an error.
+ * All GLSL ES Versions are similar to GLSL 1.40--failing to write to
+ * gl_Position is not an error.
*/
- if (prog->Version < (prog->IsES ? 300 : 140)) {
+ if (!prog->IsES && prog->Version < 140) {
find_assignment_visitor find("gl_Position");
find.run(shader->ir);
if (!find.variable_found()) {