1617a3babSopenharmony_ci#version 450 core 2617a3babSopenharmony_ci 3617a3babSopenharmony_ci#extension GL_EXT_buffer_reference : enable 4617a3babSopenharmony_cilayout (push_constant, std430) uniform Block { int identity[32]; } pc; 5617a3babSopenharmony_cilayout(r32ui, set = 3, binding = 0) uniform uimage2D image0_0; 6617a3babSopenharmony_cilayout(buffer_reference) buffer T1; 7617a3babSopenharmony_cilayout(set = 3, binding = 1, buffer_reference) buffer T1 { 8617a3babSopenharmony_ci layout(offset = 0) int a[2]; // stride = 4 for std430, 16 for std140 9617a3babSopenharmony_ci layout(offset = 32) int b; 10617a3babSopenharmony_ci layout(offset = 48) T1 c[2]; // stride = 8 for std430, 16 for std140 11617a3babSopenharmony_ci layout(offset = 80) T1 d; 12617a3babSopenharmony_ci} x; 13617a3babSopenharmony_civoid main() 14617a3babSopenharmony_ci{ 15617a3babSopenharmony_ci int accum = 0, temp; 16617a3babSopenharmony_ci accum |= x.a[0] - 0; 17617a3babSopenharmony_ci accum |= x.a[pc.identity[1]] - 1; 18617a3babSopenharmony_ci accum |= x.b - 2; 19617a3babSopenharmony_ci accum |= x.c[0].a[0] - 3; 20617a3babSopenharmony_ci accum |= x.c[0].a[pc.identity[1]] - 4; 21617a3babSopenharmony_ci accum |= x.c[0].b - 5; 22617a3babSopenharmony_ci accum |= x.c[pc.identity[1]].a[0] - 6; 23617a3babSopenharmony_ci accum |= x.c[pc.identity[1]].a[pc.identity[1]] - 7; 24617a3babSopenharmony_ci accum |= x.c[pc.identity[1]].b - 8; 25617a3babSopenharmony_ci accum |= x.d.a[0] - 9; 26617a3babSopenharmony_ci accum |= x.d.a[pc.identity[1]] - 10; 27617a3babSopenharmony_ci accum |= x.d.b - 11; 28617a3babSopenharmony_ci uvec4 color = (accum != 0) ? uvec4(0,0,0,0) : uvec4(1,0,0,1); 29617a3babSopenharmony_ci imageStore(image0_0, ivec2(gl_FragCoord.x, gl_FragCoord.y), color); 30617a3babSopenharmony_ci}