SPV: Create more access chains addressing a few swizzling issues.

- Fixes #1233
- Treats local bools like anything else
- more consistently deals with a dynamic component selection
This commit is contained in:
John Kessenich 2018-02-05 14:44:14 -07:00
parent 2651ccaec8
commit 5c3eed542d
8 changed files with 764 additions and 716 deletions

View file

@ -119,8 +119,8 @@ spv.conversion.frag
315: 13(int) Constant 1
321: TypePointer Output 95(fvec4)
322(gl_FragColor): 321(ptr) Variable Output
367: 13(int) Constant 2
380: 13(int) Constant 3
337: 13(int) Constant 2
350: 13(int) Constant 3
427: TypePointer Private 6(bool)
428(u_b): 427(ptr) Variable Private
429: TypePointer Private 23(bvec2)
@ -440,8 +440,8 @@ spv.conversion.frag
Branch 300
300: Label
306: 16(float) Load 297
308: 23(bvec2) Load 25(b2)
309: 6(bool) CompositeExtract 308 0
308: 7(ptr) AccessChain 25(b2) 14
309: 6(bool) Load 308
SelectionMerge 311 None
BranchConditional 309 310 314
310: Label
@ -462,64 +462,64 @@ spv.conversion.frag
Branch 296
296: Label
324: 6(bool) Load 8(b)
325: 23(bvec2) Load 25(b2)
326: 6(bool) CompositeExtract 325 0
325: 7(ptr) AccessChain 25(b2) 14
326: 6(bool) Load 325
327: 6(bool) LogicalOr 324 326
328: 23(bvec2) Load 25(b2)
329: 6(bool) CompositeExtract 328 1
328: 7(ptr) AccessChain 25(b2) 315
329: 6(bool) Load 328
330: 6(bool) LogicalOr 327 329
331: 31(bvec3) Load 33(b3)
332: 6(bool) CompositeExtract 331 0
331: 7(ptr) AccessChain 33(b3) 14
332: 6(bool) Load 331
333: 6(bool) LogicalOr 330 332
334: 31(bvec3) Load 33(b3)
335: 6(bool) CompositeExtract 334 1
334: 7(ptr) AccessChain 33(b3) 315
335: 6(bool) Load 334
336: 6(bool) LogicalOr 333 335
337: 31(bvec3) Load 33(b3)
338: 6(bool) CompositeExtract 337 2
339: 6(bool) LogicalOr 336 338
340: 43(bvec4) Load 45(b4)
341: 6(bool) CompositeExtract 340 0
342: 6(bool) LogicalOr 339 341
343: 43(bvec4) Load 45(b4)
344: 6(bool) CompositeExtract 343 1
345: 6(bool) LogicalOr 342 344
346: 43(bvec4) Load 45(b4)
347: 6(bool) CompositeExtract 346 2
348: 6(bool) LogicalOr 345 347
349: 43(bvec4) Load 45(b4)
350: 6(bool) CompositeExtract 349 3
351: 6(bool) LogicalOr 348 350
SelectionMerge 353 None
BranchConditional 351 352 415
352: Label
354: 9(int) Load 58(i)
355: 57(ptr) AccessChain 68(i2) 14
356: 9(int) Load 355
357: 9(int) IAdd 354 356
358: 57(ptr) AccessChain 68(i2) 315
359: 9(int) Load 358
360: 9(int) IAdd 357 359
361: 57(ptr) AccessChain 81(i3) 14
362: 9(int) Load 361
363: 9(int) IAdd 360 362
364: 57(ptr) AccessChain 81(i3) 315
365: 9(int) Load 364
366: 9(int) IAdd 363 365
368: 57(ptr) AccessChain 81(i3) 367
369: 9(int) Load 368
370: 9(int) IAdd 366 369
371: 57(ptr) AccessChain 94(i4) 14
372: 9(int) Load 371
373: 9(int) IAdd 370 372
374: 57(ptr) AccessChain 94(i4) 315
375: 9(int) Load 374
376: 9(int) IAdd 373 375
377: 57(ptr) AccessChain 94(i4) 367
378: 9(int) Load 377
379: 9(int) IAdd 376 378
381: 57(ptr) AccessChain 94(i4) 380
338: 7(ptr) AccessChain 33(b3) 337
339: 6(bool) Load 338
340: 6(bool) LogicalOr 336 339
341: 7(ptr) AccessChain 45(b4) 14
342: 6(bool) Load 341
343: 6(bool) LogicalOr 340 342
344: 7(ptr) AccessChain 45(b4) 315
345: 6(bool) Load 344
346: 6(bool) LogicalOr 343 345
347: 7(ptr) AccessChain 45(b4) 337
348: 6(bool) Load 347
349: 6(bool) LogicalOr 346 348
351: 7(ptr) AccessChain 45(b4) 350
352: 6(bool) Load 351
353: 6(bool) LogicalOr 349 352
SelectionMerge 355 None
BranchConditional 353 354 415
354: Label
356: 9(int) Load 58(i)
357: 57(ptr) AccessChain 68(i2) 14
358: 9(int) Load 357
359: 9(int) IAdd 356 358
360: 57(ptr) AccessChain 68(i2) 315
361: 9(int) Load 360
362: 9(int) IAdd 359 361
363: 57(ptr) AccessChain 81(i3) 14
364: 9(int) Load 363
365: 9(int) IAdd 362 364
366: 57(ptr) AccessChain 81(i3) 315
367: 9(int) Load 366
368: 9(int) IAdd 365 367
369: 57(ptr) AccessChain 81(i3) 337
370: 9(int) Load 369
371: 9(int) IAdd 368 370
372: 57(ptr) AccessChain 94(i4) 14
373: 9(int) Load 372
374: 9(int) IAdd 371 373
375: 57(ptr) AccessChain 94(i4) 315
376: 9(int) Load 375
377: 9(int) IAdd 374 376
378: 57(ptr) AccessChain 94(i4) 337
379: 9(int) Load 378
380: 9(int) IAdd 377 379
381: 57(ptr) AccessChain 94(i4) 350
382: 9(int) Load 381
383: 9(int) IAdd 379 382
383: 9(int) IAdd 380 382
384: 16(float) ConvertSToF 383
385: 16(float) Load 106(f)
386: 16(float) FAdd 384 385
@ -535,7 +535,7 @@ spv.conversion.frag
396: 105(ptr) AccessChain 114(f3) 315
397: 16(float) Load 396
398: 16(float) FAdd 395 397
399: 105(ptr) AccessChain 114(f3) 367
399: 105(ptr) AccessChain 114(f3) 337
400: 16(float) Load 399
401: 16(float) FAdd 398 400
402: 105(ptr) AccessChain 118(f4) 14
@ -544,19 +544,19 @@ spv.conversion.frag
405: 105(ptr) AccessChain 118(f4) 315
406: 16(float) Load 405
407: 16(float) FAdd 404 406
408: 105(ptr) AccessChain 118(f4) 367
408: 105(ptr) AccessChain 118(f4) 337
409: 16(float) Load 408
410: 16(float) FAdd 407 409
411: 105(ptr) AccessChain 118(f4) 380
411: 105(ptr) AccessChain 118(f4) 350
412: 16(float) Load 411
413: 16(float) FAdd 410 412
414: 95(fvec4) CompositeConstruct 413 413 413 413
Store 323 414
Branch 353
Branch 355
415: Label
Store 323 151
Branch 353
353: Label
Branch 355
355: Label
416: 95(fvec4) Load 323
Store 322(gl_FragColor) 416
Store 417(cv2) 102