File: pervertex-culldistance-tcs-out-tes.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 (72 lines) | stat: -rw-r--r-- 1,424 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
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
// From the ARB_separate_shader_objects spec v.25:
//
//    "To use any built-in input or output in the gl_PerVertex and
//     gl_PerFragment blocks in separable program objects, shader code
//     must redeclare those blocks prior to use.  A separable program
//     will fail to link if:
//
//      * it contains multiple shaders of a single type with different
//        redeclarations of these built-in input and output blocks; or
//
//      * any shader uses a built-in block member not found in the
//        redeclaration of that block."

[require]
GLSL >= 1.50
GL_ARB_separate_shader_objects
GL_ARB_tessellation_shader
GL_ARB_cull_distance
SEPARABLE PROGRAM ENABLED


[vertex shader]
#version 150

void main()
{
}


[tessellation control shader]
#version 150
#extension GL_ARB_tessellation_shader: require
#extension GL_ARB_cull_distance: enable

layout(vertices = 3) out;

void main() {
  gl_out[gl_InvocationID].gl_CullDistance[0] = float(1.0);
  gl_TessLevelOuter = float[4](1.0, 1.0, 1.0, 1.0);
  gl_TessLevelInner = float[2](1.0, 1.0);
}


[tessellation evaluation shader]
#version 150
#extension GL_ARB_tessellation_shader: require
#extension GL_ARB_cull_distance: enable

layout(triangles) in;

out vec4 tes_color;

void main()
{
  tes_color = vec4(gl_in[0].gl_CullDistance[0]);
}


[fragment shader]
#version 150

in vec4 tes_color;
out vec4 color;

void main()
{
  color = tes_color;
}


[test]
link error