48 of the generated tests were linker-error failing on vc4 due to
trying to use too many varying components.
---
 tests/spec/glsl-1.10/variable-index-read.sh  | 8 ++++++++
 tests/spec/glsl-1.10/variable-index-write.sh | 9 +++++++++
 2 files changed, 17 insertions(+)

diff --git a/tests/spec/glsl-1.10/variable-index-read.sh 
b/tests/spec/glsl-1.10/variable-index-read.sh
index a64c2e9..2fdf980 100755
--- a/tests/spec/glsl-1.10/variable-index-read.sh
+++ b/tests/spec/glsl-1.10/variable-index-read.sh
@@ -376,6 +376,9 @@ function emit_fs_rd_test
     echo
     echo "[require]"
     echo "GLSL >= $version"
+    if [ "x$mode" = "xvarying" ]; then
+       echo "GL_MAX_VARYING_COMPONENTS >= $varying_comps"
+    fi
     echo
 
     emit_vs $* 0
@@ -394,6 +397,9 @@ function emit_vs_rd_test
     echo
     echo "[require]"
     echo "GLSL >= $version"
+    if [ "x$mode" = "xvarying" ]; then
+       echo "GL_MAX_VARYING_COMPONENTS >= $varying_comps"
+    fi
     echo
 
     emit_vs $* 1
@@ -422,6 +428,7 @@ for mode in temp uniform varying; do
     for array_dim in 0 3; do
        for matrix_dim in 2 3 4; do
            if [ $array_dim -ne 0 ]; then
+               varying_comps=$((4 + matrix_dim * matrix_dim * array_dim))
                arr="array-"
                idx_txt="index-"
 
@@ -465,6 +472,7 @@ for mode in temp uniform varying; do
                    > $name
                echo $name
            else
+               varying_comps=$((4 + matrix_dim * matrix_dim))
                arr=""
                idx_txt=""
            fi
diff --git a/tests/spec/glsl-1.10/variable-index-write.sh 
b/tests/spec/glsl-1.10/variable-index-write.sh
index 6781239..8720374 100755
--- a/tests/spec/glsl-1.10/variable-index-write.sh
+++ b/tests/spec/glsl-1.10/variable-index-write.sh
@@ -356,6 +356,9 @@ function emit_vs_wr_test
     echo
     echo "[require]"
     echo "GLSL >= ${version}"
+    if [ "x$mode" = "xvarying" ]; then
+       echo "GL_MAX_VARYING_COMPONENTS >= $varying_comps"
+    fi
     echo
 
     echo "[vertex shader]"
@@ -419,6 +422,12 @@ for mode in temp varying; do
        fi
 
        for matrix_dim in 2 3 4; do
+           if [ $array_dim -ne 0 ]; then
+               varying_comps=$((matrix_dim * matrix_dim * array_dim))
+           else
+               varying_comps=$((matrix_dim * matrix_dim))
+           fi
+
            # Fragment shaders cannot write varyings
            if [ "x$mode" != "xvarying" ]; then
                
name="fs-${mode}-${arr}mat${matrix_dim}-${idx_txt}col-row-wr.shader_test"
-- 
2.1.3

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to