ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_shading_language_420pack / linker / different-bindings-uniform-blocks.shader_test
blob9d8c2794be0d05b7bda8c43da567facfdca273c3
1 /* The GL 4.20 (Core Profile) spec says:
2  *
3  *     "2.11.7 Uniform Variables
4  *
5  *      ...
6  *
7  *      Uniform Blocks
8  *
9  *      ...
10  *
11  *      When a named uniform block is declared by multiple shaders in
12  *      a program, it must be declared identically in each shader. The
13  *      uniforms within the block must be declared with the same names
14  *      and types, and in the same order. If a program contains
15  *      multiple shaders with different declarations for the same
16  *      named uniform block differs between shader, the program will
17  *      fail to link."
18  *
19  * Although this restriction is not included in the
20  * ARB_shading_language_420pack spec, it is reasonable to believe that
21  * it applies to it too.
22  *
23  * Verify that a link error happens when using different binding
24  * points for Uniform Blocks with the same name in different
25  * compilation units.
26  */
28 [require]
29 GLSL >= 1.30
30 GL_ARB_shading_language_420pack
31 GL_ARB_uniform_buffer_object
33 [vertex shader]
34 #version 130
35 #extension GL_ARB_shading_language_420pack: require
36 #extension GL_ARB_uniform_buffer_object: require
38 layout (binding = 0) uniform Block {
39         vec4 color;
42 in vec4 piglit_vertex;
43 out vec4 vs_fs;
45 void main()
47         vs_fs = color;
48         gl_Position = piglit_vertex;
51 [fragment shader]
52 #version 130
53 #extension GL_ARB_shading_language_420pack: require
54 #extension GL_ARB_uniform_buffer_object: require
56 layout (binding = 1) uniform Block {
57         vec4 color;
60 in  vec4 vs_fs;
61 out vec4 fs_out;
63 void main()
65         fs_out = vs_fs * color.x;
68 [test]
69 link error