ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / glsl-1.10 / linker / override-builtin-uniform-07.shader_test
blobb2f9af314e6533a0bd6c0b956d476be07826023f
1 [require]
2 GLSL >= 1.10
4 [vertex shader]
5 void main() { gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; }
7 [fragment shader]
8 /* From page 38 (page 44 of the PDF) of the GLSL 1.10 spec:
9  *
10  *     "A shader can redefine built-in functions. If a built-in function is
11  *     redeclared in a shader (i.e. a prototype is visible) before a call to
12  *     it, then the linker will only attempt to resolve that call within the
13  *     set shaders that are linked with it."
14  */
15 uniform float f;
17 float func(float);
19 float abs(float x)
21   return x;
24 void main()
26   /* The call to abs in func should bind to the built-in version, but
27    * the call to abs here, which follows the override, should not.
28    */
29   gl_FragColor = (func(f) == abs(f))
30                   ? vec4(1.0, 0.0, 0.0, 1.0)
31                   : vec4(0.0, 1.0, 0.0, 1.0);
34 [fragment shader]
35 float func(float x)
37   return abs(x);
40 [test]
41 uniform float f -1.0
42 draw rect -1 -1 2 2
43 probe all rgb 0.0 1.0 0.0