glsl: test loop unroll with uint overflow
[piglit.git] / tests / spec / arb_shader_subroutine / execution / simple-subroutine-dlist.shader_test
blobfb4926e6bb9f2ae28f53e40b59afa44b7efba116
1 # simple display list test using one shader subroutine.
3 [require]
4 GL COMPAT >= 3.2
5 GLSL >= 1.50
6 GL_ARB_shader_subroutine
8 [vertex shader passthrough]
10 [fragment shader]
11 #version 150
12 #extension GL_ARB_shader_subroutine: enable
14 out vec4 color;
16 subroutine vec4 getcolor();
17 subroutine uniform getcolor GetColor;
19 subroutine(getcolor)
20 vec4 color_red()
22         return vec4(1.0, 0.0, 0.0, 1.0);
25 subroutine(getcolor)
26 vec4 color_green()
28         return vec4(0.0, 1.0, 0.0, 1.0);
31 subroutine(getcolor)
32 vec4 color_blue()
34         return vec4(0.0, 0.0, 1.0, 1.0);
37 void main()
39         color = GetColor();
43 [test]
44 clear color 0.1 0.1 0.1 0.1
45 clear
47 # Initialise subroutine to make sure call list is respected
48 subuniform GL_FRAGMENT_SHADER GetColor color_blue
49 draw rect -1 -1 2 2
50 probe all rgba 0.0 0.0 1.0 1.0
52 clear color 0.1 0.1 0.1 0.1
53 clear
55 newlist GL_COMPILE
56 subuniform GL_FRAGMENT_SHADER GetColor color_red
57 draw rect -1 -1 2 2
58 endlist
60 # make sure we haven't drawn anything yet
61 probe all rgba 0.1 0.1 0.1 0.1
63 # Set wrong subroutine to make sure the call list is respected
64 subuniform GL_FRAGMENT_SHADER GetColor color_blue
65 draw rect -1 -1 2 2
66 probe all rgba 0.0 0.0 1.0 1.0
68 calllist
69 probe all rgba 1.0 0.0 0.0 1.0
71 deletelist
73 clear color 0.1 0.1 0.1 0.1
74 clear
76 newlist GL_COMPILE_AND_EXECUTE
77 subuniform GL_FRAGMENT_SHADER GetColor color_green
78 draw rect -1 -1 2 2
79 endlist
81 probe all rgba 0.0 1.0 0.0 1.0
83 # Set wrong subroutine to make sure the call list is respected
84 subuniform GL_FRAGMENT_SHADER GetColor color_blue
85 draw rect -1 -1 2 2
86 probe all rgba 0.0 0.0 1.0 1.0
88 clear color 0.1 0.1 0.1 0.1
89 clear
91 calllist
92 probe all rgba 0.0 1.0 0.0 1.0