1#version 450
2
3uniform layout(binding=0) sampler       g_sSamp1;
4uniform sampler       g_sSamp2;
5uniform layout(binding=2) sampler       g_sSamp3[2];
6uniform sampler       g_sSamp4[3];
7uniform sampler       g_sSamp5;
8
9uniform sampler       g_sSamp_unused1;
10uniform sampler       g_sSamp_unused2;
11
12uniform layout(binding=1) texture1D          g_tTex1;
13uniform texture1D  g_tTex2;
14uniform layout(binding=3) texture1D          g_tTex3[2];
15uniform texture1D          g_tTex4[3];
16uniform texture1D          g_tTex5;
17
18uniform layout(binding=0)  texture1D          g_tTex_unused1;
19uniform layout(binding=2)  texture1D          g_tTex_unused2;
20uniform texture1D          g_tTex_unused3;
21
22struct MyStruct_t {
23    int a;
24    float b;
25    vec3 c;
26};
27
28uniform layout(binding=4) myblock {
29    MyStruct_t mystruct;
30    vec4 myvec4_a;
31    vec4 myvec4_b;
32    ivec4 myint4_a;
33};
34
35vec4 Func1()
36{
37    return
38        texture(sampler1D(g_tTex1, g_sSamp1), 0.1) +
39        texture(sampler1D(g_tTex2, g_sSamp2), 0.2) +
40        texture(sampler1D(g_tTex3[0], g_sSamp3[0]), 0.3) +
41        texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3) +
42        texture(sampler1D(g_tTex4[1], g_sSamp4[1]), 0.4) +
43        texture(sampler1D(g_tTex4[2], g_sSamp4[2]), 0.4) +
44        texture(sampler1D(g_tTex5, g_sSamp5), 0.5) +
45        mystruct.c[1];
46}
47
48vec4 Func2()
49{
50    return
51        texture(sampler1D(g_tTex1, g_sSamp1), 0.1) +
52        texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3);
53}
54
55// Not called from entry point:
56vec4 Func2_unused()
57{
58    return
59        texture(sampler1D(g_tTex_unused1, g_sSamp_unused1), 1.1) +
60        texture(sampler1D(g_tTex_unused2, g_sSamp_unused2), 1.2);
61}
62
63out vec4 FragColor;
64
65void main()
66{
67    FragColor = Func1() + Func2();
68}
69