Skip to content

Commit 8eb0bdc

Browse files
greg-lunargBNieuwenhuizen
authored andcommitted
Add texture sample to nonuniform test
This verifies that the nonuniform decoration does NOT propagate to the OpSampledImage.
1 parent 889ac20 commit 8eb0bdc

File tree

2 files changed

+115
-78
lines changed

2 files changed

+115
-78
lines changed

Test/baseResults/spv.nonuniform.frag.out

Lines changed: 111 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
spv.nonuniform.frag
22
// Module Version 10000
33
// Generated by (magic number): 8000a
4-
// Id's are bound by 215
4+
// Id's are bound by 235
55

66
Capability Shader
77
Capability InputAttachment
@@ -22,7 +22,7 @@ spv.nonuniform.frag
2222
Extension "SPV_EXT_descriptor_indexing"
2323
1: ExtInstImport "GLSL.std.450"
2424
MemoryModel Logical GLSL450
25-
EntryPoint Fragment 4 "main" 35 92
25+
EntryPoint Fragment 4 "main" 35 92 182
2626
ExecutionMode 4 OriginUpperLeft
2727
Source GLSL 450
2828
SourceExtension "GL_EXT_nonuniform_qualifier"
@@ -53,12 +53,15 @@ spv.nonuniform.frag
5353
Name 139 "inputAttachment"
5454
Name 149 "uniformTexelBuffer"
5555
Name 160 "storageTexelBuffer"
56-
Name 170 "v"
57-
Name 185 "uv"
58-
Name 195 "m"
59-
Name 203 "S"
60-
MemberName 203(S) 0 "a"
61-
Name 205 "s"
56+
Name 171 "uniformTexArr"
57+
Name 178 "uniformSampler"
58+
Name 182 "inTexcoord"
59+
Name 190 "v"
60+
Name 205 "uv"
61+
Name 215 "m"
62+
Name 223 "S"
63+
MemberName 223(S) 0 "a"
64+
Name 225 "s"
6265
Decorate 9(nupi) DecorationNonUniformEXT
6366
Decorate 13 DecorationNonUniformEXT
6467
Decorate 17(nu_li) DecorationNonUniformEXT
@@ -136,32 +139,41 @@ spv.nonuniform.frag
136139
Decorate 161 DecorationNonUniformEXT
137140
Decorate 162 DecorationNonUniformEXT
138141
Decorate 163 DecorationNonUniformEXT
139-
Decorate 170(v) DecorationNonUniformEXT
142+
Decorate 171(uniformTexArr) DescriptorSet 0
143+
Decorate 171(uniformTexArr) Binding 10
144+
Decorate 92(nu_ii) DecorationNonUniformEXT
140145
Decorate 172 DecorationNonUniformEXT
141-
Decorate 173 DecorationNonUniformEXT
142146
Decorate 174 DecorationNonUniformEXT
143147
Decorate 175 DecorationNonUniformEXT
144-
Decorate 179 DecorationNonUniformEXT
145-
Decorate 180 DecorationNonUniformEXT
146-
Decorate 181 DecorationNonUniformEXT
147-
Decorate 182 DecorationNonUniformEXT
148+
Decorate 178(uniformSampler) DescriptorSet 0
149+
Decorate 178(uniformSampler) Binding 11
150+
Decorate 182(inTexcoord) Location 2
151+
Decorate 190(v) DecorationNonUniformEXT
152+
Decorate 192 DecorationNonUniformEXT
153+
Decorate 193 DecorationNonUniformEXT
154+
Decorate 194 DecorationNonUniformEXT
155+
Decorate 195 DecorationNonUniformEXT
156+
Decorate 199 DecorationNonUniformEXT
157+
Decorate 200 DecorationNonUniformEXT
158+
Decorate 201 DecorationNonUniformEXT
159+
Decorate 202 DecorationNonUniformEXT
148160
Decorate 92(nu_ii) DecorationNonUniformEXT
149-
Decorate 186 DecorationNonUniformEXT
150-
Decorate 187 DecorationNonUniformEXT
151-
Decorate 188 DecorationNonUniformEXT
152-
Decorate 189 DecorationNonUniformEXT
153-
Decorate 190 DecorationNonUniformEXT
154-
Decorate 195(m) DecorationNonUniformEXT
155-
Decorate 196 DecorationNonUniformEXT
156-
Decorate 197 DecorationNonUniformEXT
157-
Decorate 205(s) DecorationNonUniformEXT
158161
Decorate 206 DecorationNonUniformEXT
159162
Decorate 207 DecorationNonUniformEXT
160163
Decorate 208 DecorationNonUniformEXT
161164
Decorate 209 DecorationNonUniformEXT
165+
Decorate 210 DecorationNonUniformEXT
166+
Decorate 215(m) DecorationNonUniformEXT
167+
Decorate 216 DecorationNonUniformEXT
168+
Decorate 217 DecorationNonUniformEXT
169+
Decorate 225(s) DecorationNonUniformEXT
170+
Decorate 226 DecorationNonUniformEXT
171+
Decorate 227 DecorationNonUniformEXT
172+
Decorate 228 DecorationNonUniformEXT
173+
Decorate 229 DecorationNonUniformEXT
162174
Decorate 92(nu_ii) DecorationNonUniformEXT
163-
Decorate 212 DecorationNonUniformEXT
164-
Decorate 214 DecorationNonUniformEXT
175+
Decorate 232 DecorationNonUniformEXT
176+
Decorate 234 DecorationNonUniformEXT
165177
2: TypeVoid
166178
3: TypeFunction 2
167179
6: TypeInt 32 1
@@ -231,14 +243,24 @@ spv.nonuniform.frag
231243
158: TypeRuntimeArray 75
232244
159: TypePointer UniformConstant 158
233245
160(storageTexelBuffer): 159(ptr) Variable UniformConstant
234-
168: TypeVector 6(int) 4
235-
169: TypePointer Function 168(ivec4)
236-
171: 36(int) Constant 1
237-
178: 36(int) Constant 2
238-
193: TypeMatrix 33(fvec4) 4
239-
194: TypePointer Function 193
240-
203(S): TypeStruct 6(int)
241-
204: TypePointer Function 203(S)
246+
168: 36(int) Constant 8
247+
169: TypeArray 108 168
248+
170: TypePointer UniformConstant 169
249+
171(uniformTexArr): 170(ptr) Variable UniformConstant
250+
173: TypePointer UniformConstant 108
251+
176: TypeSampler
252+
177: TypePointer UniformConstant 176
253+
178(uniformSampler): 177(ptr) Variable UniformConstant
254+
181: TypePointer Input 117(fvec2)
255+
182(inTexcoord): 181(ptr) Variable Input
256+
188: TypeVector 6(int) 4
257+
189: TypePointer Function 188(ivec4)
258+
191: 36(int) Constant 1
259+
198: 36(int) Constant 2
260+
213: TypeMatrix 33(fvec4) 4
261+
214: TypePointer Function 213
262+
223(S): TypeStruct 6(int)
263+
224: TypePointer Function 223(S)
242264
4(main): 2 Function None 3
243265
5: Label
244266
16(a): 7(ptr) Variable Function
@@ -248,10 +270,10 @@ spv.nonuniform.frag
248270
32(b): 31(ptr) Variable Function
249271
41(nu_gf): 31(ptr) Variable Function
250272
48(dyn_i): 7(ptr) Variable Function
251-
170(v): 169(ptr) Variable Function
252-
185(uv): 169(ptr) Variable Function
253-
195(m): 194(ptr) Variable Function
254-
205(s): 204(ptr) Variable Function
273+
190(v): 189(ptr) Variable Function
274+
205(uv): 189(ptr) Variable Function
275+
215(m): 214(ptr) Variable Function
276+
225(s): 224(ptr) Variable Function
255277
19: 6(int) Load 17(nu_li)
256278
Store 18(param) 19
257279
21: 6(int) FunctionCall 11(foo(i1;i1;) 18(param) 20(param)
@@ -348,47 +370,58 @@ spv.nonuniform.frag
348370
166: 30(float) Load 32(b)
349371
167: 30(float) FAdd 166 165
350372
Store 32(b) 167
351-
172: 7(ptr) AccessChain 170(v) 171
352-
173: 6(int) Load 172
353-
174: 94(ptr) AccessChain 90(uniformBuffer) 173 53
354-
175: 30(float) Load 174
355-
176: 30(float) Load 32(b)
356-
177: 30(float) FAdd 176 175
357-
Store 32(b) 177
358-
179: 7(ptr) AccessChain 170(v) 178
359-
180: 6(int) Load 179
360-
181: 94(ptr) AccessChain 90(uniformBuffer) 180 53
361-
182: 30(float) Load 181
362-
183: 30(float) Load 32(b)
363-
184: 30(float) FAdd 183 182
364-
Store 32(b) 184
365-
186: 6(int) Load 92(nu_ii)
366-
187: 7(ptr) AccessChain 185(uv) 186
367-
188: 6(int) Load 187
368-
189: 94(ptr) AccessChain 90(uniformBuffer) 188 53
369-
190: 30(float) Load 189
370-
191: 30(float) Load 32(b)
371-
192: 30(float) FAdd 191 190
372-
Store 32(b) 192
373-
196: 31(ptr) AccessChain 195(m) 26 178
374-
197: 30(float) Load 196
375-
198: 6(int) ConvertFToS 197
376-
199: 94(ptr) AccessChain 90(uniformBuffer) 198 53
377-
200: 30(float) Load 199
378-
201: 30(float) Load 32(b)
379-
202: 30(float) FAdd 201 200
380-
Store 32(b) 202
381-
206: 7(ptr) AccessChain 205(s) 53
382-
207: 6(int) Load 206
383-
208: 94(ptr) AccessChain 90(uniformBuffer) 207 53
384-
209: 30(float) Load 208
385-
210: 30(float) Load 32(b)
386-
211: 30(float) FAdd 210 209
387-
Store 32(b) 211
388-
212: 6(int) Load 92(nu_ii)
389-
213: 30(float) Load 32(b)
390-
214: 94(ptr) AccessChain 102(storageBuffer) 212 53
391-
Store 214 213
373+
172: 6(int) Load 92(nu_ii)
374+
174: 173(ptr) AccessChain 171(uniformTexArr) 172
375+
175: 108 Load 174
376+
179: 176 Load 178(uniformSampler)
377+
180: 109 SampledImage 175 179
378+
183: 117(fvec2) Load 182(inTexcoord)
379+
184: 33(fvec4) ImageSampleImplicitLod 180 183
380+
185: 30(float) CompositeExtract 184 0
381+
186: 30(float) Load 32(b)
382+
187: 30(float) FAdd 186 185
383+
Store 32(b) 187
384+
192: 7(ptr) AccessChain 190(v) 191
385+
193: 6(int) Load 192
386+
194: 94(ptr) AccessChain 90(uniformBuffer) 193 53
387+
195: 30(float) Load 194
388+
196: 30(float) Load 32(b)
389+
197: 30(float) FAdd 196 195
390+
Store 32(b) 197
391+
199: 7(ptr) AccessChain 190(v) 198
392+
200: 6(int) Load 199
393+
201: 94(ptr) AccessChain 90(uniformBuffer) 200 53
394+
202: 30(float) Load 201
395+
203: 30(float) Load 32(b)
396+
204: 30(float) FAdd 203 202
397+
Store 32(b) 204
398+
206: 6(int) Load 92(nu_ii)
399+
207: 7(ptr) AccessChain 205(uv) 206
400+
208: 6(int) Load 207
401+
209: 94(ptr) AccessChain 90(uniformBuffer) 208 53
402+
210: 30(float) Load 209
403+
211: 30(float) Load 32(b)
404+
212: 30(float) FAdd 211 210
405+
Store 32(b) 212
406+
216: 31(ptr) AccessChain 215(m) 26 198
407+
217: 30(float) Load 216
408+
218: 6(int) ConvertFToS 217
409+
219: 94(ptr) AccessChain 90(uniformBuffer) 218 53
410+
220: 30(float) Load 219
411+
221: 30(float) Load 32(b)
412+
222: 30(float) FAdd 221 220
413+
Store 32(b) 222
414+
226: 7(ptr) AccessChain 225(s) 53
415+
227: 6(int) Load 226
416+
228: 94(ptr) AccessChain 90(uniformBuffer) 227 53
417+
229: 30(float) Load 228
418+
230: 30(float) Load 32(b)
419+
231: 30(float) FAdd 230 229
420+
Store 32(b) 231
421+
232: 6(int) Load 92(nu_ii)
422+
233: 30(float) Load 32(b)
423+
234: 94(ptr) AccessChain 102(storageBuffer) 232 53
424+
Store 234 233
392425
Return
393426
FunctionEnd
394427
11(foo(i1;i1;): 6(int) Function None 8

Test/spv.nonuniform.frag

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
layout(location=0) nonuniformEXT in vec4 nu_inv4;
66
nonuniformEXT float nu_gf;
77
layout(location=1) in nonuniformEXT flat int nu_ii;
8+
layout(location = 2) in vec2 inTexcoord;
89

910
layout(binding=0, input_attachment_index = 0) uniform subpassInput inputAttachmentDyn[];
1011
layout(binding=1) uniform samplerBuffer uniformTexelBufferDyn[];
@@ -16,6 +17,8 @@ layout(binding=6, r32f) uniform image2D storag
1617
layout(binding=7, input_attachment_index = 1) uniform subpassInput inputAttachment[];
1718
layout(binding=8) uniform samplerBuffer uniformTexelBuffer[];
1819
layout(binding=9, r32f) uniform imageBuffer storageTexelBuffer[];
20+
layout(binding = 10) uniform texture2D uniformTexArr[8];
21+
layout(binding = 11) uniform sampler uniformSampler;
1922

2023
nonuniformEXT int foo(nonuniformEXT int nupi, nonuniformEXT out int f)
2124
{
@@ -42,6 +45,7 @@ void main()
4245
b += subpassLoad(inputAttachment[nu_ii]).x;
4346
b += texelFetch(uniformTexelBuffer[nu_ii], 1).x;
4447
b += imageLoad(storageTexelBuffer[nu_ii], 1).x;
48+
b += texture(sampler2D(uniformTexArr[nu_ii], uniformSampler), inTexcoord.xy).x;
4549

4650
nonuniformEXT ivec4 v;
4751
nonuniformEXT mat4 m;

0 commit comments

Comments
 (0)