The extension disallows elimination of set-but-unused varyings. --- docs/relnotes/9.2.html | 3 +++ src/mesa/state_tracker/st_extensions.c | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/docs/relnotes/9.2.html b/docs/relnotes/9.2.html index 0dcc960..99f6374 100644 --- a/docs/relnotes/9.2.html +++ b/docs/relnotes/9.2.html @@ -63,6 +63,9 @@ Note: some of the new features are only available with certain drivers. <ul> <li>Removed d3d1x state tracker (unused, unmaintained and broken)</li> +<li>GL_EXT_separate_shader_objects has been removed from all Gallium drivers, + because it disallows critical GLSL shader optimizations. + 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 966722c..43111d6 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -559,7 +559,14 @@ void st_init_extensions(struct st_context *st) ctx->Extensions.EXT_point_parameters = GL_TRUE; ctx->Extensions.EXT_provoking_vertex = GL_TRUE; ctx->Extensions.EXT_secondary_color = GL_TRUE; - ctx->Extensions.EXT_separate_shader_objects = GL_TRUE; + + /* IMPORTANT: + * Don't enable EXT_separate_shader_objects. It disallows certain + * optimizations 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; -- 1.7.10.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev