1617a3babSopenharmony_ci#version 450 2617a3babSopenharmony_ci 3617a3babSopenharmony_ci#extension GL_EXT_buffer_reference : enable 4617a3babSopenharmony_ci#extension GL_EXT_scalar_block_layout : enable 5617a3babSopenharmony_ci 6617a3babSopenharmony_cilayout(buffer_reference, scalar) buffer T1 { 7617a3babSopenharmony_ci vec3 x[]; 8617a3babSopenharmony_ci}; 9617a3babSopenharmony_ci 10617a3babSopenharmony_cilayout(buffer_reference, scalar) buffer T2 { 11617a3babSopenharmony_ci vec3 x[][4][2]; 12617a3babSopenharmony_ci}; 13617a3babSopenharmony_ci 14617a3babSopenharmony_cistruct S 15617a3babSopenharmony_ci{ 16617a3babSopenharmony_ci highp ivec3 a; 17617a3babSopenharmony_ci mediump mat3 b[4]; 18617a3babSopenharmony_ci highp vec4 c; 19617a3babSopenharmony_ci}; 20617a3babSopenharmony_ci 21617a3babSopenharmony_cilayout(buffer_reference, scalar) buffer T3 { 22617a3babSopenharmony_ci S s; 23617a3babSopenharmony_ci}; 24617a3babSopenharmony_cilayout(std430) buffer T4 { 25617a3babSopenharmony_ci T1 t1; 26617a3babSopenharmony_ci T2 t2; 27617a3babSopenharmony_ci T3 t3; 28617a3babSopenharmony_ci} t4; 29617a3babSopenharmony_ci 30617a3babSopenharmony_cilayout(location = 0) flat in int i; 31617a3babSopenharmony_ci 32617a3babSopenharmony_civoid main() 33617a3babSopenharmony_ci{ 34617a3babSopenharmony_ci vec3 y; 35617a3babSopenharmony_ci y = t4.t1.x[i]; 36617a3babSopenharmony_ci y = t4.t2.x[i][i][i]; 37617a3babSopenharmony_ci mat3 z = t4.t3.s.b[0]; 38617a3babSopenharmony_ci} 39