1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
[require]
GLSL >= 1.40
[vertex shader]
#version 140
struct S2 {
vec2 v2;
mat2 m22[2];
};
struct S {
S2 arr[2];
vec3 v3;
bool b;
};
uniform ubo1 {
S s[2];
};
in vec4 piglit_vertex;
out vec4 v;
void main()
{
gl_Position = piglit_vertex;
S temp[2] = s;
/* Try to prevent copy propagation */
temp[0].arr[0].v2 = vec2(0.01, 0.02);
v = vec4(0, 1, 0, 0);
if (temp[0].arr[0].v2 != vec2(0.01, 0.02))
v = vec4(0.02, 0, temp[0].arr[0].v2);
else if (temp[0].arr[0].m22[0][0] != vec2(0.03, 0.04))
v = vec4(0.04, 0, temp[0].arr[0].m22[0][0]);
else if (temp[0].arr[0].m22[0][1] != vec2(0.05, 0.06))
v = vec4(0.06, 0, temp[0].arr[0].m22[0][1]);
else if (temp[0].arr[0].m22[1][0] != vec2(0.07, 0.08))
v = vec4(0.08, 0, temp[0].arr[0].m22[1][0]);
else if (temp[0].arr[0].m22[1][1] != vec2(0.09, 0.10))
v = vec4(0.10, 0, temp[0].arr[0].m22[1][1]);
else if (temp[0].arr[1].v2 != vec2(0.21, 0.22))
v = vec4(0.22, 0, temp[0].arr[1].v2);
else if (temp[0].arr[1].m22[0][0] != vec2(0.23, 0.24))
v = vec4(0.24, 0, temp[0].arr[1].m22[0][0]);
else if (temp[0].arr[1].m22[0][1] != vec2(0.25, 0.26))
v = vec4(0.26, 0, temp[0].arr[1].m22[0][1]);
else if (temp[0].arr[1].m22[1][0] != vec2(0.27, 0.28))
v = vec4(0.28, 0, temp[0].arr[1].m22[1][0]);
else if (temp[0].arr[1].m22[1][1] != vec2(0.29, 0.30))
v = vec4(0.30, 0, temp[0].arr[1].m22[1][1]);
else if (temp[0].v3 != vec3(0.31, 0.32, 0.33))
v = vec4(0.32, temp[0].v3);
else if (temp[0].b != false)
v = vec4(0.34, 0, 0, temp[0].b);
else if (temp[1].arr[0].v2 != vec2(0.41, 0.42))
v = vec4(0.42, 0, temp[1].arr[0].v2);
else if (temp[1].arr[0].m22[0][0] != vec2(0.43, 0.44))
v = vec4(0.44, 0, temp[1].arr[0].m22[0][0]);
else if (temp[1].arr[0].m22[0][1] != vec2(0.45, 0.46))
v = vec4(0.46, 0, temp[1].arr[0].m22[0][1]);
else if (temp[1].arr[0].m22[1][0] != vec2(0.47, 0.48))
v = vec4(0.48, 0, temp[1].arr[0].m22[1][0]);
else if (temp[1].arr[0].m22[1][1] != vec2(0.49, 0.50))
v = vec4(0.50, 0, temp[1].arr[0].m22[1][1]);
else if (temp[1].arr[1].v2 != vec2(0.61, 0.62))
v = vec4(0.62, 0, temp[1].arr[1].v2);
else if (temp[1].arr[1].m22[0][0] != vec2(0.63, 0.64))
v = vec4(0.64, 0, temp[1].arr[1].m22[0][0]);
else if (temp[1].arr[1].m22[0][1] != vec2(0.65, 0.66))
v = vec4(0.66, 0, temp[1].arr[1].m22[0][1]);
else if (temp[1].arr[1].m22[1][0] != vec2(0.67, 0.68))
v = vec4(0.68, 0, temp[1].arr[1].m22[1][0]);
else if (temp[1].arr[1].m22[1][1] != vec2(0.69, 0.70))
v = vec4(0.70, 0, temp[1].arr[1].m22[1][1]);
else if (temp[1].v3 != vec3(0.71, 0.72, 0.73))
v = vec4(0.72, temp[1].v3);
else if (temp[1].b != true)
v = vec4(0.74, 0, 0, temp[1].b);
}
[fragment shader]
#version 140
in vec4 v;
void main()
{
gl_FragColor = v;
}
[test]
uniform vec2 s[0].arr[0].v2 0.99 0.99
uniform mat2 s[0].arr[0].m22[0] 0.03 0.04 0.05 0.06
uniform mat2 s[0].arr[0].m22[1] 0.07 0.08 0.09 0.10
uniform vec2 s[0].arr[1].v2 0.21 0.22
uniform mat2 s[0].arr[1].m22[0] 0.23 0.24 0.25 0.26
uniform mat2 s[0].arr[1].m22[1] 0.27 0.28 0.29 0.30
uniform vec3 s[0].v3 0.31 0.32 0.33
uniform int s[0].b 0
uniform vec2 s[1].arr[0].v2 0.41 0.42
uniform mat2 s[1].arr[0].m22[0] 0.43 0.44 0.45 0.46
uniform mat2 s[1].arr[0].m22[1] 0.47 0.48 0.49 0.50
uniform vec2 s[1].arr[1].v2 0.61 0.62
uniform mat2 s[1].arr[1].m22[0] 0.63 0.64 0.65 0.66
uniform mat2 s[1].arr[1].m22[1] 0.67 0.68 0.69 0.70
uniform vec3 s[1].v3 0.71 0.72 0.73
uniform int s[1].b 2
draw rect -1 -1 2 2
probe all rgba 0.0 1.0 0.0 0.0
|