#version 440 core layout(std140, row_major) uniform nameless { vec3 anonMember1; mat3x2 m23; int scalarAfterm23; vec4 anonDeadMember2; vec4 anonMember3; int scalarBeforeArray; float floatArray[5]; int scalarAfterArray; mat2x2 m22[9]; }; layout(std140, column_major) uniform c_nameless { vec3 c_anonMember1; mat3x2 c_m23; int c_scalarAfterm23; vec4 c_anonDeadMember2; vec4 c_anonMember3; }; layout(std140) uniform named { vec3 deadMember1; int scalar; vec4 member2; vec4 member3; vec2 memvec2; float memf1; bool memf2; int memf3; vec2 memvec2a; mat2x2 m22[7]; } ablock; layout(std140) uniform namelessdead { int a; }; layout(std140) uniform namedDead { int b; } bblock; struct N1 { float a; }; struct N2 { float b; float c; float d; }; struct N3 { N1 n1; N2 n2; }; layout(std140) uniform nested { N3 foo; } nest; layout(std140) uniform nested2 { vec4 padding; // offset 0, size 16 N3 a; // offset 16, size 32 N1 b[4]; // offset 48, size 64 N1 c[2]; // offset 112, size 32 N1 d[4]; // offset 144, size 64 } nest2; struct TS { int a; int dead; }; uniform TS s; uniform float uf1; uniform float uf2; uniform float ufDead3; uniform float ufDead4; uniform writeonly uimage2D image_ui2D; uniform sampler2D sampler_2D; uniform sampler2DMSArray sampler_2DMSArray; uniform mat2 dm22[10]; struct deep1 { vec2 va[3]; bool b; }; struct deep2 { int i; deep1 d1[4]; }; struct deep3 { vec4 iv4; deep2 d2; ivec3 v3; }; in float attributeFloat; layout(location = 2) in vec2 attributeFloat2; in vec3 attributeFloat3; in vec4 attributeFloat4; in mat4 attributeMat4; in float attributeFloatArray[3]; uniform deep3 deepA[2], deepB[2], deepC[3], deepD[2]; const bool control = true; void deadFunction() { vec3 v3 = ablock.deadMember1; vec4 v = anonDeadMember2; float f = ufDead4; } void liveFunction2() { vec3 v = anonMember1; float f = uf1; } void liveFunction1(writeonly uimage2D p_ui2D, sampler2D p_2D, sampler2DMSArray p_2DMSArray) { liveFunction2(); float f = uf2; vec4 v = ablock.member3; } uniform abl { float foo; } arrBl[4]; uniform abl2 { float foo; } arrBl2[4]; buffer buf1 { float scalar; float runtimeArray[]; } buf1i; buffer buf2 { float scalar; N2 runtimeArray[]; } buf2i; buffer buf3 { float scalar; float runtimeArray[]; } buf3i; buffer buf4 { float scalar; N2 runtimeArray[]; } buf4i; struct VertexInfo { float position[3]; float normal[3]; }; struct TriangleInfo { VertexInfo v[3]; }; buffer VertexCollection { TriangleInfo t[5]; uint padding[10]; }; out float outval; void main() { liveFunction1(image_ui2D, sampler_2D, sampler_2DMSArray); liveFunction2(); if (! control) deadFunction(); float f; int i; if (control) { liveFunction2(); f = anonMember3.z; f = s.a; f = ablock.scalar; f = m23[1].y + scalarAfterm23; f = c_m23[1].y + c_scalarAfterm23; f += scalarBeforeArray; f += floatArray[2]; f += floatArray[4]; f += scalarAfterArray; f += ablock.memvec2.x; f += ablock.memf1; f += float(ablock.memf2); f += ablock.memf3; f += ablock.memvec2a.y; f += ablock.m22[i][1][0]; f += dm22[3][0][1]; f += m22[2][1].y; f += nest.foo.n1.a + nest.foo.n2.b + nest.foo.n2.c + nest.foo.n2.d; f += deepA[i].d2.d1[2].va[1].x; f += deepB[1].d2.d1[i].va[1].x; f += deepB[i].d2.d1[i].va[1].x; deep3 d = deepC[1]; deep3 da[2] = deepD; deep1 db = deepA[i].d2.d1[i]; } else f = ufDead3; f += arrBl[2].foo + arrBl[0].foo; f += arrBl2[i].foo; f += attributeFloat; f += attributeFloat2.x; f += attributeFloat3.x; f += attributeFloat4.x; f += attributeMat4[0][1]; f += attributeFloatArray[2]; f += buf1i.runtimeArray[3]; f += buf2i.runtimeArray[3].c; f += buf3i.runtimeArray[gl_InstanceID]; f += buf4i.runtimeArray[gl_InstanceID].c; N3 n = nest2.a; N1 b[4] = nest2.b; f += nest2.c[1].a; f += nest2.d[gl_InstanceID].a; 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]; TriangleInfo tlocal[5] = t; outval = f; }