File: vs-struct-copy-complicated.shader_test

package info (click to toggle)
piglit 0~git20200212-f4710c51b-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 106,972 kB
  • sloc: ansic: 263,763; xml: 48,941; python: 29,918; lisp: 19,789; cpp: 12,142; sh: 22; makefile: 20; pascal: 5
file content (121 lines) | stat: -rw-r--r-- 3,483 bytes parent folder | download | duplicates (5)
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