Reuse loads generated for repeated function arguments

This commit is contained in:
Jeff Bolz 2024-05-31 11:46:03 -05:00 committed by arcady-lunarg
parent 0e311906b9
commit 6a8b2b2439
11 changed files with 9106 additions and 9441 deletions

View file

@ -2,7 +2,7 @@ spv.sparseTexture.frag
Validation failed
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 442
// Id's are bound by 434
Capability Shader
Capability ImageGatherExtended
@ -12,7 +12,7 @@ Validation failed
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 33 48 89 397 409 427
EntryPoint Fragment 4 "main" 33 48 89 389 401 419
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
SourceExtension "GL_ARB_sparse_texture2"
@ -38,14 +38,14 @@ Validation failed
Name 154 "s2DArrayShadow"
Name 188 "s2DMS"
Name 228 "is2DArray"
Name 261 "sCubeShadow"
Name 294 "s2DRectShadow"
Name 394 "i2D"
Name 397 "ic2"
Name 406 "ii3D"
Name 409 "ic3"
Name 418 "i2DMS"
Name 427 "outColor"
Name 259 "sCubeShadow"
Name 288 "s2DRectShadow"
Name 386 "i2D"
Name 389 "ic2"
Name 398 "ii3D"
Name 401 "ic3"
Name 410 "i2DMS"
Name 419 "outColor"
Decorate 29(s2D) DescriptorSet 0
Decorate 29(s2D) Binding 0
Decorate 33(c2) Location 0
@ -69,21 +69,21 @@ Validation failed
Decorate 188(s2DMS) Binding 7
Decorate 228(is2DArray) DescriptorSet 0
Decorate 228(is2DArray) Binding 9
Decorate 261(sCubeShadow) DescriptorSet 0
Decorate 261(sCubeShadow) Binding 3
Decorate 294(s2DRectShadow) DescriptorSet 0
Decorate 294(s2DRectShadow) Binding 5
Decorate 394(i2D) DescriptorSet 0
Decorate 394(i2D) Binding 12
Decorate 397(ic2) Flat
Decorate 397(ic2) Location 3
Decorate 406(ii3D) DescriptorSet 0
Decorate 406(ii3D) Binding 13
Decorate 409(ic3) Flat
Decorate 409(ic3) Location 4
Decorate 418(i2DMS) DescriptorSet 0
Decorate 418(i2DMS) Binding 14
Decorate 427(outColor) Location 0
Decorate 259(sCubeShadow) DescriptorSet 0
Decorate 259(sCubeShadow) Binding 3
Decorate 288(s2DRectShadow) DescriptorSet 0
Decorate 288(s2DRectShadow) Binding 5
Decorate 386(i2D) DescriptorSet 0
Decorate 386(i2D) Binding 12
Decorate 389(ic2) Flat
Decorate 389(ic2) Location 3
Decorate 398(ii3D) DescriptorSet 0
Decorate 398(ii3D) Binding 13
Decorate 401(ic3) Flat
Decorate 401(ic3) Location 4
Decorate 410(i2DMS) DescriptorSet 0
Decorate 410(i2DMS) Binding 14
Decorate 419(outColor) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -173,51 +173,51 @@ Validation failed
232: 143(ivec2) ConstantComposite 231 231
240: 6(int) Constant 7
241: 143(ivec2) ConstantComposite 240 240
258: TypeImage 10(float) Cube depth sampled format:Unknown
259: TypeSampledImage 258
260: TypePointer UniformConstant 259
261(sCubeShadow): 260(ptr) Variable UniformConstant
291: TypeImage 10(float) Rect depth sampled format:Unknown
292: TypeSampledImage 291
293: TypePointer UniformConstant 292
294(s2DRectShadow): 293(ptr) Variable UniformConstant
299: 20(int) Constant 3
311: 143(ivec2) ConstantComposite 130 130
340: 143(ivec2) ConstantComposite 192 192
362: 20(int) Constant 4
363: TypeArray 143(ivec2) 362
364: 6(int) Constant 1
365: 143(ivec2) ConstantComposite 364 130
366: 143(ivec2) ConstantComposite 144 192
367: 6(int) Constant 15
368: 6(int) Constant 16
369: 143(ivec2) ConstantComposite 367 368
370: 6(int) Constant 4294967294
371: 143(ivec2) ConstantComposite 370 9
372: 363 ConstantComposite 365 366 369 371
392: TypeImage 10(float) 2D nonsampled format:Rgba32f
393: TypePointer UniformConstant 392
394(i2D): 393(ptr) Variable UniformConstant
396: TypePointer Input 143(ivec2)
397(ic2): 396(ptr) Variable Input
404: TypeImage 6(int) 3D nonsampled format:Rgba32i
405: TypePointer UniformConstant 404
406(ii3D): 405(ptr) Variable UniformConstant
408: TypePointer Input 129(ivec3)
409(ic3): 408(ptr) Variable Input
416: TypeImage 10(float) 2D multi-sampled nonsampled format:Rgba32f
417: TypePointer UniformConstant 416
418(i2DMS): 417(ptr) Variable UniformConstant
426: TypePointer Output 11(fvec4)
427(outColor): 426(ptr) Variable Output
429: TypeBool
256: TypeImage 10(float) Cube depth sampled format:Unknown
257: TypeSampledImage 256
258: TypePointer UniformConstant 257
259(sCubeShadow): 258(ptr) Variable UniformConstant
285: TypeImage 10(float) Rect depth sampled format:Unknown
286: TypeSampledImage 285
287: TypePointer UniformConstant 286
288(s2DRectShadow): 287(ptr) Variable UniformConstant
292: 20(int) Constant 3
303: 143(ivec2) ConstantComposite 130 130
332: 143(ivec2) ConstantComposite 192 192
354: 20(int) Constant 4
355: TypeArray 143(ivec2) 354
356: 6(int) Constant 1
357: 143(ivec2) ConstantComposite 356 130
358: 143(ivec2) ConstantComposite 144 192
359: 6(int) Constant 15
360: 6(int) Constant 16
361: 143(ivec2) ConstantComposite 359 360
362: 6(int) Constant 4294967294
363: 143(ivec2) ConstantComposite 362 9
364: 355 ConstantComposite 357 358 361 363
384: TypeImage 10(float) 2D nonsampled format:Rgba32f
385: TypePointer UniformConstant 384
386(i2D): 385(ptr) Variable UniformConstant
388: TypePointer Input 143(ivec2)
389(ic2): 388(ptr) Variable Input
396: TypeImage 6(int) 3D nonsampled format:Rgba32i
397: TypePointer UniformConstant 396
398(ii3D): 397(ptr) Variable UniformConstant
400: TypePointer Input 129(ivec3)
401(ic3): 400(ptr) Variable Input
408: TypeImage 10(float) 2D multi-sampled nonsampled format:Rgba32f
409: TypePointer UniformConstant 408
410(i2DMS): 409(ptr) Variable UniformConstant
418: TypePointer Output 11(fvec4)
419(outColor): 418(ptr) Variable Output
421: TypeBool
4(main): 2 Function None 3
5: Label
8(resident): 7(ptr) Variable Function
13(texel): 12(ptr) Variable Function
18(itexel): 17(ptr) Variable Function
23(utexel): 22(ptr) Variable Function
431: 12(ptr) Variable Function
423: 12(ptr) Variable Function
Store 8(resident) 9
Store 13(texel) 15
Store 18(itexel) 19
@ -414,200 +414,192 @@ Validation failed
Store 8(resident) 248
249: 42 Load 44(s3D)
250: 46(fvec3) Load 48(c3)
251: 46(fvec3) Load 48(c3)
252: 46(fvec3) Load 48(c3)
253: 35(ResType) ImageSparseSampleExplicitLod 249 250 Grad 251 252
254: 11(fvec4) CompositeExtract 253 1
Store 13(texel) 254
255: 6(int) CompositeExtract 253 0
256: 6(int) Load 8(resident)
257: 6(int) BitwiseOr 256 255
Store 8(resident) 257
262: 259 Load 261(sCubeShadow)
263: 11(fvec4) Load 89(c4)
264: 46(fvec3) Load 48(c3)
265: 46(fvec3) Load 48(c3)
266: 74(ptr) AccessChain 13(texel) 119
267: 10(float) CompositeExtract 263 3
268: 77(ResType) ImageSparseSampleDrefExplicitLod 262 263 267 Grad 264 265
269: 10(float) CompositeExtract 268 1
Store 266 269
270: 6(int) CompositeExtract 268 0
271: 6(int) Load 8(resident)
272: 6(int) BitwiseOr 271 270
Store 8(resident) 272
273: 106 Load 108(usCubeArray)
274: 11(fvec4) Load 89(c4)
275: 46(fvec3) Load 48(c3)
276: 46(fvec3) Load 48(c3)
277:111(ResType) ImageSparseSampleExplicitLod 273 274 Grad 275 276
278: 21(ivec4) CompositeExtract 277 1
Store 23(utexel) 278
279: 6(int) CompositeExtract 277 0
280: 6(int) Load 8(resident)
281: 6(int) BitwiseOr 280 279
Store 8(resident) 281
282: 27 Load 29(s2D)
283: 31(fvec2) Load 33(c2)
284: 31(fvec2) Load 33(c2)
285: 31(fvec2) Load 33(c2)
286: 35(ResType) ImageSparseSampleExplicitLod 282 283 Grad ConstOffset 284 285 158
287: 11(fvec4) CompositeExtract 286 1
Store 13(texel) 287
288: 6(int) CompositeExtract 286 0
289: 6(int) Load 8(resident)
290: 6(int) BitwiseOr 289 288
Store 8(resident) 290
295: 292 Load 294(s2DRectShadow)
296: 46(fvec3) Load 48(c3)
297: 31(fvec2) Load 33(c2)
298: 31(fvec2) Load 33(c2)
300: 74(ptr) AccessChain 13(texel) 299
301: 10(float) CompositeExtract 296 2
302: 77(ResType) ImageSparseSampleDrefExplicitLod 295 296 301 Grad ConstOffset 297 298 232
303: 10(float) CompositeExtract 302 1
Store 300 303
304: 6(int) CompositeExtract 302 0
305: 6(int) Load 8(resident)
306: 6(int) BitwiseOr 305 304
Store 8(resident) 306
307: 226 Load 228(is2DArray)
308: 46(fvec3) Load 48(c3)
309: 31(fvec2) Load 33(c2)
251: 35(ResType) ImageSparseSampleExplicitLod 249 250 Grad 250 250
252: 11(fvec4) CompositeExtract 251 1
Store 13(texel) 252
253: 6(int) CompositeExtract 251 0
254: 6(int) Load 8(resident)
255: 6(int) BitwiseOr 254 253
Store 8(resident) 255
260: 257 Load 259(sCubeShadow)
261: 11(fvec4) Load 89(c4)
262: 46(fvec3) Load 48(c3)
263: 74(ptr) AccessChain 13(texel) 119
264: 10(float) CompositeExtract 261 3
265: 77(ResType) ImageSparseSampleDrefExplicitLod 260 261 264 Grad 262 262
266: 10(float) CompositeExtract 265 1
Store 263 266
267: 6(int) CompositeExtract 265 0
268: 6(int) Load 8(resident)
269: 6(int) BitwiseOr 268 267
Store 8(resident) 269
270: 106 Load 108(usCubeArray)
271: 11(fvec4) Load 89(c4)
272: 46(fvec3) Load 48(c3)
273:111(ResType) ImageSparseSampleExplicitLod 270 271 Grad 272 272
274: 21(ivec4) CompositeExtract 273 1
Store 23(utexel) 274
275: 6(int) CompositeExtract 273 0
276: 6(int) Load 8(resident)
277: 6(int) BitwiseOr 276 275
Store 8(resident) 277
278: 27 Load 29(s2D)
279: 31(fvec2) Load 33(c2)
280: 35(ResType) ImageSparseSampleExplicitLod 278 279 Grad ConstOffset 279 279 158
281: 11(fvec4) CompositeExtract 280 1
Store 13(texel) 281
282: 6(int) CompositeExtract 280 0
283: 6(int) Load 8(resident)
284: 6(int) BitwiseOr 283 282
Store 8(resident) 284
289: 286 Load 288(s2DRectShadow)
290: 46(fvec3) Load 48(c3)
291: 31(fvec2) Load 33(c2)
293: 74(ptr) AccessChain 13(texel) 292
294: 10(float) CompositeExtract 290 2
295: 77(ResType) ImageSparseSampleDrefExplicitLod 289 290 294 Grad ConstOffset 291 291 232
296: 10(float) CompositeExtract 295 1
Store 293 296
297: 6(int) CompositeExtract 295 0
298: 6(int) Load 8(resident)
299: 6(int) BitwiseOr 298 297
Store 8(resident) 299
300: 226 Load 228(is2DArray)
301: 46(fvec3) Load 48(c3)
302: 31(fvec2) Load 33(c2)
304: 62(ResType) ImageSparseSampleExplicitLod 300 301 Grad ConstOffset 302 302 303
305: 16(ivec4) CompositeExtract 304 1
Store 18(itexel) 305
306: 6(int) CompositeExtract 304 0
307: 6(int) Load 8(resident)
308: 6(int) BitwiseOr 307 306
Store 8(resident) 308
309: 27 Load 29(s2D)
310: 31(fvec2) Load 33(c2)
312: 62(ResType) ImageSparseSampleExplicitLod 307 308 Grad ConstOffset 309 310 311
313: 16(ivec4) CompositeExtract 312 1
Store 18(itexel) 313
314: 6(int) CompositeExtract 312 0
315: 6(int) Load 8(resident)
316: 6(int) BitwiseOr 315 314
Store 8(resident) 316
317: 27 Load 29(s2D)
318: 31(fvec2) Load 33(c2)
319: 35(ResType) ImageSparseGather 317 318 9
320: 11(fvec4) CompositeExtract 319 1
Store 13(texel) 320
321: 6(int) CompositeExtract 319 0
322: 6(int) Load 8(resident)
323: 6(int) BitwiseOr 322 321
Store 8(resident) 323
324: 226 Load 228(is2DArray)
325: 46(fvec3) Load 48(c3)
326: 62(ResType) ImageSparseGather 324 325 130
327: 16(ivec4) CompositeExtract 326 1
Store 18(itexel) 327
328: 6(int) CompositeExtract 326 0
329: 6(int) Load 8(resident)
330: 6(int) BitwiseOr 329 328
Store 8(resident) 330
331: 152 Load 154(s2DArrayShadow)
332: 46(fvec3) Load 48(c3)
333: 35(ResType) ImageSparseDrefGather 331 332 50
311: 35(ResType) ImageSparseGather 309 310 9
312: 11(fvec4) CompositeExtract 311 1
Store 13(texel) 312
313: 6(int) CompositeExtract 311 0
314: 6(int) Load 8(resident)
315: 6(int) BitwiseOr 314 313
Store 8(resident) 315
316: 226 Load 228(is2DArray)
317: 46(fvec3) Load 48(c3)
318: 62(ResType) ImageSparseGather 316 317 130
319: 16(ivec4) CompositeExtract 318 1
Store 18(itexel) 319
320: 6(int) CompositeExtract 318 0
321: 6(int) Load 8(resident)
322: 6(int) BitwiseOr 321 320
Store 8(resident) 322
323: 152 Load 154(s2DArrayShadow)
324: 46(fvec3) Load 48(c3)
325: 35(ResType) ImageSparseDrefGather 323 324 50
326: 11(fvec4) CompositeExtract 325 1
Store 13(texel) 326
327: 6(int) CompositeExtract 325 0
328: 6(int) Load 8(resident)
329: 6(int) BitwiseOr 328 327
Store 8(resident) 329
330: 27 Load 29(s2D)
331: 31(fvec2) Load 33(c2)
333: 35(ResType) ImageSparseGather 330 331 9 ConstOffset 332
334: 11(fvec4) CompositeExtract 333 1
Store 13(texel) 334
335: 6(int) CompositeExtract 333 0
336: 6(int) Load 8(resident)
337: 6(int) BitwiseOr 336 335
Store 8(resident) 337
338: 27 Load 29(s2D)
339: 31(fvec2) Load 33(c2)
341: 35(ResType) ImageSparseGather 338 339 9 ConstOffset 340
342: 11(fvec4) CompositeExtract 341 1
Store 13(texel) 342
343: 6(int) CompositeExtract 341 0
344: 6(int) Load 8(resident)
345: 6(int) BitwiseOr 344 343
Store 8(resident) 345
346: 226 Load 228(is2DArray)
347: 46(fvec3) Load 48(c3)
348: 62(ResType) ImageSparseGather 346 347 130 ConstOffset 158
349: 16(ivec4) CompositeExtract 348 1
Store 18(itexel) 349
350: 6(int) CompositeExtract 348 0
351: 6(int) Load 8(resident)
352: 6(int) BitwiseOr 351 350
Store 8(resident) 352
353: 292 Load 294(s2DRectShadow)
354: 31(fvec2) Load 33(c2)
355: 35(ResType) ImageSparseDrefGather 353 354 50 ConstOffset 241
356: 11(fvec4) CompositeExtract 355 1
Store 13(texel) 356
357: 6(int) CompositeExtract 355 0
358: 6(int) Load 8(resident)
359: 6(int) BitwiseOr 358 357
Store 8(resident) 359
360: 27 Load 29(s2D)
361: 31(fvec2) Load 33(c2)
373: 35(ResType) ImageSparseGather 360 361 9 ConstOffsets 372
374: 11(fvec4) CompositeExtract 373 1
Store 13(texel) 374
375: 6(int) CompositeExtract 373 0
376: 6(int) Load 8(resident)
377: 6(int) BitwiseOr 376 375
Store 8(resident) 377
378: 226 Load 228(is2DArray)
379: 46(fvec3) Load 48(c3)
380: 62(ResType) ImageSparseGather 378 379 130 ConstOffsets 372
381: 16(ivec4) CompositeExtract 380 1
Store 18(itexel) 381
382: 6(int) CompositeExtract 380 0
383: 6(int) Load 8(resident)
384: 6(int) BitwiseOr 383 382
Store 8(resident) 384
385: 292 Load 294(s2DRectShadow)
386: 31(fvec2) Load 33(c2)
387: 35(ResType) ImageSparseDrefGather 385 386 50 ConstOffsets 372
388: 11(fvec4) CompositeExtract 387 1
Store 13(texel) 388
389: 6(int) CompositeExtract 387 0
390: 6(int) Load 8(resident)
391: 6(int) BitwiseOr 390 389
Store 8(resident) 391
395: 392 Load 394(i2D)
398: 143(ivec2) Load 397(ic2)
399: 35(ResType) ImageSparseRead 395 398
400: 11(fvec4) CompositeExtract 399 1
Store 13(texel) 400
401: 6(int) CompositeExtract 399 0
402: 6(int) Load 8(resident)
403: 6(int) BitwiseOr 402 401
Store 8(resident) 403
407: 404 Load 406(ii3D)
410: 129(ivec3) Load 409(ic3)
411: 62(ResType) ImageSparseRead 407 410
412: 16(ivec4) CompositeExtract 411 1
Store 18(itexel) 412
413: 6(int) CompositeExtract 411 0
414: 6(int) Load 8(resident)
415: 6(int) BitwiseOr 414 413
Store 8(resident) 415
419: 416 Load 418(i2DMS)
420: 143(ivec2) Load 397(ic2)
421: 35(ResType) ImageSparseRead 419 420 Sample 144
422: 11(fvec4) CompositeExtract 421 1
Store 13(texel) 422
423: 6(int) CompositeExtract 421 0
424: 6(int) Load 8(resident)
425: 6(int) BitwiseOr 424 423
Store 8(resident) 425
428: 6(int) Load 8(resident)
430: 429(bool) ImageSparseTexelsResident 428
SelectionMerge 433 None
BranchConditional 430 432 435
432: Label
434: 11(fvec4) Load 13(texel)
Store 431 434
Branch 433
435: Label
436: 16(ivec4) Load 18(itexel)
437: 11(fvec4) ConvertSToF 436
438: 21(ivec4) Load 23(utexel)
439: 11(fvec4) ConvertUToF 438
440: 11(fvec4) FAdd 437 439
Store 431 440
Branch 433
433: Label
441: 11(fvec4) Load 431
Store 427(outColor) 441
338: 226 Load 228(is2DArray)
339: 46(fvec3) Load 48(c3)
340: 62(ResType) ImageSparseGather 338 339 130 ConstOffset 158
341: 16(ivec4) CompositeExtract 340 1
Store 18(itexel) 341
342: 6(int) CompositeExtract 340 0
343: 6(int) Load 8(resident)
344: 6(int) BitwiseOr 343 342
Store 8(resident) 344
345: 286 Load 288(s2DRectShadow)
346: 31(fvec2) Load 33(c2)
347: 35(ResType) ImageSparseDrefGather 345 346 50 ConstOffset 241
348: 11(fvec4) CompositeExtract 347 1
Store 13(texel) 348
349: 6(int) CompositeExtract 347 0
350: 6(int) Load 8(resident)
351: 6(int) BitwiseOr 350 349
Store 8(resident) 351
352: 27 Load 29(s2D)
353: 31(fvec2) Load 33(c2)
365: 35(ResType) ImageSparseGather 352 353 9 ConstOffsets 364
366: 11(fvec4) CompositeExtract 365 1
Store 13(texel) 366
367: 6(int) CompositeExtract 365 0
368: 6(int) Load 8(resident)
369: 6(int) BitwiseOr 368 367
Store 8(resident) 369
370: 226 Load 228(is2DArray)
371: 46(fvec3) Load 48(c3)
372: 62(ResType) ImageSparseGather 370 371 130 ConstOffsets 364
373: 16(ivec4) CompositeExtract 372 1
Store 18(itexel) 373
374: 6(int) CompositeExtract 372 0
375: 6(int) Load 8(resident)
376: 6(int) BitwiseOr 375 374
Store 8(resident) 376
377: 286 Load 288(s2DRectShadow)
378: 31(fvec2) Load 33(c2)
379: 35(ResType) ImageSparseDrefGather 377 378 50 ConstOffsets 364
380: 11(fvec4) CompositeExtract 379 1
Store 13(texel) 380
381: 6(int) CompositeExtract 379 0
382: 6(int) Load 8(resident)
383: 6(int) BitwiseOr 382 381
Store 8(resident) 383
387: 384 Load 386(i2D)
390: 143(ivec2) Load 389(ic2)
391: 35(ResType) ImageSparseRead 387 390
392: 11(fvec4) CompositeExtract 391 1
Store 13(texel) 392
393: 6(int) CompositeExtract 391 0
394: 6(int) Load 8(resident)
395: 6(int) BitwiseOr 394 393
Store 8(resident) 395
399: 396 Load 398(ii3D)
402: 129(ivec3) Load 401(ic3)
403: 62(ResType) ImageSparseRead 399 402
404: 16(ivec4) CompositeExtract 403 1
Store 18(itexel) 404
405: 6(int) CompositeExtract 403 0
406: 6(int) Load 8(resident)
407: 6(int) BitwiseOr 406 405
Store 8(resident) 407
411: 408 Load 410(i2DMS)
412: 143(ivec2) Load 389(ic2)
413: 35(ResType) ImageSparseRead 411 412 Sample 144
414: 11(fvec4) CompositeExtract 413 1
Store 13(texel) 414
415: 6(int) CompositeExtract 413 0
416: 6(int) Load 8(resident)
417: 6(int) BitwiseOr 416 415
Store 8(resident) 417
420: 6(int) Load 8(resident)
422: 421(bool) ImageSparseTexelsResident 420
SelectionMerge 425 None
BranchConditional 422 424 427
424: Label
426: 11(fvec4) Load 13(texel)
Store 423 426
Branch 425
427: Label
428: 16(ivec4) Load 18(itexel)
429: 11(fvec4) ConvertSToF 428
430: 21(ivec4) Load 23(utexel)
431: 11(fvec4) ConvertUToF 430
432: 11(fvec4) FAdd 429 431
Store 423 432
Branch 425
425: Label
433: 11(fvec4) Load 423
Store 419(outColor) 433
Return
FunctionEnd