3 #extension GL_EXT_nonuniform_qualifier : enable
\r
5 layout(location=0) nonuniformEXT in vec4 nu_inv4;
\r
6 nonuniformEXT float nu_gf;
\r
7 layout(location=1) in nonuniformEXT flat int nu_ii;
\r
8 layout(location = 2) in vec2 inTexcoord;
\r
10 layout(binding=0, input_attachment_index = 0) uniform subpassInput inputAttachmentDyn[];
\r
11 layout(binding=1) uniform samplerBuffer uniformTexelBufferDyn[];
\r
12 layout(binding=2, r32f) uniform imageBuffer storageTexelBufferDyn[];
\r
13 layout(binding=3) uniform uname { float a; } uniformBuffer[];
\r
14 layout(binding=4) buffer bname { float b; } storageBuffer[];
\r
15 layout(binding=5) uniform sampler2D sampledImage[];
\r
16 layout(binding=6, r32f) uniform image2D storageImage[];
\r
17 layout(binding=7, input_attachment_index = 1) uniform subpassInput inputAttachment[];
\r
18 layout(binding=8) uniform samplerBuffer uniformTexelBuffer[];
\r
19 layout(binding=9, r32f) uniform imageBuffer storageTexelBuffer[];
\r
20 layout(binding = 10) uniform texture2D uniformTexArr[8];
\r
21 layout(binding = 11) uniform sampler uniformSampler;
\r
23 nonuniformEXT int foo(nonuniformEXT int nupi, nonuniformEXT out int f)
\r
30 nonuniformEXT int nu_li;
\r
31 nonuniformEXT int nu_li2;
\r
34 int a = foo(nu_li, nu_li);
\r
35 nu_li = nonuniformEXT(a) + nonuniformEXT(a * 2);
\r
36 nu_li2 = a + nonuniformEXT(a * 2);
\r
39 b = nu_inv4.x * nu_gf;
\r
40 b += subpassLoad(inputAttachmentDyn[dyn_i]).x;
\r
41 b += texelFetch(uniformTexelBufferDyn[dyn_i], 1).x;
\r
42 b += imageLoad(storageTexelBufferDyn[dyn_i], 1).x;
\r
43 b += uniformBuffer[nu_ii].a;
\r
44 b += storageBuffer[nu_ii].b;
\r
45 b += texture(sampledImage[nu_ii], vec2(0.5)).x;
\r
46 b += imageLoad(storageImage[nu_ii], ivec2(1)).x;
\r
47 b += subpassLoad(inputAttachment[nu_ii]).x;
\r
48 b += texelFetch(uniformTexelBuffer[nu_ii], 1).x;
\r
49 b += imageLoad(storageTexelBuffer[nu_ii], 1).x;
\r
50 b += texture(sampler2D(uniformTexArr[nu_ii], uniformSampler), inTexcoord.xy).x;
\r
51 b += texture(nonuniformEXT(sampler2D(uniformTexArr[nu_ii], uniformSampler)), inTexcoord.xy).x;
\r
53 nonuniformEXT ivec4 v;
\r
54 nonuniformEXT mat4 m;
\r
55 nonuniformEXT struct S { int a; } s;
\r
56 nonuniformEXT int arr[10];
\r
59 struct US { int a[10]; } us;
\r
61 b += uniformBuffer[v.y].a;
\r
62 b += uniformBuffer[v[2]].a;
\r
63 b += uniformBuffer[uv[nu_ii]].a;
\r
64 b += uniformBuffer[int(m[2].z)].a;
\r
65 b += uniformBuffer[s.a].a;
\r
66 b += uniformBuffer[arr[2]].a;
\r
67 b += uniformBuffer[int(um[nu_ii].z)].a;
\r
68 b += uniformBuffer[us.a[nu_ii]].a;
\r
69 b += uniformBuffer[uarr[nu_ii]].a;
\r
71 storageBuffer[nu_ii].b = b;
\r