NAK with extreme prejudice. Technically speaking, these are app bugs. I absolutely will not disable all correct behavior to work around broken apps. The problem is the following shaders will correctly link, but completely explode:

uniform float array[1234];
uniform int i;
void main() {
    gl_FragColor = vec4(array[769] + array[i]);
}

There's over a month before what is currently master will be released. People that don't like this bug can use a stable release.

On 11/20/2011 01:15 PM, Marek Olšák wrote:
---
  src/glsl/linker.cpp |   20 ++++++++++++++++++++
  1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index 3527088..8089255 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -2230,8 +2230,28 @@ link_shaders(struct gl_context *ctx, struct 
gl_shader_program *prog)
     link_assign_uniform_locations(prog);
     store_fragdepth_layout(prog);

+   /* This is disabled for now because the checks are breaking a lot of apps.
+    * The two shaders below should be linked without errors. There are
+    * backends which can run these shaders just fine.
+    *
+    * This shader uses 2 uniform components:
+    *      uniform float array[1234];
+    *      void main() {
+    *         gl_FragColor = vec4(array[769] + array[342]);
+    *      }
+    *
+    * And this shader uses 2 varying components:
+    *      varying float array[64];
+    *      void main() {
+    *         gl_FragColor = vec4(array[28] + array[49]);
+    *      }
+    */
+#if 0
     if (!check_resources(ctx, prog))
        goto done;
+#else
+   (void) check_resources;
+#endif

     /* OpenGL ES requires that a vertex shader and a fragment shader both be
      * present in a linked program.  By checking for use of shading language
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to