39 lines
		
	
	
		
			601 B
		
	
	
	
		
			GLSL
		
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			601 B
		
	
	
	
		
			GLSL
		
	
	
	
#version 450
 | 
						|
 | 
						|
#extension GL_EXT_buffer_reference : enable
 | 
						|
#extension GL_EXT_scalar_block_layout : enable
 | 
						|
 | 
						|
layout(buffer_reference, scalar) buffer T1 {
 | 
						|
    vec3 x[];
 | 
						|
};
 | 
						|
 | 
						|
layout(buffer_reference, scalar) buffer T2 {
 | 
						|
	vec3 x[][4][2];
 | 
						|
};
 | 
						|
 | 
						|
struct S
 | 
						|
{
 | 
						|
	highp ivec3 a;
 | 
						|
	mediump mat3 b[4];
 | 
						|
	highp vec4 c;
 | 
						|
};
 | 
						|
 | 
						|
layout(buffer_reference, scalar) buffer T3 {
 | 
						|
    S s;
 | 
						|
};
 | 
						|
layout(std430) buffer T4 {
 | 
						|
    T1 t1;
 | 
						|
    T2 t2;
 | 
						|
    T3 t3;
 | 
						|
} t4;
 | 
						|
 | 
						|
layout(location = 0) flat in int i;
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
    vec3 y;
 | 
						|
    y = t4.t1.x[i];
 | 
						|
    y = t4.t2.x[i][i][i];
 | 
						|
    mat3 z = t4.t3.s.b[0];
 | 
						|
}
 |