ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_shader_subroutine / execution / two-subroutines-nested.shader_test
blobb65a02019dea80bd324af0217a0123f178af340f
1 # two subroutines, once calls into the other.
2 # ensure a subroutine calling a subroutine
3 # before all members have been parsed
4 # works fine.
5 # Initial mesa implementation generated
6 # the lowered call too early.
8 [require]
9 GLSL >= 1.50
10 GL_ARB_shader_subroutine
12 [vertex shader passthrough]
14 [fragment shader]
15 #version 150
16 #extension GL_ARB_shader_subroutine: enable
18 uniform float myin;
19 out vec4 color;
21 subroutine float getchan1();
22 subroutine uniform getchan1 GetChan1;
24 subroutine float getchan2();
25 subroutine uniform getchan2 GetChan2;
27 subroutine(getchan1)
28 float chan1_full()
30         return 1.0;
33 subroutine(getchan2)
34 float chan2_full()
36         return GetChan1();
39 subroutine(getchan1)
40 float chan1_empty()
42         return 0.0;
45 subroutine(getchan2)
46 float chan2_empty()
48         return 0.0;
51 void main()
53         color = vec4(GetChan1(), GetChan2(), myin, 1.0);
57 [test]
58 clear color 0.0 0.0 1.0 0.0
59 clear
60 subuniform GL_FRAGMENT_SHADER GetChan1 chan1_full
61 subuniform GL_FRAGMENT_SHADER GetChan2 chan2_empty
62 uniform float myin 1.0
63 draw rect -1 -1 2 2
64 probe all rgba 1.0 0.0 1.0 1.0
65 subuniform GL_FRAGMENT_SHADER GetChan1 chan1_empty
66 subuniform GL_FRAGMENT_SHADER GetChan2 chan2_full
67 uniform float myin 1.0
68 draw rect -1 -1 2 2
69 probe all rgba 0.0 0.0 1.0 1.0