SPIRV-Cross/shaders-msl/vert/uniform-struct-out-of-order-offests.vert

32 lines
610 B
GLSL
Raw Normal View History

#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;
}