File: temp_arrays.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 (57 lines) | stat: -rw-r--r-- 1,258 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
[require]
GLSL >= 1.10

[vertex shader]

/**
 * This test exercises arrays indexed with a variable.
 * We test with two arrays to be sure at least one is positioned
 * above TEMP[0].
 */

uniform float one;
uniform int writeIndex;
uniform int readIndex;
varying vec4 color;
void main()
{
	// Setup two arrays
	vec4 a1[5], a2[5];

	a1[0] = vec4(0.0, 0.0, 0.0, 0.0);
	a1[1] = vec4(0.0, 0.0, 0.0, 0.0);
	a1[2] = vec4(0.0, 0.0, 0.0, 0.0);
	a1[3] = vec4(0.0, 0.0, 0.0, 0.0);
	a1[4] = vec4(0.0, 0.0, 0.0, 0.0);

	a2[0] = vec4(0.0, 0.0, 0.0, 0.0);
	a2[1] = vec4(0.0, 0.0, 0.0, 0.0);
	a2[2] = vec4(0.0, 0.0, 0.0, 0.0);
	a2[3] = vec4(0.0, 0.0, 0.0, 0.0);
	a2[4] = vec4(0.0, 0.0, 0.25, 0.0);

	gl_Position = gl_Vertex;

	// write to the arrays
	a1[writeIndex] = vec4(1.0, 0.25, 0.0, 1.0);
	a2[writeIndex] = vec4(1.0, 0.25, 0.75, 1.0);

	// add array elements
	color = a1[readIndex] + a2[readIndex] + a2[4];
}

[fragment shader]
varying vec4 color;
void main()
{
	gl_FragColor = color;
}

[test]
uniform int readIndex 1
uniform int writeIndex 1
draw rect -1 -1 2 2
relative probe rgb (0.0, 0.0) (1.0, 0.5, 1.0, 1.0)
relative probe rgb (1.0, 0.0) (1.0, 0.5, 1.0, 1.0)
relative probe rgb (0.0, 1.0) (1.0, 0.5, 1.0, 1.0)
relative probe rgb (1.0, 1.0) (1.0, 0.5, 1.0, 1.0)