File: uniform-structs.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 (45 lines) | stat: -rw-r--r-- 1,051 bytes parent folder | download | duplicates (3)
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
[require]
GLSL >= 1.10

[vertex shader]
varying vec4 texcoords;

/* Make the first uniform in the linked program take up a bunch of storage */
uniform mat4 identity;

void main()
{
    gl_Position = identity * gl_Vertex;
    texcoords = (gl_Vertex + 1.0) / 2.0;
}

[fragment shader]
struct tex_struct {
    vec4 mix;
    sampler2D sampler;
};

varying vec4 texcoords;

/* If the implementation splits the struct badly and accidentally assigns
 * location 0 to the sampler, an implementation may confuse it with the
 * earlier matrix which takes up storage (unlike a sampler).
 */
uniform tex_struct tex;

void main()
{
    gl_FragColor = texture2D(tex.sampler, texcoords.xy) * tex.mix;
}

[test]
uniform mat4 identity 1 0 0 0  0 1 0 0  0 0 1 0  0 0 0 1
uniform int tex.sampler 0
uniform vec4 tex.mix 0.5 0.5 0.5 0.5
texture rgbw 0 (8, 8)
draw rect -1 -1 2 2
relative probe rgb (0.25, 0.25) (0.5, 0.0, 0.0)
relative probe rgb (0.75, 0.25) (0.0, 0.5, 0.0)
relative probe rgb (0.25, 0.75) (0.0, 0.0, 0.5)
relative probe rgb (0.75, 0.75) (0.5, 0.5, 0.5)