float foo (float a, float b, float c) { return a+b+c; } float bar (float a, float b) { float c = a*b; return foo (a, b, c); } float har (float a) { float b = sqrt(a); float c = sqrt(b); return bar (a, b) + c; } void main () { gl_Position = vec4(har(gl_Vertex.x)); }