47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			GLSL
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			GLSL
		
	
	
	
#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; };
 |