#version 450 out gl_PerVertex { vec4 gl_Position; float gl_PointSize; float gl_ClipDistance[1]; float gl_CullDistance[1]; }; layout(set = 0, binding = 0, std140) uniform data_u_t { layout(offset = 80) mediump int m0[8]; layout(offset = 0) mediump ivec4 m1[3]; layout(offset = 64) uvec3 m2; layout(offset = 48) mediump uint m3; } data_u; layout(location = 0) in vec4 vtx_posn; layout(location = 0) out mediump float foo; void main() { gl_Position = vtx_posn; ivec4 a = data_u.m1[1]; uvec3 b = data_u.m2; int c = data_u.m0[4]; foo = (a.xyz + b).y * c; }