ARB_ubo/referenced-by-shader: pass if shader compiler moves UBOs between shaders
[piglit.git] / tests / spec / arb_compute_shader / compiler / shared-variables.comp
blobcd4a3d2d1276fda91e0023b072fe0b5cec2f141b
1 // [config]
2 // expect_result: pass
3 // glsl_version: 4.20
4 // require_extensions: GL_ARB_compute_shader
5 // [end config]
7 #version 420
8 #extension GL_ARB_compute_shader: enable
10 #define DECL(q, t) q t t##_v; q t t##_va[2]
11 #define DECL_234(q, t) DECL(q, t##2); DECL(q, t##3); DECL(q, t##4)
13 #define DECL_VARS(q) \
14     DECL(q, uint); \
15     DECL(q, int); \
16     DECL(q, float); \
17     DECL_234(q, uvec); \
18     DECL_234(q, ivec); \
19     DECL_234(q, vec); \
20     DECL_234(q, mat)
22 struct s1 {
23     DECL_VARS();
26 struct s2 {
27     s1 s;
28     s1 sa[2];
31 DECL_VARS(shared);
33 shared s1 s1i;
34 shared s2 s2i;
36 layout(local_size_x = 1) in;
38 void main()
40     uint_va[1] = s2i.sa[1].uint_va[1];
41     s1i.mat4_va[1] = mat4_v;
42     s2i.sa[1].vec4_va[0] = s1i.mat4_va[1][3];
43     s2i.s.mat2_va[1][1][0] = float_v;