You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.3 KiB

#version 440 core
struct VertexInfo {
float position[3];
float normal[3];
};
struct TriangleInfo {
VertexInfo v[3];
};
buffer VertexCollection {
TriangleInfo t[5];
uint padding[10];
};
buffer MultipleArrays {
TriangleInfo tri[5];
VertexInfo vert[5];
float f[5];
} multiarray;
buffer ArrayedBind {
float a;
float b;
} buffers[3];
uniform UBO {
VertexInfo verts[2];
float flt[8];
uvec4 unused;
float uniform_multi[4][3][2];
} ubo;
uniform float uniform_multi[4][3][2];
struct OutputStruct {
float val;
vec3 a;
vec2 b[4];
mat2x2 c;
};
out OutputStruct outval;
out float outarr[3];
void main()
{
float f;
f += t[0].v[0].position[0];
f += t[gl_InstanceID].v[gl_InstanceID].position[gl_InstanceID];
f += t[gl_InstanceID].v[gl_InstanceID].normal[gl_InstanceID];
f += multiarray.tri[gl_InstanceID].v[0].position[0];
f += multiarray.vert[gl_InstanceID].position[0];
f += multiarray.f[gl_InstanceID];
f += ubo.verts[gl_InstanceID].position[0];
f += ubo.flt[gl_InstanceID];
f += ubo.uniform_multi[0][0][0];
f += uniform_multi[gl_InstanceID][gl_InstanceID][gl_InstanceID];
f += buffers[gl_InstanceID].b;
TriangleInfo tlocal[5] = t;
outval.val = f;
outarr[2] = f;
}