#version 450 #extension GL_EXT_buffer_reference : enable layout(buffer_reference) buffer bufType1 { int x; }; layout(buffer_reference) buffer bufType2 { int x; }; layout(buffer_reference) uniform bufType3 { int x; }; layout(buffer_reference) buffer; layout(buffer_reference) uniform; layout(buffer_reference) in; layout(buffer_reference) out; layout(buffer_reference) in badin { float x; } badin2; layout(buffer_reference) out badout { float x; } badout2; layout(buffer_reference) buffer bufType5; layout(buffer_reference) buffer bufType6 { int x[]; }; buffer bufType4 { bufType1 b1; bufType2 b2; bufType3 b3; bufType6 b6; } b4; void f() { bufType6 b; b.x.length(); b4.b6.x.length(); b[2]; // ERROR, can't index due to unsized array } void main() { bufType2 x1 = b4.b1; bufType2 x2 = bufType2(b4.b1); bufType2 x3 = bufType2(b4.b2); bufType2 x4 = bufType2(b4.b3); b4.b1 = b4.b2; b4.b1 = b4.b3; b4.b3 = b4.b2; } layout(buffer_reference) uniform bufType5 { int x; };