• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#version 450
2
3#extension GL_EXT_buffer_reference : enable
4
5layout(buffer_reference) buffer bufType1 { int x; };
6layout(buffer_reference) buffer bufType2 { int x; };
7layout(buffer_reference) uniform bufType3 { int x; };
8
9layout(buffer_reference) buffer;
10layout(buffer_reference) uniform;
11layout(buffer_reference) in;
12layout(buffer_reference) out;
13layout(buffer_reference) in badin { float x; } badin2;
14layout(buffer_reference) out badout { float x; } badout2;
15
16layout(buffer_reference) buffer bufType5;
17
18layout(buffer_reference) buffer bufType6 { int x[]; };
19
20layout(buffer_reference, std140, buffer_reference_align = 16) buffer bufType7;
21layout(buffer_reference) buffer bufType7 { int x[]; };
22
23buffer bufType4 {
24    bufType1 b1;
25    bufType2 b2;
26    bufType3 b3;
27    bufType6 b6;
28    bufType7 b7;
29} b4;
30
31void f()
32{
33    bufType6 b;
34    b.x.length();
35    b4.b6.x.length();
36    b[2];               // ERROR, can't index due to unsized array
37}
38
39void main() {
40    bufType2 x1 = b4.b1;
41    bufType2 x2 = bufType2(b4.b1);
42    bufType2 x3 = bufType2(b4.b2);
43    bufType2 x4 = bufType2(b4.b3);
44
45    b4.b1 = b4.b2;
46    b4.b1 = b4.b3;
47    b4.b3 = b4.b2;
48}
49
50layout(buffer_reference) uniform bufType5 { int x; };
51