#version 430 in float infloat; out float outfloat; uniform uAofA { float f[2][4]; } nameAofA[3][5]; float[4][5][6] many[1][2][3]; float g4[4][7]; in float g5[5][7]; flat in int i, j, k; float[4][7] foo(float a[5][7]) { float r[7]; r = a[2]; return float[4][7](a[0], a[1], r, a[3]); } void main() { outfloat = 0.0; g4 = foo(g5); // if (foo(g5) == g4) // ++outfloat; float u[][7]; u[2][2] = 3.0; float u[5][7]; foo(u); many[i][j][k][i][j][k] = infloat; outfloat += many[j][j][j][j][j][j]; outfloat += nameAofA[1][2].f[0][3]; }