diff options
author | Marek Olšák <marek.olsak@amd.com> | 2014-10-16 14:58:45 +0200 |
---|---|---|
committer | Marek Olšák <marek.olsak@amd.com> | 2014-10-23 13:29:01 +0200 |
commit | 28505ec885274a0451f8ca831e12f5839ce79305 (patch) | |
tree | 41f4232b33126800b14457c49bda0b189e043065 | |
parent | ad8bd91a3e2fd653afa3fc90e061965d07c7d26f (diff) |
glsl-1.20: new tests for indirect access into a constant array
4, 8, 16, 32 pass on radeonsi.
48 fails in a weird way.
64, 128, 256 crash on an assertion failure.
softpipe passes all of them.
8 files changed, 804 insertions, 0 deletions
diff --git a/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-004-elements.shader_test b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-004-elements.shader_test new file mode 100644 index 000000000..6fcd85897 --- /dev/null +++ b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-004-elements.shader_test @@ -0,0 +1,35 @@ +# Test accessing a constant array with a non-constant expression. +[require] +GLSL >= 1.20 + + +[vertex shader] +void +main() +{ + gl_Position = gl_Vertex; +} + + +[fragment shader] + +uniform int zero; + +const vec4 colors[] = vec4[]( + vec4(0.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0) +); + +void +main() +{ + gl_FragColor = colors[zero]; +} + + +[test] +uniform int zero 0 +draw rect -1 -1 2 2 +probe all rgba 0.0 1.0 0.0 1.0 diff --git a/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-008-elements.shader_test b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-008-elements.shader_test new file mode 100644 index 000000000..09b443b23 --- /dev/null +++ b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-008-elements.shader_test @@ -0,0 +1,39 @@ +# Test accessing a constant array with a non-constant expression. +[require] +GLSL >= 1.20 + + +[vertex shader] +void +main() +{ + gl_Position = gl_Vertex; +} + + +[fragment shader] + +uniform int zero; + +const vec4 colors[] = vec4[]( + vec4(0.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 1.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0) +); + +void +main() +{ + gl_FragColor = colors[zero]; +} + + +[test] +uniform int zero 0 +draw rect -1 -1 2 2 +probe all rgba 0.0 1.0 0.0 1.0 diff --git a/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-016-elements.shader_test b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-016-elements.shader_test new file mode 100644 index 000000000..ac4d49362 --- /dev/null +++ b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-016-elements.shader_test @@ -0,0 +1,47 @@ +# Test accessing a constant array with a non-constant expression. +[require] +GLSL >= 1.20 + + +[vertex shader] +void +main() +{ + gl_Position = gl_Vertex; +} + + +[fragment shader] + +uniform int zero; + +const vec4 colors[] = vec4[]( + vec4(0.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 1.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0) +); + +void +main() +{ + gl_FragColor = colors[zero]; +} + + +[test] +uniform int zero 0 +draw rect -1 -1 2 2 +probe all rgba 0.0 1.0 0.0 1.0 diff --git a/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-032-elements.shader_test b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-032-elements.shader_test new file mode 100644 index 000000000..d105f45c0 --- /dev/null +++ b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-032-elements.shader_test @@ -0,0 +1,63 @@ +# Test accessing a constant array with a non-constant expression. +[require] +GLSL >= 1.20 + + +[vertex shader] +void +main() +{ + gl_Position = gl_Vertex; +} + + +[fragment shader] + +uniform int zero; + +const vec4 colors[] = vec4[]( + vec4(0.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1) +); + +void +main() +{ + gl_FragColor = colors[zero]; +} + + +[test] +uniform int zero 0 +draw rect -1 -1 2 2 +probe all rgba 0.0 1.0 0.0 1.0 diff --git a/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-048-elements.shader_test b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-048-elements.shader_test new file mode 100644 index 000000000..33e039c24 --- /dev/null +++ b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-048-elements.shader_test @@ -0,0 +1,79 @@ +# Test accessing a constant array with a non-constant expression. +[require] +GLSL >= 1.20 + + +[vertex shader] +void +main() +{ + gl_Position = gl_Vertex; +} + + +[fragment shader] + +uniform int zero; + +const vec4 colors[] = vec4[]( + vec4(0.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1) +); + +void +main() +{ + gl_FragColor = colors[zero]; +} + + +[test] +uniform int zero 0 +draw rect -1 -1 2 2 +probe all rgba 0.0 1.0 0.0 1.0 diff --git a/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-064-elements.shader_test b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-064-elements.shader_test new file mode 100644 index 000000000..80be74c1c --- /dev/null +++ b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-064-elements.shader_test @@ -0,0 +1,95 @@ +# Test accessing a constant array with a non-constant expression. +[require] +GLSL >= 1.20 + + +[vertex shader] +void +main() +{ + gl_Position = gl_Vertex; +} + + +[fragment shader] + +uniform int zero; + +const vec4 colors[] = vec4[]( + vec4(0.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1) +); + +void +main() +{ + gl_FragColor = colors[zero]; +} + + +[test] +uniform int zero 0 +draw rect -1 -1 2 2 +probe all rgba 0.0 1.0 0.0 1.0 diff --git a/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-128-elements.shader_test b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-128-elements.shader_test new file mode 100644 index 000000000..da2d2fd6b --- /dev/null +++ b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-128-elements.shader_test @@ -0,0 +1,159 @@ +# Test accessing a constant array with a non-constant expression. +[require] +GLSL >= 1.20 + + +[vertex shader] +void +main() +{ + gl_Position = gl_Vertex; +} + + +[fragment shader] + +uniform int zero; + +const vec4 colors[] = vec4[]( + vec4(0.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1) +); + +void +main() +{ + gl_FragColor = colors[zero]; +} + + +[test] +uniform int zero 0 +draw rect -1 -1 2 2 +probe all rgba 0.0 1.0 0.0 1.0 diff --git a/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-256-elements.shader_test b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-256-elements.shader_test new file mode 100644 index 000000000..ae6e633cc --- /dev/null +++ b/tests/spec/glsl-1.20/execution/fs-vec4-const-array-indirect-access-256-elements.shader_test @@ -0,0 +1,287 @@ +# Test accessing a constant array with a non-constant expression. +[require] +GLSL >= 1.20 + + +[vertex shader] +void +main() +{ + gl_Position = gl_Vertex; +} + + +[fragment shader] + +uniform int zero; + +const vec4 colors[] = vec4[]( + vec4(0.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.1, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.0, 1.0), + vec4(1.0, 1.0, 0.0, 1.0), + vec4(1.1, 1.0, 0.0, 1.0), + vec4(0.1, 1.0, 0.1, 1.1) +); + +void +main() +{ + gl_FragColor = colors[zero]; +} + + +[test] +uniform int zero 0 +draw rect -1 -1 2 2 +probe all rgba 0.0 1.0 0.0 1.0 |