Generate separate stores for partially swizzled memory stores
Full vector and fully specified vector swizzle stores are not affected by this change, only partial swizzles ie swizzles with fewer components than the vector being stored to. Previously the vector being stored to loaded and any components not specified in the swizzle were used to create a full store to the vector. While this change generates more SPIR-V instructions, it is necessary for correctness. Fixes #2518.
This commit is contained in:
parent
9158061398
commit
6d5b40f051
50 changed files with 31343 additions and 26594 deletions
|
|
@ -1,12 +1,12 @@
|
|||
spv.Operations.frag
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 8000a
|
||||
// Id's are bound by 583
|
||||
// Id's are bound by 591
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 11 22 220 296 314 539 580
|
||||
EntryPoint Fragment 4 "main" 11 22 220 296 314 547 588
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
|
|
@ -26,13 +26,13 @@ spv.Operations.frag
|
|||
Name 324 "lsb"
|
||||
Name 325 "swizzleTemp"
|
||||
Name 326 "ResType"
|
||||
Name 359 "b"
|
||||
Name 396 "ub42"
|
||||
Name 539 "FragColor"
|
||||
Name 557 "m1"
|
||||
Name 564 "m2"
|
||||
Name 580 "uiv4"
|
||||
Name 582 "ub"
|
||||
Name 367 "b"
|
||||
Name 404 "ub42"
|
||||
Name 547 "FragColor"
|
||||
Name 565 "m1"
|
||||
Name 572 "m2"
|
||||
Name 588 "uiv4"
|
||||
Name 590 "ub"
|
||||
Decorate 11(uv4) Location 1
|
||||
Decorate 22(ui) Flat
|
||||
Decorate 22(ui) Location 3
|
||||
|
|
@ -41,9 +41,9 @@ spv.Operations.frag
|
|||
Decorate 296(uui) Location 5
|
||||
Decorate 314(uuv4) Flat
|
||||
Decorate 314(uuv4) Location 4
|
||||
Decorate 539(FragColor) Location 0
|
||||
Decorate 580(uiv4) Flat
|
||||
Decorate 580(uiv4) Location 0
|
||||
Decorate 547(FragColor) Location 0
|
||||
Decorate 588(uiv4) Flat
|
||||
Decorate 588(uiv4) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -74,34 +74,34 @@ spv.Operations.frag
|
|||
320: TypePointer Function 312(ivec4)
|
||||
322: TypePointer Function 315(ivec3)
|
||||
326(ResType): TypeStruct 315(ivec3) 315(ivec3)
|
||||
338: 141(int) Constant 1
|
||||
342: 141(int) Constant 2
|
||||
358: TypePointer Function 186(bool)
|
||||
396(ub42): 188(ptr) Variable Private
|
||||
452: 18(int) Constant 2
|
||||
459: 18(int) Constant 1
|
||||
489: TypeVector 6(float) 3
|
||||
508: 6(float) Constant 1073741824
|
||||
515: 6(float) Constant 1065353216
|
||||
520: 18(int) Constant 66
|
||||
526: 18(int) Constant 17
|
||||
538: TypePointer Output 7(fvec4)
|
||||
539(FragColor): 538(ptr) Variable Output
|
||||
555: TypeMatrix 7(fvec4) 4
|
||||
556: TypePointer Function 555
|
||||
558: 6(float) Constant 0
|
||||
559: 7(fvec4) ConstantComposite 515 558 558 558
|
||||
560: 7(fvec4) ConstantComposite 558 515 558 558
|
||||
561: 7(fvec4) ConstantComposite 558 558 515 558
|
||||
562: 7(fvec4) ConstantComposite 558 558 558 515
|
||||
563: 555 ConstantComposite 559 560 561 562
|
||||
565: 7(fvec4) ConstantComposite 558 558 558 558
|
||||
566: 555 ConstantComposite 565 565 565 565
|
||||
578: TypeVector 18(int) 4
|
||||
579: TypePointer Input 578(ivec4)
|
||||
580(uiv4): 579(ptr) Variable Input
|
||||
581: TypePointer Private 186(bool)
|
||||
582(ub): 581(ptr) Variable Private
|
||||
333: 141(int) Constant 1
|
||||
336: 141(int) Constant 2
|
||||
366: TypePointer Function 186(bool)
|
||||
404(ub42): 188(ptr) Variable Private
|
||||
460: 18(int) Constant 2
|
||||
467: 18(int) Constant 1
|
||||
497: TypeVector 6(float) 3
|
||||
516: 6(float) Constant 1073741824
|
||||
523: 6(float) Constant 1065353216
|
||||
528: 18(int) Constant 66
|
||||
534: 18(int) Constant 17
|
||||
546: TypePointer Output 7(fvec4)
|
||||
547(FragColor): 546(ptr) Variable Output
|
||||
563: TypeMatrix 7(fvec4) 4
|
||||
564: TypePointer Function 563
|
||||
566: 6(float) Constant 0
|
||||
567: 7(fvec4) ConstantComposite 523 566 566 566
|
||||
568: 7(fvec4) ConstantComposite 566 523 566 566
|
||||
569: 7(fvec4) ConstantComposite 566 566 523 566
|
||||
570: 7(fvec4) ConstantComposite 566 566 566 523
|
||||
571: 563 ConstantComposite 567 568 569 570
|
||||
573: 7(fvec4) ConstantComposite 566 566 566 566
|
||||
574: 563 ConstantComposite 573 573 573 573
|
||||
586: TypeVector 18(int) 4
|
||||
587: TypePointer Input 586(ivec4)
|
||||
588(uiv4): 587(ptr) Variable Input
|
||||
589: TypePointer Private 186(bool)
|
||||
590(ub): 589(ptr) Variable Private
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(v): 8(ptr) Variable Function
|
||||
|
|
@ -113,11 +113,11 @@ spv.Operations.frag
|
|||
323(swizzleTemp): 322(ptr) Variable Function
|
||||
324(lsb): 320(ptr) Variable Function
|
||||
325(swizzleTemp): 322(ptr) Variable Function
|
||||
359(b): 358(ptr) Variable Function
|
||||
541: 8(ptr) Variable Function
|
||||
557(m1): 556(ptr) Variable Function
|
||||
564(m2): 556(ptr) Variable Function
|
||||
568: 556(ptr) Variable Function
|
||||
367(b): 366(ptr) Variable Function
|
||||
549: 8(ptr) Variable Function
|
||||
565(m1): 564(ptr) Variable Function
|
||||
572(m2): 564(ptr) Variable Function
|
||||
576: 564(ptr) Variable Function
|
||||
12: 7(fvec4) Load 11(uv4)
|
||||
13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12
|
||||
Store 9(v) 13
|
||||
|
|
@ -469,306 +469,318 @@ spv.Operations.frag
|
|||
329: 315(ivec3) CompositeExtract 327 1
|
||||
Store 323(swizzleTemp) 329
|
||||
330: 315(ivec3) Load 323(swizzleTemp)
|
||||
331: 312(ivec4) Load 321(msb)
|
||||
332: 312(ivec4) VectorShuffle 331 330 4 5 6 3
|
||||
Store 321(msb) 332
|
||||
333: 315(ivec3) Load 325(swizzleTemp)
|
||||
334: 312(ivec4) Load 324(lsb)
|
||||
335: 312(ivec4) VectorShuffle 334 333 4 5 6 3
|
||||
Store 324(lsb) 335
|
||||
336: 292(ptr) AccessChain 321(msb) 142
|
||||
337: 141(int) Load 336
|
||||
339: 292(ptr) AccessChain 321(msb) 338
|
||||
340: 141(int) Load 339
|
||||
341: 141(int) IAdd 337 340
|
||||
343: 292(ptr) AccessChain 321(msb) 342
|
||||
344: 141(int) Load 343
|
||||
345: 141(int) IAdd 341 344
|
||||
346: 141(int) Load 293(u)
|
||||
347: 141(int) IAdd 346 345
|
||||
Store 293(u) 347
|
||||
348: 292(ptr) AccessChain 324(lsb) 142
|
||||
331: 292(ptr) AccessChain 321(msb) 142
|
||||
332: 141(int) CompositeExtract 330 0
|
||||
Store 331 332
|
||||
334: 292(ptr) AccessChain 321(msb) 333
|
||||
335: 141(int) CompositeExtract 330 1
|
||||
Store 334 335
|
||||
337: 292(ptr) AccessChain 321(msb) 336
|
||||
338: 141(int) CompositeExtract 330 2
|
||||
Store 337 338
|
||||
339: 315(ivec3) Load 325(swizzleTemp)
|
||||
340: 292(ptr) AccessChain 324(lsb) 142
|
||||
341: 141(int) CompositeExtract 339 0
|
||||
Store 340 341
|
||||
342: 292(ptr) AccessChain 324(lsb) 333
|
||||
343: 141(int) CompositeExtract 339 1
|
||||
Store 342 343
|
||||
344: 292(ptr) AccessChain 324(lsb) 336
|
||||
345: 141(int) CompositeExtract 339 2
|
||||
Store 344 345
|
||||
346: 292(ptr) AccessChain 321(msb) 142
|
||||
347: 141(int) Load 346
|
||||
348: 292(ptr) AccessChain 321(msb) 333
|
||||
349: 141(int) Load 348
|
||||
350: 292(ptr) AccessChain 324(lsb) 338
|
||||
351: 141(int) Load 350
|
||||
352: 141(int) IAdd 349 351
|
||||
353: 292(ptr) AccessChain 324(lsb) 342
|
||||
354: 141(int) Load 353
|
||||
355: 141(int) IAdd 352 354
|
||||
356: 141(int) Load 293(u)
|
||||
357: 141(int) IAdd 356 355
|
||||
Store 293(u) 357
|
||||
360: 6(float) Load 220(uf)
|
||||
361: 186(bool) IsNan 360
|
||||
Store 359(b) 361
|
||||
362: 6(float) Load 196(f)
|
||||
363: 186(bool) IsInf 362
|
||||
Store 359(b) 363
|
||||
364: 7(fvec4) Load 9(v)
|
||||
365: 7(fvec4) Load 11(uv4)
|
||||
366: 187(bvec4) FOrdLessThan 364 365
|
||||
367: 186(bool) Any 366
|
||||
Store 359(b) 367
|
||||
368: 186(bool) Load 359(b)
|
||||
SelectionMerge 370 None
|
||||
BranchConditional 368 369 370
|
||||
369: Label
|
||||
371: 7(fvec4) Load 9(v)
|
||||
372: 7(fvec4) Load 11(uv4)
|
||||
373: 187(bvec4) FOrdLessThanEqual 371 372
|
||||
374: 186(bool) Any 373
|
||||
Branch 370
|
||||
370: Label
|
||||
375: 186(bool) Phi 368 5 374 369
|
||||
Store 359(b) 375
|
||||
376: 186(bool) Load 359(b)
|
||||
350: 141(int) IAdd 347 349
|
||||
351: 292(ptr) AccessChain 321(msb) 336
|
||||
352: 141(int) Load 351
|
||||
353: 141(int) IAdd 350 352
|
||||
354: 141(int) Load 293(u)
|
||||
355: 141(int) IAdd 354 353
|
||||
Store 293(u) 355
|
||||
356: 292(ptr) AccessChain 324(lsb) 142
|
||||
357: 141(int) Load 356
|
||||
358: 292(ptr) AccessChain 324(lsb) 333
|
||||
359: 141(int) Load 358
|
||||
360: 141(int) IAdd 357 359
|
||||
361: 292(ptr) AccessChain 324(lsb) 336
|
||||
362: 141(int) Load 361
|
||||
363: 141(int) IAdd 360 362
|
||||
364: 141(int) Load 293(u)
|
||||
365: 141(int) IAdd 364 363
|
||||
Store 293(u) 365
|
||||
368: 6(float) Load 220(uf)
|
||||
369: 186(bool) IsNan 368
|
||||
Store 367(b) 369
|
||||
370: 6(float) Load 196(f)
|
||||
371: 186(bool) IsInf 370
|
||||
Store 367(b) 371
|
||||
372: 7(fvec4) Load 9(v)
|
||||
373: 7(fvec4) Load 11(uv4)
|
||||
374: 187(bvec4) FOrdLessThan 372 373
|
||||
375: 186(bool) Any 374
|
||||
Store 367(b) 375
|
||||
376: 186(bool) Load 367(b)
|
||||
SelectionMerge 378 None
|
||||
BranchConditional 376 377 378
|
||||
377: Label
|
||||
379: 7(fvec4) Load 9(v)
|
||||
380: 7(fvec4) Load 11(uv4)
|
||||
381: 187(bvec4) FOrdGreaterThan 379 380
|
||||
381: 187(bvec4) FOrdLessThanEqual 379 380
|
||||
382: 186(bool) Any 381
|
||||
Branch 378
|
||||
378: Label
|
||||
383: 186(bool) Phi 376 370 382 377
|
||||
Store 359(b) 383
|
||||
384: 186(bool) Load 359(b)
|
||||
383: 186(bool) Phi 376 5 382 377
|
||||
Store 367(b) 383
|
||||
384: 186(bool) Load 367(b)
|
||||
SelectionMerge 386 None
|
||||
BranchConditional 384 385 386
|
||||
385: Label
|
||||
387: 7(fvec4) Load 9(v)
|
||||
388: 7(fvec4) Load 11(uv4)
|
||||
389: 187(bvec4) FOrdGreaterThanEqual 387 388
|
||||
389: 187(bvec4) FOrdGreaterThan 387 388
|
||||
390: 186(bool) Any 389
|
||||
Branch 386
|
||||
386: Label
|
||||
391: 186(bool) Phi 384 378 390 385
|
||||
Store 359(b) 391
|
||||
392: 186(bool) Load 359(b)
|
||||
Store 367(b) 391
|
||||
392: 186(bool) Load 367(b)
|
||||
SelectionMerge 394 None
|
||||
BranchConditional 392 393 394
|
||||
393: Label
|
||||
395: 187(bvec4) Load 189(ub41)
|
||||
397: 187(bvec4) Load 396(ub42)
|
||||
398: 187(bvec4) LogicalEqual 395 397
|
||||
399: 186(bool) Any 398
|
||||
395: 7(fvec4) Load 9(v)
|
||||
396: 7(fvec4) Load 11(uv4)
|
||||
397: 187(bvec4) FOrdGreaterThanEqual 395 396
|
||||
398: 186(bool) Any 397
|
||||
Branch 394
|
||||
394: Label
|
||||
400: 186(bool) Phi 392 386 399 393
|
||||
Store 359(b) 400
|
||||
401: 186(bool) Load 359(b)
|
||||
SelectionMerge 403 None
|
||||
BranchConditional 401 402 403
|
||||
402: Label
|
||||
404: 187(bvec4) Load 189(ub41)
|
||||
405: 187(bvec4) Load 396(ub42)
|
||||
406: 187(bvec4) LogicalNotEqual 404 405
|
||||
399: 186(bool) Phi 392 386 398 393
|
||||
Store 367(b) 399
|
||||
400: 186(bool) Load 367(b)
|
||||
SelectionMerge 402 None
|
||||
BranchConditional 400 401 402
|
||||
401: Label
|
||||
403: 187(bvec4) Load 189(ub41)
|
||||
405: 187(bvec4) Load 404(ub42)
|
||||
406: 187(bvec4) LogicalEqual 403 405
|
||||
407: 186(bool) Any 406
|
||||
Branch 403
|
||||
403: Label
|
||||
408: 186(bool) Phi 401 394 407 402
|
||||
Store 359(b) 408
|
||||
409: 186(bool) Load 359(b)
|
||||
410: 187(bvec4) Load 189(ub41)
|
||||
411: 186(bool) Any 410
|
||||
412: 186(bool) LogicalAnd 409 411
|
||||
Store 359(b) 412
|
||||
413: 186(bool) Load 359(b)
|
||||
414: 187(bvec4) Load 189(ub41)
|
||||
415: 186(bool) All 414
|
||||
416: 186(bool) LogicalAnd 413 415
|
||||
Store 359(b) 416
|
||||
417: 186(bool) Load 359(b)
|
||||
SelectionMerge 419 None
|
||||
BranchConditional 417 418 419
|
||||
418: Label
|
||||
420: 187(bvec4) Load 189(ub41)
|
||||
421: 187(bvec4) LogicalNot 420
|
||||
422: 186(bool) Any 421
|
||||
Branch 419
|
||||
419: Label
|
||||
423: 186(bool) Phi 417 403 422 418
|
||||
Store 359(b) 423
|
||||
424: 18(int) Load 20(i)
|
||||
425: 18(int) Load 22(ui)
|
||||
426: 18(int) IAdd 424 425
|
||||
427: 18(int) Load 20(i)
|
||||
428: 18(int) IMul 426 427
|
||||
429: 18(int) Load 22(ui)
|
||||
430: 18(int) ISub 428 429
|
||||
431: 18(int) Load 20(i)
|
||||
432: 18(int) SDiv 430 431
|
||||
Store 20(i) 432
|
||||
433: 18(int) Load 20(i)
|
||||
434: 18(int) Load 22(ui)
|
||||
435: 18(int) SMod 433 434
|
||||
Store 20(i) 435
|
||||
436: 18(int) Load 20(i)
|
||||
Branch 402
|
||||
402: Label
|
||||
408: 186(bool) Phi 400 394 407 401
|
||||
Store 367(b) 408
|
||||
409: 186(bool) Load 367(b)
|
||||
SelectionMerge 411 None
|
||||
BranchConditional 409 410 411
|
||||
410: Label
|
||||
412: 187(bvec4) Load 189(ub41)
|
||||
413: 187(bvec4) Load 404(ub42)
|
||||
414: 187(bvec4) LogicalNotEqual 412 413
|
||||
415: 186(bool) Any 414
|
||||
Branch 411
|
||||
411: Label
|
||||
416: 186(bool) Phi 409 402 415 410
|
||||
Store 367(b) 416
|
||||
417: 186(bool) Load 367(b)
|
||||
418: 187(bvec4) Load 189(ub41)
|
||||
419: 186(bool) Any 418
|
||||
420: 186(bool) LogicalAnd 417 419
|
||||
Store 367(b) 420
|
||||
421: 186(bool) Load 367(b)
|
||||
422: 187(bvec4) Load 189(ub41)
|
||||
423: 186(bool) All 422
|
||||
424: 186(bool) LogicalAnd 421 423
|
||||
Store 367(b) 424
|
||||
425: 186(bool) Load 367(b)
|
||||
SelectionMerge 427 None
|
||||
BranchConditional 425 426 427
|
||||
426: Label
|
||||
428: 187(bvec4) Load 189(ub41)
|
||||
429: 187(bvec4) LogicalNot 428
|
||||
430: 186(bool) Any 429
|
||||
Branch 427
|
||||
427: Label
|
||||
431: 186(bool) Phi 425 411 430 426
|
||||
Store 367(b) 431
|
||||
432: 18(int) Load 20(i)
|
||||
433: 18(int) Load 22(ui)
|
||||
434: 18(int) IAdd 432 433
|
||||
435: 18(int) Load 20(i)
|
||||
436: 18(int) IMul 434 435
|
||||
437: 18(int) Load 22(ui)
|
||||
438: 186(bool) IEqual 436 437
|
||||
439: 186(bool) LogicalNot 438
|
||||
SelectionMerge 441 None
|
||||
BranchConditional 439 440 441
|
||||
440: Label
|
||||
442: 18(int) Load 20(i)
|
||||
443: 18(int) Load 22(ui)
|
||||
444: 186(bool) INotEqual 442 443
|
||||
SelectionMerge 446 None
|
||||
BranchConditional 444 445 446
|
||||
445: Label
|
||||
447: 18(int) Load 20(i)
|
||||
448: 18(int) Load 22(ui)
|
||||
449: 186(bool) IEqual 447 448
|
||||
Branch 446
|
||||
446: Label
|
||||
450: 186(bool) Phi 444 440 449 445
|
||||
451: 18(int) Load 20(i)
|
||||
453: 186(bool) INotEqual 451 452
|
||||
454: 186(bool) LogicalNotEqual 450 453
|
||||
Branch 441
|
||||
441: Label
|
||||
455: 186(bool) Phi 438 419 454 446
|
||||
SelectionMerge 457 None
|
||||
BranchConditional 455 456 457
|
||||
456: Label
|
||||
458: 18(int) Load 20(i)
|
||||
460: 18(int) IAdd 458 459
|
||||
Store 20(i) 460
|
||||
Branch 457
|
||||
457: Label
|
||||
461: 6(float) Load 220(uf)
|
||||
462: 6(float) Load 220(uf)
|
||||
463: 6(float) FAdd 461 462
|
||||
464: 6(float) Load 220(uf)
|
||||
465: 6(float) FMul 463 464
|
||||
466: 6(float) Load 220(uf)
|
||||
467: 6(float) FSub 465 466
|
||||
468: 6(float) Load 220(uf)
|
||||
469: 6(float) FDiv 467 468
|
||||
Store 196(f) 469
|
||||
470: 7(fvec4) Load 9(v)
|
||||
471: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 470
|
||||
472: 6(float) Load 196(f)
|
||||
473: 6(float) FAdd 472 471
|
||||
Store 196(f) 473
|
||||
474: 7(fvec4) Load 9(v)
|
||||
475: 7(fvec4) Load 9(v)
|
||||
476: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 474 475
|
||||
477: 6(float) Load 196(f)
|
||||
478: 6(float) FAdd 477 476
|
||||
Store 196(f) 478
|
||||
479: 7(fvec4) Load 9(v)
|
||||
480: 7(fvec4) Load 9(v)
|
||||
481: 6(float) Dot 479 480
|
||||
482: 6(float) Load 196(f)
|
||||
483: 6(float) FAdd 482 481
|
||||
Store 196(f) 483
|
||||
484: 6(float) Load 196(f)
|
||||
485: 6(float) Load 220(uf)
|
||||
486: 6(float) FMul 484 485
|
||||
487: 6(float) Load 196(f)
|
||||
488: 6(float) FAdd 487 486
|
||||
Store 196(f) 488
|
||||
490: 7(fvec4) Load 9(v)
|
||||
491: 489(fvec3) VectorShuffle 490 490 0 1 2
|
||||
492: 7(fvec4) Load 9(v)
|
||||
493: 489(fvec3) VectorShuffle 492 492 0 1 2
|
||||
494: 489(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 491 493
|
||||
495: 6(float) CompositeExtract 494 0
|
||||
496: 6(float) Load 196(f)
|
||||
497: 6(float) FAdd 496 495
|
||||
Store 196(f) 497
|
||||
498: 6(float) Load 196(f)
|
||||
499: 6(float) Load 220(uf)
|
||||
500: 186(bool) FOrdEqual 498 499
|
||||
501: 186(bool) LogicalNot 500
|
||||
SelectionMerge 503 None
|
||||
BranchConditional 501 502 503
|
||||
502: Label
|
||||
504: 6(float) Load 196(f)
|
||||
505: 6(float) Load 220(uf)
|
||||
506: 186(bool) FUnordNotEqual 504 505
|
||||
507: 6(float) Load 196(f)
|
||||
509: 186(bool) FUnordNotEqual 507 508
|
||||
510: 186(bool) LogicalAnd 506 509
|
||||
Branch 503
|
||||
503: Label
|
||||
511: 186(bool) Phi 500 457 510 502
|
||||
SelectionMerge 513 None
|
||||
BranchConditional 511 512 513
|
||||
512: Label
|
||||
514: 6(float) Load 196(f)
|
||||
516: 6(float) FAdd 514 515
|
||||
Store 196(f) 516
|
||||
Branch 513
|
||||
513: Label
|
||||
517: 18(int) Load 22(ui)
|
||||
518: 18(int) Load 20(i)
|
||||
519: 18(int) BitwiseAnd 518 517
|
||||
Store 20(i) 519
|
||||
521: 18(int) Load 20(i)
|
||||
522: 18(int) BitwiseOr 521 520
|
||||
Store 20(i) 522
|
||||
523: 18(int) Load 22(ui)
|
||||
524: 18(int) Load 20(i)
|
||||
525: 18(int) BitwiseXor 524 523
|
||||
Store 20(i) 525
|
||||
527: 18(int) Load 20(i)
|
||||
528: 18(int) SMod 527 526
|
||||
Store 20(i) 528
|
||||
438: 18(int) ISub 436 437
|
||||
439: 18(int) Load 20(i)
|
||||
440: 18(int) SDiv 438 439
|
||||
Store 20(i) 440
|
||||
441: 18(int) Load 20(i)
|
||||
442: 18(int) Load 22(ui)
|
||||
443: 18(int) SMod 441 442
|
||||
Store 20(i) 443
|
||||
444: 18(int) Load 20(i)
|
||||
445: 18(int) Load 22(ui)
|
||||
446: 186(bool) IEqual 444 445
|
||||
447: 186(bool) LogicalNot 446
|
||||
SelectionMerge 449 None
|
||||
BranchConditional 447 448 449
|
||||
448: Label
|
||||
450: 18(int) Load 20(i)
|
||||
451: 18(int) Load 22(ui)
|
||||
452: 186(bool) INotEqual 450 451
|
||||
SelectionMerge 454 None
|
||||
BranchConditional 452 453 454
|
||||
453: Label
|
||||
455: 18(int) Load 20(i)
|
||||
456: 18(int) Load 22(ui)
|
||||
457: 186(bool) IEqual 455 456
|
||||
Branch 454
|
||||
454: Label
|
||||
458: 186(bool) Phi 452 448 457 453
|
||||
459: 18(int) Load 20(i)
|
||||
461: 186(bool) INotEqual 459 460
|
||||
462: 186(bool) LogicalNotEqual 458 461
|
||||
Branch 449
|
||||
449: Label
|
||||
463: 186(bool) Phi 446 427 462 454
|
||||
SelectionMerge 465 None
|
||||
BranchConditional 463 464 465
|
||||
464: Label
|
||||
466: 18(int) Load 20(i)
|
||||
468: 18(int) IAdd 466 467
|
||||
Store 20(i) 468
|
||||
Branch 465
|
||||
465: Label
|
||||
469: 6(float) Load 220(uf)
|
||||
470: 6(float) Load 220(uf)
|
||||
471: 6(float) FAdd 469 470
|
||||
472: 6(float) Load 220(uf)
|
||||
473: 6(float) FMul 471 472
|
||||
474: 6(float) Load 220(uf)
|
||||
475: 6(float) FSub 473 474
|
||||
476: 6(float) Load 220(uf)
|
||||
477: 6(float) FDiv 475 476
|
||||
Store 196(f) 477
|
||||
478: 7(fvec4) Load 9(v)
|
||||
479: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 478
|
||||
480: 6(float) Load 196(f)
|
||||
481: 6(float) FAdd 480 479
|
||||
Store 196(f) 481
|
||||
482: 7(fvec4) Load 9(v)
|
||||
483: 7(fvec4) Load 9(v)
|
||||
484: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 482 483
|
||||
485: 6(float) Load 196(f)
|
||||
486: 6(float) FAdd 485 484
|
||||
Store 196(f) 486
|
||||
487: 7(fvec4) Load 9(v)
|
||||
488: 7(fvec4) Load 9(v)
|
||||
489: 6(float) Dot 487 488
|
||||
490: 6(float) Load 196(f)
|
||||
491: 6(float) FAdd 490 489
|
||||
Store 196(f) 491
|
||||
492: 6(float) Load 196(f)
|
||||
493: 6(float) Load 220(uf)
|
||||
494: 6(float) FMul 492 493
|
||||
495: 6(float) Load 196(f)
|
||||
496: 6(float) FAdd 495 494
|
||||
Store 196(f) 496
|
||||
498: 7(fvec4) Load 9(v)
|
||||
499: 497(fvec3) VectorShuffle 498 498 0 1 2
|
||||
500: 7(fvec4) Load 9(v)
|
||||
501: 497(fvec3) VectorShuffle 500 500 0 1 2
|
||||
502: 497(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 499 501
|
||||
503: 6(float) CompositeExtract 502 0
|
||||
504: 6(float) Load 196(f)
|
||||
505: 6(float) FAdd 504 503
|
||||
Store 196(f) 505
|
||||
506: 6(float) Load 196(f)
|
||||
507: 6(float) Load 220(uf)
|
||||
508: 186(bool) FOrdEqual 506 507
|
||||
509: 186(bool) LogicalNot 508
|
||||
SelectionMerge 511 None
|
||||
BranchConditional 509 510 511
|
||||
510: Label
|
||||
512: 6(float) Load 196(f)
|
||||
513: 6(float) Load 220(uf)
|
||||
514: 186(bool) FUnordNotEqual 512 513
|
||||
515: 6(float) Load 196(f)
|
||||
517: 186(bool) FUnordNotEqual 515 516
|
||||
518: 186(bool) LogicalAnd 514 517
|
||||
Branch 511
|
||||
511: Label
|
||||
519: 186(bool) Phi 508 465 518 510
|
||||
SelectionMerge 521 None
|
||||
BranchConditional 519 520 521
|
||||
520: Label
|
||||
522: 6(float) Load 196(f)
|
||||
524: 6(float) FAdd 522 523
|
||||
Store 196(f) 524
|
||||
Branch 521
|
||||
521: Label
|
||||
525: 18(int) Load 22(ui)
|
||||
526: 18(int) Load 20(i)
|
||||
527: 18(int) BitwiseAnd 526 525
|
||||
Store 20(i) 527
|
||||
529: 18(int) Load 20(i)
|
||||
530: 18(int) ShiftRightArithmetic 529 452
|
||||
530: 18(int) BitwiseOr 529 528
|
||||
Store 20(i) 530
|
||||
531: 18(int) Load 22(ui)
|
||||
532: 18(int) Load 20(i)
|
||||
533: 18(int) ShiftLeftLogical 532 531
|
||||
533: 18(int) BitwiseXor 532 531
|
||||
Store 20(i) 533
|
||||
534: 18(int) Load 20(i)
|
||||
535: 18(int) Not 534
|
||||
Store 20(i) 535
|
||||
536: 186(bool) Load 359(b)
|
||||
537: 186(bool) LogicalNot 536
|
||||
Store 359(b) 537
|
||||
540: 186(bool) Load 359(b)
|
||||
SelectionMerge 543 None
|
||||
BranchConditional 540 542 552
|
||||
542: Label
|
||||
544: 18(int) Load 20(i)
|
||||
545: 6(float) ConvertSToF 544
|
||||
546: 7(fvec4) CompositeConstruct 545 545 545 545
|
||||
547: 6(float) Load 196(f)
|
||||
548: 7(fvec4) CompositeConstruct 547 547 547 547
|
||||
549: 7(fvec4) FAdd 546 548
|
||||
550: 7(fvec4) Load 9(v)
|
||||
551: 7(fvec4) FAdd 549 550
|
||||
Store 541 551
|
||||
Branch 543
|
||||
552: Label
|
||||
553: 7(fvec4) Load 9(v)
|
||||
Store 541 553
|
||||
Branch 543
|
||||
543: Label
|
||||
554: 7(fvec4) Load 541
|
||||
Store 539(FragColor) 554
|
||||
Store 557(m1) 563
|
||||
Store 564(m2) 566
|
||||
567: 186(bool) Load 359(b)
|
||||
SelectionMerge 570 None
|
||||
BranchConditional 567 569 572
|
||||
569: Label
|
||||
571: 555 Load 557(m1)
|
||||
Store 568 571
|
||||
Branch 570
|
||||
572: Label
|
||||
573: 555 Load 564(m2)
|
||||
Store 568 573
|
||||
Branch 570
|
||||
570: Label
|
||||
574: 8(ptr) AccessChain 568 459
|
||||
575: 7(fvec4) Load 574
|
||||
576: 7(fvec4) Load 539(FragColor)
|
||||
577: 7(fvec4) FAdd 576 575
|
||||
Store 539(FragColor) 577
|
||||
535: 18(int) Load 20(i)
|
||||
536: 18(int) SMod 535 534
|
||||
Store 20(i) 536
|
||||
537: 18(int) Load 20(i)
|
||||
538: 18(int) ShiftRightArithmetic 537 460
|
||||
Store 20(i) 538
|
||||
539: 18(int) Load 22(ui)
|
||||
540: 18(int) Load 20(i)
|
||||
541: 18(int) ShiftLeftLogical 540 539
|
||||
Store 20(i) 541
|
||||
542: 18(int) Load 20(i)
|
||||
543: 18(int) Not 542
|
||||
Store 20(i) 543
|
||||
544: 186(bool) Load 367(b)
|
||||
545: 186(bool) LogicalNot 544
|
||||
Store 367(b) 545
|
||||
548: 186(bool) Load 367(b)
|
||||
SelectionMerge 551 None
|
||||
BranchConditional 548 550 560
|
||||
550: Label
|
||||
552: 18(int) Load 20(i)
|
||||
553: 6(float) ConvertSToF 552
|
||||
554: 7(fvec4) CompositeConstruct 553 553 553 553
|
||||
555: 6(float) Load 196(f)
|
||||
556: 7(fvec4) CompositeConstruct 555 555 555 555
|
||||
557: 7(fvec4) FAdd 554 556
|
||||
558: 7(fvec4) Load 9(v)
|
||||
559: 7(fvec4) FAdd 557 558
|
||||
Store 549 559
|
||||
Branch 551
|
||||
560: Label
|
||||
561: 7(fvec4) Load 9(v)
|
||||
Store 549 561
|
||||
Branch 551
|
||||
551: Label
|
||||
562: 7(fvec4) Load 549
|
||||
Store 547(FragColor) 562
|
||||
Store 565(m1) 571
|
||||
Store 572(m2) 574
|
||||
575: 186(bool) Load 367(b)
|
||||
SelectionMerge 578 None
|
||||
BranchConditional 575 577 580
|
||||
577: Label
|
||||
579: 563 Load 565(m1)
|
||||
Store 576 579
|
||||
Branch 578
|
||||
580: Label
|
||||
581: 563 Load 572(m2)
|
||||
Store 576 581
|
||||
Branch 578
|
||||
578: Label
|
||||
582: 8(ptr) AccessChain 576 467
|
||||
583: 7(fvec4) Load 582
|
||||
584: 7(fvec4) Load 547(FragColor)
|
||||
585: 7(fvec4) FAdd 584 583
|
||||
Store 547(FragColor) 585
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue