Same pseudo-comment here as on patch 1 about gl_ModelViewProjectionMatrix, and the same
Reviewed-by: Ian Romanick <[email protected]> On 04/06/2015 04:39 PM, Marek Olšák wrote: > From: Marek Olšák <[email protected]> > > --- > .../vs-output-array-float-index-wr.shader_test | 81 +++++++++++++++++++++ > .../vs-output-array-vec2-index-wr.shader_test | 81 +++++++++++++++++++++ > .../vs-output-array-vec3-index-wr.shader_test | 81 +++++++++++++++++++++ > .../vs-output-array-vec4-index-wr.shader_test | 83 > ++++++++++++++++++++++ > 4 files changed, 326 insertions(+) > create mode 100644 > tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-float-index-wr.shader_test > create mode 100644 > tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-vec2-index-wr.shader_test > create mode 100644 > tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-vec3-index-wr.shader_test > create mode 100644 > tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-vec4-index-wr.shader_test > > diff --git > a/tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-float-index-wr.shader_test > > b/tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-float-index-wr.shader_test > new file mode 100644 > index 0000000..a07d38c > --- /dev/null > +++ > b/tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-float-index-wr.shader_test > @@ -0,0 +1,81 @@ > +[require] > +GLSL >= 1.10 > + > +[vertex shader] > +uniform int index; > +varying float m1[4]; > +varying float m2[4]; > + > +void main() > +{ > + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; > + > + m1[0] = 1.0; > + m1[1] = 2.0; > + m1[2] = 3.0; > + m1[3] = 4.0; > + m2[0] = 5.0; > + m2[1] = 6.0; > + m2[2] = 7.0; > + m2[3] = 8.0; > + > + if (index >= 4) > + m2[index-4] = 0.0; > + else > + m1[index] = 0.0; > +} > + > +[fragment shader] > +uniform int index; > +varying float m1[4]; > +varying float m2[4]; > + > +void main() > +{ > + bool pass = true; > + > + for (int i = 0; i < 4; i++) > + pass = pass && m1[i] == (index == i ? 0.0 : float(1+i)); > + > + for (int i = 0; i < 4; i++) > + pass = pass && m2[i] == (index == 4+i ? 0.0 : float(5+i)); > + > + gl_FragColor = pass ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, > 1.0); > +} > + > +[test] > +clear color 0.5 0.5 0.5 0.5 > +clear > +ortho > + > +uniform int index 0 > +draw rect 5 5 10 10 > +probe rgb 10 10 0.0 1.0 0.0 > + > +uniform int index 1 > +draw rect 30 5 10 10 > +probe rgb 35 10 0.0 1.0 0.0 > + > +uniform int index 2 > +draw rect 55 5 10 10 > +probe rgb 60 10 0.0 1.0 0.0 > + > +uniform int index 3 > +draw rect 80 5 10 10 > +probe rgb 85 10 0.0 1.0 0.0 > + > +uniform int index 4 > +draw rect 105 5 10 10 > +probe rgb 110 10 0.0 1.0 0.0 > + > +uniform int index 5 > +draw rect 130 5 10 10 > +probe rgb 135 10 0.0 1.0 0.0 > + > +uniform int index 6 > +draw rect 155 5 10 10 > +probe rgb 160 10 0.0 1.0 0.0 > + > +uniform int index 7 > +draw rect 180 5 10 10 > +probe rgb 185 10 0.0 1.0 0.0 > diff --git > a/tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-vec2-index-wr.shader_test > > b/tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-vec2-index-wr.shader_test > new file mode 100644 > index 0000000..630749c > --- /dev/null > +++ > b/tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-vec2-index-wr.shader_test > @@ -0,0 +1,81 @@ > +[require] > +GLSL >= 1.10 > + > +[vertex shader] > +uniform int index; > +varying vec2 m1[4]; > +varying vec2 m2[4]; > + > +void main() > +{ > + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; > + > + m1[0] = vec2(1.0, 1.1); > + m1[1] = vec2(2.0, 2.1); > + m1[2] = vec2(3.0, 3.1); > + m1[3] = vec2(4.0, 4.1); > + m2[0] = vec2(5.0, 5.1); > + m2[1] = vec2(6.0, 6.1); > + m2[2] = vec2(7.0, 7.1); > + m2[3] = vec2(8.0, 8.1); > + > + if (index >= 4) > + m2[index-4] = vec2(0.0, 0.1); > + else > + m1[index] = vec2(0.0, 0.1); > +} > + > +[fragment shader] > +uniform int index; > +varying vec2 m1[4]; > +varying vec2 m2[4]; > + > +void main() > +{ > + bool pass = true; > + > + for (int i = 0; i < 4; i++) > + pass = pass && m1[i] == (index == i ? vec2(0.0, 0.1) : vec2(1.0, > 1.1) + vec2(i)); > + > + for (int i = 0; i < 4; i++) > + pass = pass && m2[i] == (index == 4+i ? vec2(0.0, 0.1) : vec2(5.0, > 5.1) + vec2(i)); > + > + gl_FragColor = pass ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, > 1.0); > +} > + > +[test] > +clear color 0.5 0.5 0.5 0.5 > +clear > +ortho > + > +uniform int index 0 > +draw rect 5 5 10 10 > +probe rgb 10 10 0.0 1.0 0.0 > + > +uniform int index 1 > +draw rect 30 5 10 10 > +probe rgb 35 10 0.0 1.0 0.0 > + > +uniform int index 2 > +draw rect 55 5 10 10 > +probe rgb 60 10 0.0 1.0 0.0 > + > +uniform int index 3 > +draw rect 80 5 10 10 > +probe rgb 85 10 0.0 1.0 0.0 > + > +uniform int index 4 > +draw rect 105 5 10 10 > +probe rgb 110 10 0.0 1.0 0.0 > + > +uniform int index 5 > +draw rect 130 5 10 10 > +probe rgb 135 10 0.0 1.0 0.0 > + > +uniform int index 6 > +draw rect 155 5 10 10 > +probe rgb 160 10 0.0 1.0 0.0 > + > +uniform int index 7 > +draw rect 180 5 10 10 > +probe rgb 185 10 0.0 1.0 0.0 > diff --git > a/tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-vec3-index-wr.shader_test > > b/tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-vec3-index-wr.shader_test > new file mode 100644 > index 0000000..66945a0 > --- /dev/null > +++ > b/tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-vec3-index-wr.shader_test > @@ -0,0 +1,81 @@ > +[require] > +GLSL >= 1.10 > + > +[vertex shader] > +uniform int index; > +varying vec3 m1[4]; > +varying vec3 m2[4]; > + > +void main() > +{ > + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; > + > + m1[0] = vec3(1.0, 1.1, 1.2); > + m1[1] = vec3(2.0, 2.1, 2.2); > + m1[2] = vec3(3.0, 3.1, 3.2); > + m1[3] = vec3(4.0, 4.1, 4.2); > + m2[0] = vec3(5.0, 5.1, 5.2); > + m2[1] = vec3(6.0, 6.1, 6.2); > + m2[2] = vec3(7.0, 7.1, 7.2); > + m2[3] = vec3(8.0, 8.1, 8.2); > + > + if (index >= 4) > + m2[index-4] = vec3(0.0, 0.1, 0.2); > + else > + m1[index] = vec3(0.0, 0.1, 0.2); > +} > + > +[fragment shader] > +uniform int index; > +varying vec3 m1[4]; > +varying vec3 m2[4]; > + > +void main() > +{ > + bool pass = true; > + > + for (int i = 0; i < 4; i++) > + pass = pass && m1[i] == (index == i ? vec3(0.0, 0.1, 0.2) : > vec3(1.0, 1.1, 1.2) + vec3(i)); > + > + for (int i = 0; i < 4; i++) > + pass = pass && m2[i] == (index == 4+i ? vec3(0.0, 0.1, 0.2) : > vec3(5.0, 5.1, 5.2) + vec3(i)); > + > + gl_FragColor = pass ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, > 1.0); > +} > + > +[test] > +clear color 0.5 0.5 0.5 0.5 > +clear > +ortho > + > +uniform int index 0 > +draw rect 5 5 10 10 > +probe rgb 10 10 0.0 1.0 0.0 > + > +uniform int index 1 > +draw rect 30 5 10 10 > +probe rgb 35 10 0.0 1.0 0.0 > + > +uniform int index 2 > +draw rect 55 5 10 10 > +probe rgb 60 10 0.0 1.0 0.0 > + > +uniform int index 3 > +draw rect 80 5 10 10 > +probe rgb 85 10 0.0 1.0 0.0 > + > +uniform int index 4 > +draw rect 105 5 10 10 > +probe rgb 110 10 0.0 1.0 0.0 > + > +uniform int index 5 > +draw rect 130 5 10 10 > +probe rgb 135 10 0.0 1.0 0.0 > + > +uniform int index 6 > +draw rect 155 5 10 10 > +probe rgb 160 10 0.0 1.0 0.0 > + > +uniform int index 7 > +draw rect 180 5 10 10 > +probe rgb 185 10 0.0 1.0 0.0 > diff --git > a/tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-vec4-index-wr.shader_test > > b/tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-vec4-index-wr.shader_test > new file mode 100644 > index 0000000..4770a7a > --- /dev/null > +++ > b/tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-vec4-index-wr.shader_test > @@ -0,0 +1,83 @@ > +[require] > +GLSL >= 1.10 > + > +[vertex shader] > +uniform int index; > +varying vec4 m1[4]; > +varying vec4 m2[4]; > + > +void main() > +{ > + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; > + > + m1[0] = vec4(1.0, 1.1, 1.2, 1.3); > + m1[1] = vec4(2.0, 2.1, 2.2, 2.3); > + m1[2] = vec4(3.0, 3.1, 3.2, 3.3); > + m1[3] = vec4(4.0, 4.1, 4.2, 4.3); > + m2[0] = vec4(5.0, 5.1, 5.2, 5.3); > + m2[1] = vec4(6.0, 6.1, 6.2, 6.3); > + m2[2] = vec4(7.0, 7.1, 7.2, 7.3); > + m2[3] = vec4(8.0, 8.1, 8.2, 8.3); > + > + if (index >= 4) > + m2[index-4] = vec4(0.0, 0.1, 0.2, 0.3); > + else > + m1[index] = vec4(0.0, 0.1, 0.2, 0.3); > +} > + > +[fragment shader] > +uniform int index; > +varying vec4 m1[4]; > +varying vec4 m2[4]; > + > +void main() > +{ > + bool pass = true; > + > + for (int i = 0; i < 4; i++) > + pass = pass && m1[i] == (index == i ? vec4(0.0, 0.1, 0.2, 0.3) : > + vec4(1.0, 1.1, 1.2, 1.3) + > vec4(i)); > + > + for (int i = 0; i < 4; i++) > + pass = pass && m2[i] == (index == 4+i ? vec4(0.0, 0.1, 0.2, 0.3) : > + vec4(5.0, 5.1, 5.2, 5.3) + > vec4(i)); > + > + gl_FragColor = pass ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, > 1.0); > +} > + > +[test] > +clear color 0.5 0.5 0.5 0.5 > +clear > +ortho > + > +uniform int index 0 > +draw rect 5 5 10 10 > +probe rgb 10 10 0.0 1.0 0.0 > + > +uniform int index 1 > +draw rect 30 5 10 10 > +probe rgb 35 10 0.0 1.0 0.0 > + > +uniform int index 2 > +draw rect 55 5 10 10 > +probe rgb 60 10 0.0 1.0 0.0 > + > +uniform int index 3 > +draw rect 80 5 10 10 > +probe rgb 85 10 0.0 1.0 0.0 > + > +uniform int index 4 > +draw rect 105 5 10 10 > +probe rgb 110 10 0.0 1.0 0.0 > + > +uniform int index 5 > +draw rect 130 5 10 10 > +probe rgb 135 10 0.0 1.0 0.0 > + > +uniform int index 6 > +draw rect 155 5 10 10 > +probe rgb 160 10 0.0 1.0 0.0 > + > +uniform int index 7 > +draw rect 180 5 10 10 > +probe rgb 185 10 0.0 1.0 0.0 > _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
