ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_shader_storage_buffer_object / execution / indirect.shader_test
blob970bab68cb74e125555a70cce33bf136530fcf99
1 # Tests (dynamically uniform) indirect indexing of SSBOs.
3 [require]
4 GL >= 3.3
5 GLSL >= 3.30
6 GL_ARB_shader_storage_buffer_object
8 [vertex shader]
9 #version 330
11 uniform int u_idx;
12 in vec4 piglit_vertex;
13 flat out int idx;
15 void main() {
16         idx = u_idx;
17         gl_Position = piglit_vertex;
20 [fragment shader]
21 #version 330
22 #extension GL_ARB_gpu_shader5: require
23 #extension GL_ARB_shader_storage_buffer_object: require
25 layout(binding = 0) buffer Data {
26         vec4 color;
27         float color_scale;
28 } data[2];
30 flat in int idx;
31 out vec4 outcolor;
33 void main() {
34     outcolor = data[idx].color * data[idx].color_scale;
37 [test]
38 ssbo 0 32
39 ssbo 0 subdata float 0 1.0
40 ssbo 0 subdata float 4 2.0
41 ssbo 0 subdata float 12 2.0
42 ssbo 0 subdata float 16 0.5
44 ssbo 1 32
45 ssbo 1 subdata float 0 1.0
46 ssbo 1 subdata float 4 2.0
47 ssbo 1 subdata float 12 4.0
48 ssbo 1 subdata float 16 0.25
50 clear color 1.0 0.0 0.0 1.0
51 clear
53 uniform int u_idx 0
55 draw rect -1 -1 2 2
56 probe all rgba 0.5 1.0 0.0 1.0
58 uniform int u_idx 1
60 draw rect -1 -1 2 2
61 probe all rgba 0.25 0.5 0.0 1.0