summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2013-06-12 21:38:28 +0200
committerMarek Olšák <maraeo@gmail.com>2013-07-02 17:02:14 +0200
commit74edd56927801e8c646c7d5cddba397c2f54b4ef (patch)
treee60475a56b495d5af89689c84e9516a031cb22b0
parentb3d8b4c0b423539f17c13713673cfeb6d66ff7ed (diff)
st/mesa: disable EXT_separate_shader_objects
The extension disallows elimination of set-but-unused varyings. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
-rw-r--r--docs/relnotes/9.2.html3
-rw-r--r--src/mesa/state_tracker/st_extensions.c9
2 files changed, 11 insertions, 1 deletions
diff --git a/docs/relnotes/9.2.html b/docs/relnotes/9.2.html
index 1f49191148..6809506873 100644
--- a/docs/relnotes/9.2.html
+++ b/docs/relnotes/9.2.html
@@ -68,6 +68,9 @@ Note: some of the new features are only available with certain drivers.
2007.</li>
<li>Removed GL_MESA_resize_buffers because it was only really implemented by
the (unsupported) GDI driver.</li>
+<li>GL_EXT_separate_shader_objects has been removed from all Gallium drivers,
+ because it disallows a critical GLSL shader optimization.
+ GL_ARB_separate_shader_objects doesn't have this issue.
</ul>
</div>
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index c0ec06a18a..df0761a80a 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -554,7 +554,14 @@ void st_init_extensions(struct st_context *st)
ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE;
ctx->Extensions.EXT_point_parameters = GL_TRUE;
ctx->Extensions.EXT_provoking_vertex = GL_TRUE;
- ctx->Extensions.EXT_separate_shader_objects = GL_TRUE;
+
+ /* IMPORTANT:
+ * Don't enable EXT_separate_shader_objects. It disallows a certain
+ * optimization in the GLSL compiler and therefore is considered
+ * harmful.
+ */
+ ctx->Extensions.EXT_separate_shader_objects = GL_FALSE;
+
ctx->Extensions.EXT_texture_env_dot3 = GL_TRUE;
ctx->Extensions.EXT_vertex_array_bgra = GL_TRUE;