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