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