File: vs-constructors.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 (127 lines) | stat: -rw-r--r-- 3,120 bytes parent folder | download | duplicates (4)
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
122
123
124
125
126
127
# test truncating a double holds precision
[require]
GLSL >= 1.50
GL_ARB_gpu_shader_fp64

[vertex shader]
#version 150
#extension GL_ARB_gpu_shader_fp64 : require

in vec4 vertex;
out vec4 cc;

void main()
{
	double d1 = 8.0lf;
	double d2 = 5.0lf;
	dvec2 v2_1 = dvec2(2.0, 3.0);
	dvec2 v2_2 = dvec2(4.0, 5.0);
	dvec3 v3_1 = dvec3(80.0, 81.0, 82.0);
	dvec3 v3_2 = dvec3(11.0, 12.0, 13.0);
	dvec3 v3_3 = dvec3(15.0, 16.0, 17.0);
	dvec4 v4_1 = dvec4(16.0, 17.0, 18.0, 19.0);
	dvec4 v4_2 = dvec4(20.0, 21.0, 22.0, 23.0);
	dvec4 v4_3 = dvec4(24.0, 25.0, 26.0, 27.0);
	dvec4 v4_4 = dvec4(38.0, 39.0, 40.0, 41.0);
	dmat2 m2 = dmat2(50.0, 51.0, 52.0, 53.0);

	cc = vec4(0.0, 0.0, 0.0, 0.0);

	dmat2 expected_m2 = dmat2(2.0, 3.0, 4.0, 5.0);
	dmat2 real_m2 = dmat2(v2_1, v2_2);
	if (expected_m2 != real_m2)
		cc = vec4(0.5, 0.0, 0.0, 0.0);

	dmat3 expected_m3_1 = dmat3(8.0, 0.0, 0.0,
				    0.0, 8.0, 0.0,
				    0.0, 0.0, 8.0);
	dmat3 real_m3_1 = dmat3(d1);
	if (expected_m3_1 != real_m3_1)
		cc = vec4(1.0, 0.0, 0.0, 0.0);

	dmat3 expected_m3_2 = dmat3(80.0, 81.0, 82.0,
				    11.0, 12.0, 13.0,
				    15.0, 16.0, 17.0);
	dmat3 real_m3_2 = dmat3(v3_1, v3_2, v3_3);
	if (expected_m3_2 != real_m3_2)
		cc = vec4(0.0, 1.0, 0.0, 0.0);

	dmat4 expected_m4_1 = dmat4(16.0, 17.0, 18.0, 19.0,
				    20.0, 21.0, 22.0, 23.0,
				    24.0, 25.0, 26.0, 27.0,
				    38.0, 39.0, 40.0, 41.0);
	dmat4 real_m4_1 = dmat4(v4_1, v4_2, v4_3, v4_4);
	if (expected_m4_1 != real_m4_1)
		cc = vec4(0.0, 0.0, 1.0, 0.0);

	dmat4 expected_m4_2 = dmat4(50.0, 51.0, 0.0, 0.0,
				    52.0, 53.0, 0.0, 0.0,
				    0.0, 0.0, 1.0, 0.0,
				    0.0, 0.0, 0.0, 1.0);
	dmat4 real_m4_2 = dmat4(m2);
	if (expected_m4_2 != real_m4_2)
		cc = vec4(0.0, 0.0, 0.0, 1.0);

	dmat2x4 expected_m2x4_1 = dmat2x4(80.0, 81.0, 82.0, 8.0,
					  5.0, 11.0, 12.0, 13.0);
	dmat2x4 real_m2x4_1 = dmat2x4(v3_1, d1, d2, v3_2);
	if (expected_m2x4_1 != real_m2x4_1)
		cc = vec4(1.0, 1.0, 0.0, 0.0);

	dmat2x4 expected_m2x4_2 = dmat2x4(16.0, 17.0, 18.0, 19.0,
					  20.0, 21.0, 22.0, 23.0);
	dmat2x4 real_m2x4_2 = dmat2x4(v4_1, v4_2);
	if (expected_m2x4_2 != real_m2x4_2)
		cc = vec4(1.0, 0.0, 1.0, 0.0);

	dvec3 expected_v3_1 = dvec3(8.0, 8.0, 8.0);
	dvec3 real_v3_1 = dvec3(d1);
	if (expected_v3_1 != real_v3_1)
		cc = vec4(1.0, 0.0, 0.0, 1.0);

	dvec3 expected_v3_2 = dvec3(8.0, 2.0, 3.0);
	dvec3 real_v3_2 = dvec3(d1, v2_1);
	if (expected_v3_2 != real_v3_2)
		cc = vec4(1.0, 1.0, 1.0, 0.0);

	dvec3 expected_v3_3 = dvec3(16.0, 17.0, 18.0);
	dvec3 real_v3_3 = dvec3(v4_1);
	if (expected_v3_3 != real_v3_3)
		cc = vec4(1.0, 1.0, 1.0, 1.0);

	dvec3 expected_v4_4 = dvec3(50.0, 51.0, 52.0);
	dvec3 real_v4_4 = dvec3(m2);
	if (expected_v4_4 != real_v4_4)
		cc = vec4(0.0, 0.5, 0.0, 1.0);

	gl_Position = vertex;
}

[fragment shader]
#version 150
#extension GL_ARB_gpu_shader_fp64 : require

uniform double tolerance;
uniform double expected;

in vec4 cc;
out vec4 color;

void main()
{
	color = cc;
}

[vertex data]
vertex/float/2
-1.0 -1.0
 1.0 -1.0
 1.0  1.0
-1.0  1.0

[test]
clear color 0.0 0.0 1.0 0.0

clear
draw arrays GL_TRIANGLE_FAN 0 4
probe rgba 0 0 0.0 0.0 0.0 0.0