glsl: test loop unroll with uint overflow
[piglit.git] / tests / spec / arb_shader_subroutine / execution / array-subroutines-explicit-location.shader_test
blob5bf0419d98d4a9dbdc8b9db384aa87eb321768c6
1 # test calling subroutine uniforms in an array
2 # with a constant value works.
3 [require]
4 GLSL >= 1.50
5 GL_ARB_explicit_attrib_location
6 GL_ARB_explicit_uniform_location
7 GL_ARB_shader_subroutine
9 [vertex shader passthrough]
11 [fragment shader]
12 #version 150
13 #extension GL_ARB_explicit_attrib_location : require
14 #extension GL_ARB_explicit_uniform_location : require
15 #extension GL_ARB_shader_subroutine: enable
17 out vec4 color;
19 subroutine float getchan1();
21 layout(location = 4) subroutine uniform getchan1 GetChan1[2];
23 subroutine(getchan1)
24 float chan_full()
26         return 1.0;
29 subroutine(getchan1)
30 float chan_empty()
32         return 0.0;
35 void main()
37         color = vec4(GetChan1[0](), GetChan1[1](), 0.0, 1.0);
41 [test]
42 clear color 0.0 0.0 1.0 0.0
43 clear
44 subuniform GL_FRAGMENT_SHADER GetChan1[0] chan_full
45 subuniform GL_FRAGMENT_SHADER GetChan1[1] chan_empty
46 draw rect -1 -1 2 2
47 probe all rgba 1.0 0.0 0.0 1.0
48 subuniform GL_FRAGMENT_SHADER GetChan1[0] chan_empty
49 subuniform GL_FRAGMENT_SHADER GetChan1[1] chan_full
50 draw rect -1 -1 2 2
51 probe all rgba 0.0 1.0 0.0 1.0