perf/pixel-rate: new pixel throughput microbenchmark
[piglit.git] / tests / spec / glsl-1.10 / execution / variable-indexing / vs-output-array-vec3-index-wr.shader_test
blob66945a05ae6d23855a93899b5bce1006ec8e0774
1 [require]
2 GLSL >= 1.10
4 [vertex shader]
5 uniform int index;
6 varying vec3 m1[4];
7 varying vec3 m2[4];
9 void main()
11     gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
13     m1[0] = vec3(1.0, 1.1, 1.2);
14     m1[1] = vec3(2.0, 2.1, 2.2);
15     m1[2] = vec3(3.0, 3.1, 3.2);
16     m1[3] = vec3(4.0, 4.1, 4.2);
17     m2[0] = vec3(5.0, 5.1, 5.2);
18     m2[1] = vec3(6.0, 6.1, 6.2);
19     m2[2] = vec3(7.0, 7.1, 7.2);
20     m2[3] = vec3(8.0, 8.1, 8.2);
22     if (index >= 4)
23         m2[index-4] = vec3(0.0, 0.1, 0.2);
24     else
25         m1[index] = vec3(0.0, 0.1, 0.2);
28 [fragment shader]
29 uniform int index;
30 varying vec3 m1[4];
31 varying vec3 m2[4];
33 void main()
35     bool pass = true;
37     for (int i = 0; i < 4; i++)
38         pass = pass && m1[i] == (index == i ? vec3(0.0, 0.1, 0.2) : vec3(1.0, 1.1, 1.2) + vec3(i));
40     for (int i = 0; i < 4; i++)
41         pass = pass && m2[i] == (index == 4+i ? vec3(0.0, 0.1, 0.2) : vec3(5.0, 5.1, 5.2) + vec3(i));
43     gl_FragColor = pass ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, 1.0);
46 [test]
47 clear color 0.5 0.5 0.5 0.5
48 clear
49 ortho
51 uniform int index 0
52 draw rect 5 5 10 10
53 probe rgb 10 10 0.0 1.0 0.0
55 uniform int index 1
56 draw rect 30 5 10 10
57 probe rgb 35 10 0.0 1.0 0.0
59 uniform int index 2
60 draw rect 55 5 10 10
61 probe rgb 60 10 0.0 1.0 0.0
63 uniform int index 3
64 draw rect 80 5 10 10
65 probe rgb 85 10 0.0 1.0 0.0
67 uniform int index 4
68 draw rect 105 5 10 10
69 probe rgb 110 10 0.0 1.0 0.0
71 uniform int index 5
72 draw rect 130 5 10 10
73 probe rgb 135 10 0.0 1.0 0.0
75 uniform int index 6
76 draw rect 155 5 10 10
77 probe rgb 160 10 0.0 1.0 0.0
79 uniform int index 7
80 draw rect 180 5 10 10
81 probe rgb 185 10 0.0 1.0 0.0