export uniform int width() { return programCount; } struct Foo { float f; }; void f(Foo foo[], float a) { ++foo[a].f; } export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { float a = aFOO[programIndex]; Foo foo[programCount+5]; for (uniform int i = 0; i < programCount+5; ++i) foo[i].f = a; f(foo, a); RET[programIndex] = foo[a].f; } export void result(uniform float RET[]) { RET[programIndex] = 2+programIndex; }