diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index 8a1935ee..5def9667 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -92,11 +92,11 @@ gl_FragCoord origin is upper left 0:35 hyp. cosine (temp float) 0:35 'inF0' (in float) 0:36 Sequence -0:36 move second child to first child (temp uint) -0:36 'r016' (temp uint) -0:36 bitCount (temp uint) +0:36 move second child to first child (temp int) +0:36 'r016' (temp int) +0:36 bitCount (temp int) 0:36 Constant: -0:36 7 (const uint) +0:36 7 (const int) 0:37 Sequence 0:37 move second child to first child (temp float) 0:37 'r017' (temp float) @@ -257,9 +257,10 @@ gl_FragCoord origin is upper left 0:69 Sequence 0:69 move second child to first child (temp uint) 0:69 'r048' (temp uint) -0:69 bitFieldReverse (temp uint) -0:69 Constant: -0:69 2 (const uint) +0:69 Convert int to uint (temp uint) +0:69 bitFieldReverse (temp int) +0:69 Constant: +0:69 2 (const int) 0:70 Sequence 0:70 move second child to first child (temp float) 0:70 'r049' (temp float) @@ -440,12 +441,12 @@ gl_FragCoord origin is upper left 0:113 hyp. cosine (temp 2-component vector of float) 0:113 'inF0' (in 2-component vector of float) 0:114 Sequence -0:114 move second child to first child (temp 2-component vector of uint) -0:114 'r016' (temp 2-component vector of uint) -0:? bitCount (temp 2-component vector of uint) +0:114 move second child to first child (temp 2-component vector of int) +0:114 'r016' (temp 2-component vector of int) +0:? bitCount (temp 2-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) +0:? 7 (const int) +0:? 3 (const int) 0:115 Sequence 0:115 move second child to first child (temp 2-component vector of float) 0:115 'r017' (temp 2-component vector of float) @@ -2893,11 +2894,11 @@ gl_FragCoord origin is upper left 0:35 hyp. cosine (temp float) 0:35 'inF0' (in float) 0:36 Sequence -0:36 move second child to first child (temp uint) -0:36 'r016' (temp uint) -0:36 bitCount (temp uint) +0:36 move second child to first child (temp int) +0:36 'r016' (temp int) +0:36 bitCount (temp int) 0:36 Constant: -0:36 7 (const uint) +0:36 7 (const int) 0:37 Sequence 0:37 move second child to first child (temp float) 0:37 'r017' (temp float) @@ -3058,9 +3059,10 @@ gl_FragCoord origin is upper left 0:69 Sequence 0:69 move second child to first child (temp uint) 0:69 'r048' (temp uint) -0:69 bitFieldReverse (temp uint) -0:69 Constant: -0:69 2 (const uint) +0:69 Convert int to uint (temp uint) +0:69 bitFieldReverse (temp int) +0:69 Constant: +0:69 2 (const int) 0:70 Sequence 0:70 move second child to first child (temp float) 0:70 'r049' (temp float) @@ -3241,12 +3243,12 @@ gl_FragCoord origin is upper left 0:113 hyp. cosine (temp 2-component vector of float) 0:113 'inF0' (in 2-component vector of float) 0:114 Sequence -0:114 move second child to first child (temp 2-component vector of uint) -0:114 'r016' (temp 2-component vector of uint) -0:? bitCount (temp 2-component vector of uint) +0:114 move second child to first child (temp 2-component vector of int) +0:114 'r016' (temp 2-component vector of int) +0:? bitCount (temp 2-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) +0:? 7 (const int) +0:? 3 (const int) 0:115 Sequence 0:115 move second child to first child (temp 2-component vector of float) 0:115 'r017' (temp 2-component vector of float) @@ -5599,13 +5601,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1825 +// Id's are bound by 1828 Capability Shader Capability DerivativeControl 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 1805 + EntryPoint Fragment 4 "main" 1808 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 16 "PixelShaderFunctionS(f1;f1;f1;u1;u1;" @@ -5704,26 +5706,26 @@ gl_FragCoord origin is upper left Name 210 "r027" Name 213 "r028" Name 216 "r029" - Name 220 "r030" - Name 223 "r031" - Name 226 "r033" - Name 230 "r034" - Name 233 "r035" - Name 235 "ResType" - Name 239 "r036" - Name 242 "r037" - Name 245 "r038" - Name 248 "r039" - Name 252 "r039a" - Name 257 "r040" - Name 260 "r041" - Name 265 "r042" - Name 268 "r043" - Name 272 "r044" - Name 276 "r045" - Name 280 "r046" - Name 283 "r047" - Name 287 "r048" + Name 219 "r030" + Name 222 "r031" + Name 225 "r033" + Name 229 "r034" + Name 232 "r035" + Name 234 "ResType" + Name 238 "r036" + Name 241 "r037" + Name 244 "r038" + Name 247 "r039" + Name 251 "r039a" + Name 256 "r040" + Name 259 "r041" + Name 264 "r042" + Name 267 "r043" + Name 271 "r044" + Name 275 "r045" + Name 279 "r046" + Name 282 "r047" + Name 286 "r048" Name 290 "r049" Name 293 "r050" Name 296 "r051" @@ -5764,375 +5766,375 @@ gl_FragCoord origin is upper left Name 428 "r029" Name 431 "r030" Name 436 "r031" - Name 440 "r032" - Name 442 "r033" - Name 445 "r035" - Name 449 "r036" - Name 452 "r037" - Name 454 "ResType" - Name 458 "r038" - Name 462 "r039" - Name 465 "r040" - Name 468 "r041" - Name 472 "r039a" - Name 477 "r042" - Name 480 "r043" - Name 483 "r044" - Name 487 "r045" - Name 490 "r046" - Name 494 "r047" - Name 498 "r048" - Name 501 "r049" - Name 505 "r050" - Name 508 "r051" - Name 512 "r052" - Name 516 "r053" - Name 521 "r054" - Name 525 "r055" - Name 528 "r056" - Name 531 "r057" - Name 536 "r058" - Name 539 "r059" - Name 546 "r060" - Name 549 "r061" - Name 554 "r062" - Name 557 "r063" - Name 561 "r064" - Name 564 "r065" - Name 567 "r066" - Name 573 "r000" - Name 576 "r001" - Name 579 "r002" - Name 582 "r003" - Name 585 "r004" - Name 590 "r005" - Name 593 "r006" - Name 596 "r007" - Name 599 "r009" - Name 602 "r010" - Name 606 "r011" - Name 609 "r012" - Name 622 "r013" - Name 625 "r014" - Name 628 "r015" - Name 632 "r016" - Name 636 "r017" - Name 639 "r018" - Name 642 "r019" - Name 645 "r020" - Name 648 "r021" - Name 651 "r022" - Name 654 "r023" - Name 657 "r024" - Name 661 "r025" - Name 665 "r029" - Name 668 "r030" - Name 671 "r031" - Name 676 "r032" - Name 680 "r033" - Name 682 "r034" - Name 685 "r036" - Name 689 "r037" - Name 692 "r038" - Name 694 "ResType" - Name 698 "r039" - Name 702 "r040" - Name 705 "r041" - Name 708 "r042" - Name 712 "r039a" - Name 717 "r039b" - Name 723 "r043" - Name 726 "r044" - Name 729 "r045" - Name 733 "r046" - Name 736 "r047" - Name 740 "r048" - Name 744 "r049" - Name 747 "r050" - Name 751 "r051" - Name 754 "r052" - Name 758 "r053" - Name 762 "r054" - Name 766 "r055" - Name 769 "r056" - Name 772 "r057" - Name 775 "r058" - Name 780 "r059" - Name 783 "r060" - Name 790 "r061" - Name 793 "r062" - Name 798 "r063" - Name 801 "r064" - Name 805 "r065" - Name 808 "r066" - Name 811 "r067" - Name 818 "r000" - Name 821 "r001" - Name 824 "r002" - Name 827 "r003" - Name 830 "r004" - Name 835 "r005" - Name 838 "r006" - Name 841 "r007" - Name 844 "r009" - Name 847 "r010" - Name 851 "r011" - Name 854 "r012" - Name 867 "r013" - Name 870 "r014" - Name 873 "r015" - Name 876 "r016" - Name 879 "r017" - Name 882 "r018" - Name 885 "r019" - Name 888 "r020" - Name 891 "r021" - Name 894 "r022" - Name 897 "r023" - Name 901 "r024" - Name 905 "r025" - Name 916 "r029" - Name 919 "r030" - Name 922 "r031" - Name 927 "r032" - Name 932 "r033" - Name 934 "r034" - Name 937 "r036" - Name 941 "r037" - Name 944 "r038" - Name 946 "ResType" - Name 950 "r039" - Name 954 "r040" - Name 957 "r041" - Name 960 "r042" - Name 964 "r039a" - Name 969 "r043" - Name 972 "r044" - Name 975 "r045" - Name 979 "r046" - Name 982 "r047" - Name 986 "r048" - Name 990 "r049" - Name 993 "r050" - Name 997 "r051" - Name 1000 "r052" - Name 1004 "r053" - Name 1008 "r054" - Name 1012 "r055" - Name 1015 "r056" - Name 1018 "r057" - Name 1021 "r058" - Name 1026 "r059" - Name 1029 "r060" - Name 1036 "r061" - Name 1039 "r062" - Name 1044 "r063" - Name 1047 "r064" - Name 1051 "r065" - Name 1054 "r066" - Name 1057 "r067" - Name 1064 "r000" - Name 1067 "r001" - Name 1072 "r003" - Name 1075 "r004" - Name 1078 "r005" - Name 1081 "r006" - Name 1085 "r007" - Name 1096 "r008" - Name 1101 "r009" - Name 1104 "r010" - Name 1107 "r011" - Name 1110 "r012" - Name 1113 "r013" - Name 1116 "r014" - Name 1119 "r015" - Name 1122 "r016" - Name 1125 "r017" - Name 1128 "r018" - Name 1131 "r019" - Name 1134 "R020" - Name 1137 "r021" - Name 1140 "r022" - Name 1150 "r023" - Name 1153 "r024" - Name 1155 "ResType" - Name 1159 "r025" - Name 1162 "r026" - Name 1166 "r026a" - Name 1171 "r027" - Name 1174 "r028" - Name 1178 "r029" - Name 1181 "r030" - Name 1185 "r031" - Name 1189 "r032" - Name 1193 "r033" - Name 1196 "r034" - Name 1199 "r035" - Name 1202 "r036" - Name 1207 "r037" - Name 1210 "r038" - Name 1217 "r039" - Name 1220 "r049" - Name 1225 "r041" - Name 1228 "r042" - Name 1232 "r043" - Name 1235 "r044" - Name 1240 "r046" - Name 1247 "r000" - Name 1250 "r001" - Name 1255 "r003" - Name 1258 "r004" - Name 1261 "r005" - Name 1264 "r006" - Name 1268 "r007" - Name 1279 "r008" - Name 1284 "r009" - Name 1287 "r010" - Name 1290 "r011" - Name 1293 "r012" - Name 1296 "r013" - Name 1299 "r014" - Name 1302 "r015" - Name 1305 "r016" - Name 1308 "r017" - Name 1311 "r018" - Name 1314 "r019" - Name 1317 "R020" - Name 1320 "r021" - Name 1323 "r022" - Name 1336 "r023" - Name 1339 "r024" - Name 1341 "ResType" - Name 1345 "r025" - Name 1348 "r026" - Name 1352 "r026a" - Name 1357 "r027" - Name 1360 "r028" - Name 1364 "r029" - Name 1367 "r030" - Name 1371 "r031" - Name 1375 "r032" - Name 1379 "r033" - Name 1382 "r034" - Name 1385 "r035" - Name 1388 "r036" - Name 1393 "r037" - Name 1396 "r038" - Name 1403 "r039" - Name 1406 "r049" - Name 1411 "r041" - Name 1414 "r042" - Name 1418 "r043" - Name 1421 "r044" - Name 1426 "r046" - Name 1433 "r000" - Name 1436 "r001" - Name 1441 "r003" - Name 1444 "r004" - Name 1447 "r005" - Name 1450 "r006" - Name 1454 "r007" - Name 1465 "r008" - Name 1470 "r009" - Name 1473 "r010" - Name 1476 "r011" - Name 1479 "r012" - Name 1482 "r013" - Name 1485 "r014" - Name 1488 "r015" - Name 1491 "r016" - Name 1494 "r017" - Name 1497 "r018" - Name 1500 "r019" - Name 1503 "R020" - Name 1506 "r021" - Name 1509 "r022" - Name 1525 "r023" - Name 1528 "r024" - Name 1530 "ResType" - Name 1534 "r025" - Name 1537 "r026" - Name 1541 "r026a" - Name 1546 "r027" - Name 1549 "r028" - Name 1553 "r029" - Name 1556 "r030" - Name 1560 "r031" - Name 1564 "r032" - Name 1568 "r033" - Name 1571 "r034" - Name 1574 "r035" - Name 1577 "r036" - Name 1582 "r037" - Name 1585 "r038" - Name 1592 "r039" - Name 1595 "r049" - Name 1600 "r041" - Name 1603 "r042" - Name 1607 "r043" - Name 1610 "r044" - Name 1615 "r046" - Name 1622 "r0" - Name 1626 "r1" - Name 1630 "r2" - Name 1634 "r3" - Name 1638 "r4" - Name 1642 "r5" - Name 1646 "r6" - Name 1650 "r7" - Name 1654 "r8" - Name 1658 "r0" - Name 1662 "r1" - Name 1666 "r2" - Name 1670 "r3" - Name 1674 "r4" - Name 1678 "r5" - Name 1682 "r6" - Name 1686 "r7" - Name 1690 "r8" - Name 1694 "r0" - Name 1698 "r1" - Name 1702 "r2" - Name 1706 "r3" - Name 1710 "r4" - Name 1714 "r5" - Name 1718 "r6" - Name 1722 "r7" - Name 1726 "r8" - Name 1730 "r00" - Name 1734 "r01" - Name 1738 "r02" - Name 1742 "r03" - Name 1746 "r04" - Name 1750 "r05" - Name 1754 "r06" - Name 1758 "r07" - Name 1762 "r08" - Name 1766 "r09" - Name 1770 "r10" - Name 1774 "r11" - Name 1778 "r12" - Name 1782 "r13" - Name 1786 "r14" - Name 1790 "r15" - Name 1794 "r16" - Name 1798 "PS_OUTPUT" - MemberName 1798(PS_OUTPUT) 0 "color" - Name 1800 "ps_output" - Name 1805 "color" - Name 1810 "gs_ua" - Name 1811 "gs_ub" - Name 1812 "gs_uc" - Name 1814 "gs_ua2" - Name 1815 "gs_ub2" - Name 1816 "gs_uc2" - Name 1818 "gs_ua3" - Name 1819 "gs_ub3" - Name 1820 "gs_uc3" - Name 1822 "gs_ua4" - Name 1823 "gs_ub4" - Name 1824 "gs_uc4" - Decorate 1805(color) Location 0 + Name 441 "r032" + Name 443 "r033" + Name 446 "r035" + Name 450 "r036" + Name 453 "r037" + Name 455 "ResType" + Name 459 "r038" + Name 463 "r039" + Name 466 "r040" + Name 469 "r041" + Name 473 "r039a" + Name 478 "r042" + Name 481 "r043" + Name 484 "r044" + Name 488 "r045" + Name 491 "r046" + Name 495 "r047" + Name 499 "r048" + Name 502 "r049" + Name 506 "r050" + Name 509 "r051" + Name 513 "r052" + Name 517 "r053" + Name 522 "r054" + Name 527 "r055" + Name 530 "r056" + Name 533 "r057" + Name 538 "r058" + Name 541 "r059" + Name 548 "r060" + Name 551 "r061" + Name 556 "r062" + Name 559 "r063" + Name 563 "r064" + Name 566 "r065" + Name 569 "r066" + Name 575 "r000" + Name 578 "r001" + Name 581 "r002" + Name 584 "r003" + Name 587 "r004" + Name 592 "r005" + Name 595 "r006" + Name 598 "r007" + Name 601 "r009" + Name 604 "r010" + Name 608 "r011" + Name 611 "r012" + Name 624 "r013" + Name 627 "r014" + Name 630 "r015" + Name 635 "r016" + Name 639 "r017" + Name 642 "r018" + Name 645 "r019" + Name 648 "r020" + Name 651 "r021" + Name 654 "r022" + Name 657 "r023" + Name 660 "r024" + Name 664 "r025" + Name 668 "r029" + Name 671 "r030" + Name 674 "r031" + Name 679 "r032" + Name 683 "r033" + Name 685 "r034" + Name 688 "r036" + Name 692 "r037" + Name 695 "r038" + Name 697 "ResType" + Name 701 "r039" + Name 705 "r040" + Name 708 "r041" + Name 711 "r042" + Name 715 "r039a" + Name 720 "r039b" + Name 726 "r043" + Name 729 "r044" + Name 732 "r045" + Name 736 "r046" + Name 739 "r047" + Name 743 "r048" + Name 747 "r049" + Name 750 "r050" + Name 754 "r051" + Name 757 "r052" + Name 761 "r053" + Name 765 "r054" + Name 769 "r055" + Name 772 "r056" + Name 775 "r057" + Name 778 "r058" + Name 783 "r059" + Name 786 "r060" + Name 793 "r061" + Name 796 "r062" + Name 801 "r063" + Name 804 "r064" + Name 808 "r065" + Name 811 "r066" + Name 814 "r067" + Name 821 "r000" + Name 824 "r001" + Name 827 "r002" + Name 830 "r003" + Name 833 "r004" + Name 838 "r005" + Name 841 "r006" + Name 844 "r007" + Name 847 "r009" + Name 850 "r010" + Name 854 "r011" + Name 857 "r012" + Name 870 "r013" + Name 873 "r014" + Name 876 "r015" + Name 879 "r016" + Name 882 "r017" + Name 885 "r018" + Name 888 "r019" + Name 891 "r020" + Name 894 "r021" + Name 897 "r022" + Name 900 "r023" + Name 904 "r024" + Name 908 "r025" + Name 919 "r029" + Name 922 "r030" + Name 925 "r031" + Name 930 "r032" + Name 935 "r033" + Name 937 "r034" + Name 940 "r036" + Name 944 "r037" + Name 947 "r038" + Name 949 "ResType" + Name 953 "r039" + Name 957 "r040" + Name 960 "r041" + Name 963 "r042" + Name 967 "r039a" + Name 972 "r043" + Name 975 "r044" + Name 978 "r045" + Name 982 "r046" + Name 985 "r047" + Name 989 "r048" + Name 993 "r049" + Name 996 "r050" + Name 1000 "r051" + Name 1003 "r052" + Name 1007 "r053" + Name 1011 "r054" + Name 1015 "r055" + Name 1018 "r056" + Name 1021 "r057" + Name 1024 "r058" + Name 1029 "r059" + Name 1032 "r060" + Name 1039 "r061" + Name 1042 "r062" + Name 1047 "r063" + Name 1050 "r064" + Name 1054 "r065" + Name 1057 "r066" + Name 1060 "r067" + Name 1067 "r000" + Name 1070 "r001" + Name 1075 "r003" + Name 1078 "r004" + Name 1081 "r005" + Name 1084 "r006" + Name 1088 "r007" + Name 1099 "r008" + Name 1104 "r009" + Name 1107 "r010" + Name 1110 "r011" + Name 1113 "r012" + Name 1116 "r013" + Name 1119 "r014" + Name 1122 "r015" + Name 1125 "r016" + Name 1128 "r017" + Name 1131 "r018" + Name 1134 "r019" + Name 1137 "R020" + Name 1140 "r021" + Name 1143 "r022" + Name 1153 "r023" + Name 1156 "r024" + Name 1158 "ResType" + Name 1162 "r025" + Name 1165 "r026" + Name 1169 "r026a" + Name 1174 "r027" + Name 1177 "r028" + Name 1181 "r029" + Name 1184 "r030" + Name 1188 "r031" + Name 1192 "r032" + Name 1196 "r033" + Name 1199 "r034" + Name 1202 "r035" + Name 1205 "r036" + Name 1210 "r037" + Name 1213 "r038" + Name 1220 "r039" + Name 1223 "r049" + Name 1228 "r041" + Name 1231 "r042" + Name 1235 "r043" + Name 1238 "r044" + Name 1243 "r046" + Name 1250 "r000" + Name 1253 "r001" + Name 1258 "r003" + Name 1261 "r004" + Name 1264 "r005" + Name 1267 "r006" + Name 1271 "r007" + Name 1282 "r008" + Name 1287 "r009" + Name 1290 "r010" + Name 1293 "r011" + Name 1296 "r012" + Name 1299 "r013" + Name 1302 "r014" + Name 1305 "r015" + Name 1308 "r016" + Name 1311 "r017" + Name 1314 "r018" + Name 1317 "r019" + Name 1320 "R020" + Name 1323 "r021" + Name 1326 "r022" + Name 1339 "r023" + Name 1342 "r024" + Name 1344 "ResType" + Name 1348 "r025" + Name 1351 "r026" + Name 1355 "r026a" + Name 1360 "r027" + Name 1363 "r028" + Name 1367 "r029" + Name 1370 "r030" + Name 1374 "r031" + Name 1378 "r032" + Name 1382 "r033" + Name 1385 "r034" + Name 1388 "r035" + Name 1391 "r036" + Name 1396 "r037" + Name 1399 "r038" + Name 1406 "r039" + Name 1409 "r049" + Name 1414 "r041" + Name 1417 "r042" + Name 1421 "r043" + Name 1424 "r044" + Name 1429 "r046" + Name 1436 "r000" + Name 1439 "r001" + Name 1444 "r003" + Name 1447 "r004" + Name 1450 "r005" + Name 1453 "r006" + Name 1457 "r007" + Name 1468 "r008" + Name 1473 "r009" + Name 1476 "r010" + Name 1479 "r011" + Name 1482 "r012" + Name 1485 "r013" + Name 1488 "r014" + Name 1491 "r015" + Name 1494 "r016" + Name 1497 "r017" + Name 1500 "r018" + Name 1503 "r019" + Name 1506 "R020" + Name 1509 "r021" + Name 1512 "r022" + Name 1528 "r023" + Name 1531 "r024" + Name 1533 "ResType" + Name 1537 "r025" + Name 1540 "r026" + Name 1544 "r026a" + Name 1549 "r027" + Name 1552 "r028" + Name 1556 "r029" + Name 1559 "r030" + Name 1563 "r031" + Name 1567 "r032" + Name 1571 "r033" + Name 1574 "r034" + Name 1577 "r035" + Name 1580 "r036" + Name 1585 "r037" + Name 1588 "r038" + Name 1595 "r039" + Name 1598 "r049" + Name 1603 "r041" + Name 1606 "r042" + Name 1610 "r043" + Name 1613 "r044" + Name 1618 "r046" + Name 1625 "r0" + Name 1629 "r1" + Name 1633 "r2" + Name 1637 "r3" + Name 1641 "r4" + Name 1645 "r5" + Name 1649 "r6" + Name 1653 "r7" + Name 1657 "r8" + Name 1661 "r0" + Name 1665 "r1" + Name 1669 "r2" + Name 1673 "r3" + Name 1677 "r4" + Name 1681 "r5" + Name 1685 "r6" + Name 1689 "r7" + Name 1693 "r8" + Name 1697 "r0" + Name 1701 "r1" + Name 1705 "r2" + Name 1709 "r3" + Name 1713 "r4" + Name 1717 "r5" + Name 1721 "r6" + Name 1725 "r7" + Name 1729 "r8" + Name 1733 "r00" + Name 1737 "r01" + Name 1741 "r02" + Name 1745 "r03" + Name 1749 "r04" + Name 1753 "r05" + Name 1757 "r06" + Name 1761 "r07" + Name 1765 "r08" + Name 1769 "r09" + Name 1773 "r10" + Name 1777 "r11" + Name 1781 "r12" + Name 1785 "r13" + Name 1789 "r14" + Name 1793 "r15" + Name 1797 "r16" + Name 1801 "PS_OUTPUT" + MemberName 1801(PS_OUTPUT) 0 "color" + Name 1803 "ps_output" + Name 1808 "color" + Name 1813 "gs_ua" + Name 1814 "gs_ub" + Name 1815 "gs_uc" + Name 1817 "gs_ua2" + Name 1818 "gs_ub2" + Name 1819 "gs_uc2" + Name 1821 "gs_ua3" + Name 1822 "gs_ub3" + Name 1823 "gs_uc3" + Name 1825 "gs_ua4" + Name 1826 "gs_ub4" + Name 1827 "gs_uc4" + Decorate 1808(color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -6182,98 +6184,100 @@ gl_FragCoord origin is upper left 148: TypeInt 32 1 149: TypePointer Function 148(int) 175: 6(float) Constant 0 - 187: 8(int) Constant 7 - 217: 148(int) Constant 7 - 235(ResType): TypeStruct 6(float) 148(int) - 263: 6(float) Constant 1050288283 - 284: 6(float) Constant 1065353216 - 288: 8(int) Constant 2 + 187: 148(int) Constant 7 + 234(ResType): TypeStruct 6(float) 148(int) + 262: 6(float) Constant 1050288283 + 283: 6(float) Constant 1065353216 + 287: 148(int) Constant 2 352: TypeVector 148(int) 2 353: TypePointer Function 352(ivec2) 379: 24(fvec2) ConstantComposite 175 175 380: TypeVector 131(bool) 2 - 393: 8(int) Constant 3 - 394: 26(ivec2) ConstantComposite 187 393 - 437: 8(int) Constant 8 - 438: 26(ivec2) ConstantComposite 187 437 - 454(ResType): TypeStruct 24(fvec2) 352(ivec2) - 461: TypePointer Function 380(bvec2) - 519: 6(float) Constant 1073741824 - 522: 8(int) Constant 1 - 523: 26(ivec2) ConstantComposite 522 288 - 570: 24(fvec2) ConstantComposite 284 519 - 588: TypeVector 148(int) 3 - 589: TypePointer Function 588(ivec3) - 615: 36(fvec3) ConstantComposite 175 175 175 - 616: TypeVector 131(bool) 3 - 629: 8(int) Constant 5 - 630: 38(ivec3) ConstantComposite 187 393 629 - 677: 8(int) Constant 4 - 678: 38(ivec3) ConstantComposite 288 393 677 - 694(ResType): TypeStruct 36(fvec3) 588(ivec3) - 701: TypePointer Function 616(bvec3) - 720: 6(float) Constant 1050253722 - 767: 38(ivec3) ConstantComposite 522 288 393 - 814: 6(float) Constant 1077936128 - 815: 36(fvec3) ConstantComposite 284 519 814 - 833: TypeVector 148(int) 4 - 834: TypePointer Function 833(ivec4) - 860: 48(fvec4) ConstantComposite 175 175 175 175 - 861: TypeVector 131(bool) 4 - 874: 50(ivec4) ConstantComposite 187 393 629 288 - 928: 8(int) Constant 9 - 929: 8(int) Constant 10 - 930: 50(ivec4) ConstantComposite 187 437 928 929 - 946(ResType): TypeStruct 48(fvec4) 833(ivec4) - 953: TypePointer Function 861(bvec4) - 1013: 50(ivec4) ConstantComposite 522 288 393 677 - 1060: 6(float) Constant 1082130432 - 1061: 48(fvec4) ConstantComposite 284 519 814 1060 - 1089: 60 ConstantComposite 379 379 - 1090: TypeMatrix 380(bvec2) 2 - 1155(ResType): TypeStruct 60 352(ivec2) - 1243: 24(fvec2) ConstantComposite 519 519 - 1244: 60 ConstantComposite 1243 1243 - 1272: 68 ConstantComposite 615 615 615 - 1273: TypeMatrix 616(bvec3) 3 - 1341(ResType): TypeStruct 68 588(ivec3) - 1429: 36(fvec3) ConstantComposite 814 814 814 - 1430: 68 ConstantComposite 1429 1429 1429 - 1458: 76 ConstantComposite 860 860 860 860 - 1459: TypeMatrix 861(bvec4) 4 - 1530(ResType): TypeStruct 76 833(ivec4) - 1618: 48(fvec4) ConstantComposite 1060 1060 1060 1060 - 1619: 76 ConstantComposite 1618 1618 1618 1618 - 1798(PS_OUTPUT): TypeStruct 48(fvec4) - 1799: TypePointer Function 1798(PS_OUTPUT) - 1801: 148(int) Constant 0 - 1802: 48(fvec4) ConstantComposite 284 284 284 284 - 1804: TypePointer Output 48(fvec4) - 1805(color): 1804(ptr) Variable Output - 1809: TypePointer Workgroup 8(int) - 1810(gs_ua): 1809(ptr) Variable Workgroup - 1811(gs_ub): 1809(ptr) Variable Workgroup - 1812(gs_uc): 1809(ptr) Variable Workgroup - 1813: TypePointer Workgroup 26(ivec2) - 1814(gs_ua2): 1813(ptr) Variable Workgroup - 1815(gs_ub2): 1813(ptr) Variable Workgroup - 1816(gs_uc2): 1813(ptr) Variable Workgroup - 1817: TypePointer Workgroup 38(ivec3) - 1818(gs_ua3): 1817(ptr) Variable Workgroup - 1819(gs_ub3): 1817(ptr) Variable Workgroup - 1820(gs_uc3): 1817(ptr) Variable Workgroup - 1821: TypePointer Workgroup 50(ivec4) - 1822(gs_ua4): 1821(ptr) Variable Workgroup - 1823(gs_ub4): 1821(ptr) Variable Workgroup - 1824(gs_uc4): 1821(ptr) Variable Workgroup + 393: 148(int) Constant 3 + 394: 352(ivec2) ConstantComposite 187 393 + 437: 8(int) Constant 7 + 438: 8(int) Constant 8 + 439: 26(ivec2) ConstantComposite 437 438 + 455(ResType): TypeStruct 24(fvec2) 352(ivec2) + 462: TypePointer Function 380(bvec2) + 520: 6(float) Constant 1073741824 + 523: 8(int) Constant 1 + 524: 8(int) Constant 2 + 525: 26(ivec2) ConstantComposite 523 524 + 572: 24(fvec2) ConstantComposite 283 520 + 590: TypeVector 148(int) 3 + 591: TypePointer Function 590(ivec3) + 617: 36(fvec3) ConstantComposite 175 175 175 + 618: TypeVector 131(bool) 3 + 631: 8(int) Constant 3 + 632: 8(int) Constant 5 + 633: 38(ivec3) ConstantComposite 437 631 632 + 680: 8(int) Constant 4 + 681: 38(ivec3) ConstantComposite 524 631 680 + 697(ResType): TypeStruct 36(fvec3) 590(ivec3) + 704: TypePointer Function 618(bvec3) + 723: 6(float) Constant 1050253722 + 770: 38(ivec3) ConstantComposite 523 524 631 + 817: 6(float) Constant 1077936128 + 818: 36(fvec3) ConstantComposite 283 520 817 + 836: TypeVector 148(int) 4 + 837: TypePointer Function 836(ivec4) + 863: 48(fvec4) ConstantComposite 175 175 175 175 + 864: TypeVector 131(bool) 4 + 877: 50(ivec4) ConstantComposite 437 631 632 524 + 931: 8(int) Constant 9 + 932: 8(int) Constant 10 + 933: 50(ivec4) ConstantComposite 437 438 931 932 + 949(ResType): TypeStruct 48(fvec4) 836(ivec4) + 956: TypePointer Function 864(bvec4) + 1016: 50(ivec4) ConstantComposite 523 524 631 680 + 1063: 6(float) Constant 1082130432 + 1064: 48(fvec4) ConstantComposite 283 520 817 1063 + 1092: 60 ConstantComposite 379 379 + 1093: TypeMatrix 380(bvec2) 2 + 1158(ResType): TypeStruct 60 352(ivec2) + 1246: 24(fvec2) ConstantComposite 520 520 + 1247: 60 ConstantComposite 1246 1246 + 1275: 68 ConstantComposite 617 617 617 + 1276: TypeMatrix 618(bvec3) 3 + 1344(ResType): TypeStruct 68 590(ivec3) + 1432: 36(fvec3) ConstantComposite 817 817 817 + 1433: 68 ConstantComposite 1432 1432 1432 + 1461: 76 ConstantComposite 863 863 863 863 + 1462: TypeMatrix 864(bvec4) 4 + 1533(ResType): TypeStruct 76 836(ivec4) + 1621: 48(fvec4) ConstantComposite 1063 1063 1063 1063 + 1622: 76 ConstantComposite 1621 1621 1621 1621 + 1801(PS_OUTPUT): TypeStruct 48(fvec4) + 1802: TypePointer Function 1801(PS_OUTPUT) + 1804: 148(int) Constant 0 + 1805: 48(fvec4) ConstantComposite 283 283 283 283 + 1807: TypePointer Output 48(fvec4) + 1808(color): 1807(ptr) Variable Output + 1812: TypePointer Workgroup 8(int) + 1813(gs_ua): 1812(ptr) Variable Workgroup + 1814(gs_ub): 1812(ptr) Variable Workgroup + 1815(gs_uc): 1812(ptr) Variable Workgroup + 1816: TypePointer Workgroup 26(ivec2) + 1817(gs_ua2): 1816(ptr) Variable Workgroup + 1818(gs_ub2): 1816(ptr) Variable Workgroup + 1819(gs_uc2): 1816(ptr) Variable Workgroup + 1820: TypePointer Workgroup 38(ivec3) + 1821(gs_ua3): 1820(ptr) Variable Workgroup + 1822(gs_ub3): 1820(ptr) Variable Workgroup + 1823(gs_uc3): 1820(ptr) Variable Workgroup + 1824: TypePointer Workgroup 50(ivec4) + 1825(gs_ua4): 1824(ptr) Variable Workgroup + 1826(gs_ub4): 1824(ptr) Variable Workgroup + 1827(gs_uc4): 1824(ptr) Variable Workgroup 4(main): 2 Function None 3 5: Label - 1800(ps_output): 1799(ptr) Variable Function - 1803: 49(ptr) AccessChain 1800(ps_output) 1801 - Store 1803 1802 - 1806: 49(ptr) AccessChain 1800(ps_output) 1801 - 1807: 48(fvec4) Load 1806 - Store 1805(color) 1807 + 1803(ps_output): 1802(ptr) Variable Function + 1806: 49(ptr) AccessChain 1803(ps_output) 1804 + Store 1806 1805 + 1809: 49(ptr) AccessChain 1803(ps_output) 1804 + 1810: 48(fvec4) Load 1809 + Store 1808(color) 1810 Return FunctionEnd 16(PixelShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 @@ -6297,7 +6301,7 @@ gl_FragCoord origin is upper left 169(r012): 7(ptr) Variable Function 180(r014): 7(ptr) Variable Function 183(r015): 7(ptr) Variable Function - 186(r016): 9(ptr) Variable Function + 186(r016): 149(ptr) Variable Function 189(r017): 7(ptr) Variable Function 192(r018): 7(ptr) Variable Function 195(r019): 7(ptr) Variable Function @@ -6308,25 +6312,25 @@ gl_FragCoord origin is upper left 210(r027): 7(ptr) Variable Function 213(r028): 7(ptr) Variable Function 216(r029): 9(ptr) Variable Function - 220(r030): 9(ptr) Variable Function - 223(r031): 7(ptr) Variable Function - 226(r033): 7(ptr) Variable Function - 230(r034): 7(ptr) Variable Function - 233(r035): 7(ptr) Variable Function - 239(r036): 7(ptr) Variable Function - 242(r037): 132(ptr) Variable Function - 245(r038): 132(ptr) Variable Function - 248(r039): 7(ptr) Variable Function - 252(r039a): 7(ptr) Variable Function - 257(r040): 7(ptr) Variable Function - 260(r041): 7(ptr) Variable Function - 265(r042): 7(ptr) Variable Function - 268(r043): 7(ptr) Variable Function - 272(r044): 7(ptr) Variable Function - 276(r045): 7(ptr) Variable Function - 280(r046): 7(ptr) Variable Function - 283(r047): 7(ptr) Variable Function - 287(r048): 9(ptr) Variable Function + 219(r030): 9(ptr) Variable Function + 222(r031): 7(ptr) Variable Function + 225(r033): 7(ptr) Variable Function + 229(r034): 7(ptr) Variable Function + 232(r035): 7(ptr) Variable Function + 238(r036): 7(ptr) Variable Function + 241(r037): 132(ptr) Variable Function + 244(r038): 132(ptr) Variable Function + 247(r039): 7(ptr) Variable Function + 251(r039a): 7(ptr) Variable Function + 256(r040): 7(ptr) Variable Function + 259(r041): 7(ptr) Variable Function + 264(r042): 7(ptr) Variable Function + 267(r043): 7(ptr) Variable Function + 271(r044): 7(ptr) Variable Function + 275(r045): 7(ptr) Variable Function + 279(r046): 7(ptr) Variable Function + 282(r047): 7(ptr) Variable Function + 286(r048): 9(ptr) Variable Function 290(r049): 7(ptr) Variable Function 293(r050): 7(ptr) Variable Function 296(r051): 7(ptr) Variable Function @@ -6391,7 +6395,7 @@ gl_FragCoord origin is upper left 184: 6(float) Load 11(inF0) 185: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 184 Store 183(r015) 185 - 188: 8(int) BitCount 187 + 188: 148(int) BitCount 187 Store 186(r016) 188 190: 6(float) Load 11(inF0) 191: 6(float) DPdx 190 @@ -6420,76 +6424,77 @@ gl_FragCoord origin is upper left 214: 6(float) Load 11(inF0) 215: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 214 Store 213(r028) 215 - 218: 148(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 217 - 219: 8(int) Bitcast 218 - Store 216(r029) 219 - 221: 148(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 217 - 222: 8(int) Bitcast 221 - Store 220(r030) 222 - 224: 6(float) Load 11(inF0) - 225: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 224 - Store 223(r031) 225 - 227: 6(float) Load 11(inF0) - 228: 6(float) Load 12(inF1) - 229: 6(float) FMod 227 228 - Store 226(r033) 229 - 231: 6(float) Load 11(inF0) - 232: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 231 - Store 230(r034) 232 - 234: 6(float) Load 11(inF0) - 236:235(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 234 - 237: 148(int) CompositeExtract 236 1 - Store 12(inF1) 237 - 238: 6(float) CompositeExtract 236 0 - Store 233(r035) 238 - 240: 6(float) Load 11(inF0) - 241: 6(float) Fwidth 240 - Store 239(r036) 241 - 243: 6(float) Load 11(inF0) - 244: 131(bool) IsInf 243 - Store 242(r037) 244 - 246: 6(float) Load 11(inF0) - 247: 131(bool) IsNan 246 - Store 245(r038) 247 - 249: 6(float) Load 11(inF0) - 250: 6(float) Load 12(inF1) - 251: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 249 250 - Store 248(r039) 251 - 253: 6(float) Load 11(inF0) - 254: 6(float) Load 12(inF1) - 255: 6(float) Load 13(inF2) - 256: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 253 254 255 - Store 252(r039a) 256 - 258: 6(float) Load 11(inF0) - 259: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 258 - Store 257(r040) 259 - 261: 6(float) Load 11(inF0) - 262: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 261 - 264: 6(float) FMul 262 263 - Store 260(r041) 264 - 266: 6(float) Load 11(inF0) - 267: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 266 - Store 265(r042) 267 - 269: 6(float) Load 11(inF0) - 270: 6(float) Load 12(inF1) - 271: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 269 270 - Store 268(r043) 271 - 273: 6(float) Load 11(inF0) - 274: 6(float) Load 12(inF1) - 275: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 273 274 - Store 272(r044) 275 - 277: 6(float) Load 11(inF0) - 278: 6(float) Load 12(inF1) - 279: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 277 278 - Store 276(r045) 279 - 281: 6(float) Load 11(inF0) - 282: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 281 - Store 280(r046) 282 - 285: 6(float) Load 11(inF0) - 286: 6(float) FDiv 284 285 - Store 283(r047) 286 - 289: 8(int) BitReverse 288 - Store 287(r048) 289 + 217: 148(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 187 + 218: 8(int) Bitcast 217 + Store 216(r029) 218 + 220: 148(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 187 + 221: 8(int) Bitcast 220 + Store 219(r030) 221 + 223: 6(float) Load 11(inF0) + 224: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 223 + Store 222(r031) 224 + 226: 6(float) Load 11(inF0) + 227: 6(float) Load 12(inF1) + 228: 6(float) FMod 226 227 + Store 225(r033) 228 + 230: 6(float) Load 11(inF0) + 231: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 230 + Store 229(r034) 231 + 233: 6(float) Load 11(inF0) + 235:234(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 233 + 236: 148(int) CompositeExtract 235 1 + Store 12(inF1) 236 + 237: 6(float) CompositeExtract 235 0 + Store 232(r035) 237 + 239: 6(float) Load 11(inF0) + 240: 6(float) Fwidth 239 + Store 238(r036) 240 + 242: 6(float) Load 11(inF0) + 243: 131(bool) IsInf 242 + Store 241(r037) 243 + 245: 6(float) Load 11(inF0) + 246: 131(bool) IsNan 245 + Store 244(r038) 246 + 248: 6(float) Load 11(inF0) + 249: 6(float) Load 12(inF1) + 250: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 248 249 + Store 247(r039) 250 + 252: 6(float) Load 11(inF0) + 253: 6(float) Load 12(inF1) + 254: 6(float) Load 13(inF2) + 255: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 252 253 254 + Store 251(r039a) 255 + 257: 6(float) Load 11(inF0) + 258: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 257 + Store 256(r040) 258 + 260: 6(float) Load 11(inF0) + 261: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 260 + 263: 6(float) FMul 261 262 + Store 259(r041) 263 + 265: 6(float) Load 11(inF0) + 266: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 265 + Store 264(r042) 266 + 268: 6(float) Load 11(inF0) + 269: 6(float) Load 12(inF1) + 270: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 268 269 + Store 267(r043) 270 + 272: 6(float) Load 11(inF0) + 273: 6(float) Load 12(inF1) + 274: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 272 273 + Store 271(r044) 274 + 276: 6(float) Load 11(inF0) + 277: 6(float) Load 12(inF1) + 278: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 276 277 + Store 275(r045) 278 + 280: 6(float) Load 11(inF0) + 281: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 280 + Store 279(r046) 281 + 284: 6(float) Load 11(inF0) + 285: 6(float) FDiv 283 284 + Store 282(r047) 285 + 288: 148(int) BitReverse 287 + 289: 8(int) Bitcast 288 + Store 286(r048) 289 291: 6(float) Load 11(inF0) 292: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 291 Store 290(r049) 292 @@ -6497,7 +6502,7 @@ gl_FragCoord origin is upper left 295: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 294 Store 293(r050) 295 297: 6(float) Load 11(inF0) - 298: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 297 175 284 + 298: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 297 175 283 Store 296(r051) 298 300: 6(float) Load 11(inF0) 301: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 300 @@ -6565,7 +6570,7 @@ gl_FragCoord origin is upper left 373(r012): 25(ptr) Variable Function 386(r013): 25(ptr) Variable Function 389(r015): 25(ptr) Variable Function - 392(r016): 27(ptr) Variable Function + 392(r016): 353(ptr) Variable Function 396(r017): 25(ptr) Variable Function 399(r018): 25(ptr) Variable Function 402(r019): 25(ptr) Variable Function @@ -6579,41 +6584,41 @@ gl_FragCoord origin is upper left 428(r029): 25(ptr) Variable Function 431(r030): 25(ptr) Variable Function 436(r031): 27(ptr) Variable Function - 440(r032): 27(ptr) Variable Function - 442(r033): 25(ptr) Variable Function - 445(r035): 25(ptr) Variable Function - 449(r036): 25(ptr) Variable Function - 452(r037): 25(ptr) Variable Function - 458(r038): 25(ptr) Variable Function - 462(r039): 461(ptr) Variable Function - 465(r040): 461(ptr) Variable Function - 468(r041): 25(ptr) Variable Function - 472(r039a): 25(ptr) Variable Function - 477(r042): 7(ptr) Variable Function - 480(r043): 25(ptr) Variable Function - 483(r044): 25(ptr) Variable Function - 487(r045): 25(ptr) Variable Function - 490(r046): 25(ptr) Variable Function - 494(r047): 25(ptr) Variable Function - 498(r048): 25(ptr) Variable Function - 501(r049): 25(ptr) Variable Function - 505(r050): 25(ptr) Variable Function - 508(r051): 25(ptr) Variable Function - 512(r052): 25(ptr) Variable Function - 516(r053): 25(ptr) Variable Function - 521(r054): 27(ptr) Variable Function - 525(r055): 25(ptr) Variable Function - 528(r056): 25(ptr) Variable Function - 531(r057): 25(ptr) Variable Function - 536(r058): 25(ptr) Variable Function - 539(r059): 25(ptr) Variable Function - 546(r060): 25(ptr) Variable Function - 549(r061): 25(ptr) Variable Function - 554(r062): 25(ptr) Variable Function - 557(r063): 25(ptr) Variable Function - 561(r064): 25(ptr) Variable Function - 564(r065): 25(ptr) Variable Function - 567(r066): 25(ptr) Variable Function + 441(r032): 27(ptr) Variable Function + 443(r033): 25(ptr) Variable Function + 446(r035): 25(ptr) Variable Function + 450(r036): 25(ptr) Variable Function + 453(r037): 25(ptr) Variable Function + 459(r038): 25(ptr) Variable Function + 463(r039): 462(ptr) Variable Function + 466(r040): 462(ptr) Variable Function + 469(r041): 25(ptr) Variable Function + 473(r039a): 25(ptr) Variable Function + 478(r042): 7(ptr) Variable Function + 481(r043): 25(ptr) Variable Function + 484(r044): 25(ptr) Variable Function + 488(r045): 25(ptr) Variable Function + 491(r046): 25(ptr) Variable Function + 495(r047): 25(ptr) Variable Function + 499(r048): 25(ptr) Variable Function + 502(r049): 25(ptr) Variable Function + 506(r050): 25(ptr) Variable Function + 509(r051): 25(ptr) Variable Function + 513(r052): 25(ptr) Variable Function + 517(r053): 25(ptr) Variable Function + 522(r054): 27(ptr) Variable Function + 527(r055): 25(ptr) Variable Function + 530(r056): 25(ptr) Variable Function + 533(r057): 25(ptr) Variable Function + 538(r058): 25(ptr) Variable Function + 541(r059): 25(ptr) Variable Function + 548(r060): 25(ptr) Variable Function + 551(r061): 25(ptr) Variable Function + 556(r062): 25(ptr) Variable Function + 559(r063): 25(ptr) Variable Function + 563(r064): 25(ptr) Variable Function + 566(r065): 25(ptr) Variable Function + 569(r066): 25(ptr) Variable Function 338: 24(fvec2) Load 29(inF0) 339: 131(bool) All 338 Store 337(r000) 339 @@ -6667,7 +6672,7 @@ gl_FragCoord origin is upper left 390: 24(fvec2) Load 29(inF0) 391: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 390 Store 389(r015) 391 - 395: 26(ivec2) BitCount 394 + 395: 352(ivec2) BitCount 394 Store 392(r016) 395 397: 24(fvec2) Load 29(inF0) 398: 24(fvec2) DPdx 397 @@ -6709,137 +6714,137 @@ gl_FragCoord origin is upper left 434: 24(fvec2) Load 31(inF2) 435: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 432 433 434 Store 431(r030) 435 - 439: 26(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 438 - Store 436(r031) 439 - 441: 26(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 438 - Store 440(r032) 441 - 443: 24(fvec2) Load 29(inF0) - 444: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 443 - Store 442(r033) 444 - 446: 24(fvec2) Load 29(inF0) - 447: 24(fvec2) Load 30(inF1) - 448: 24(fvec2) FMod 446 447 - Store 445(r035) 448 - 450: 24(fvec2) Load 29(inF0) - 451: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 450 - Store 449(r036) 451 - 453: 24(fvec2) Load 29(inF0) - 455:454(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 453 - 456: 352(ivec2) CompositeExtract 455 1 - Store 30(inF1) 456 - 457: 24(fvec2) CompositeExtract 455 0 - Store 452(r037) 457 - 459: 24(fvec2) Load 29(inF0) - 460: 24(fvec2) Fwidth 459 - Store 458(r038) 460 - 463: 24(fvec2) Load 29(inF0) - 464: 380(bvec2) IsInf 463 - Store 462(r039) 464 - 466: 24(fvec2) Load 29(inF0) - 467: 380(bvec2) IsNan 466 - Store 465(r040) 467 - 469: 24(fvec2) Load 29(inF0) - 470: 24(fvec2) Load 30(inF1) - 471: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 469 470 - Store 468(r041) 471 - 473: 24(fvec2) Load 29(inF0) - 474: 24(fvec2) Load 30(inF1) - 475: 24(fvec2) Load 31(inF2) - 476: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 473 474 475 - Store 472(r039a) 476 - 478: 24(fvec2) Load 29(inF0) - 479: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 478 - Store 477(r042) 479 - 481: 24(fvec2) Load 29(inF0) - 482: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 481 - Store 480(r043) 482 - 484: 24(fvec2) Load 29(inF0) - 485: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 484 - 486: 24(fvec2) VectorTimesScalar 485 263 - Store 483(r044) 486 - 488: 24(fvec2) Load 29(inF0) - 489: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 488 - Store 487(r045) 489 - 491: 24(fvec2) Load 29(inF0) - 492: 24(fvec2) Load 30(inF1) - 493: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 491 492 - Store 490(r046) 493 - 495: 24(fvec2) Load 29(inF0) - 496: 24(fvec2) Load 30(inF1) - 497: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 495 496 - Store 494(r047) 497 - 499: 24(fvec2) Load 29(inF0) - 500: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 499 - Store 498(r048) 500 - 502: 24(fvec2) Load 29(inF0) - 503: 24(fvec2) Load 30(inF1) - 504: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 502 503 - Store 501(r049) 504 - 506: 24(fvec2) Load 29(inF0) - 507: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 506 - Store 505(r050) 507 - 509: 24(fvec2) Load 29(inF0) - 510: 24(fvec2) CompositeConstruct 284 284 - 511: 24(fvec2) FDiv 510 509 - Store 508(r051) 511 - 513: 24(fvec2) Load 29(inF0) - 514: 24(fvec2) Load 30(inF1) - 515: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 513 514 - Store 512(r052) 515 - 517: 24(fvec2) Load 29(inF0) - 518: 24(fvec2) Load 30(inF1) - 520: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 517 518 519 - Store 516(r053) 520 - 524: 26(ivec2) BitReverse 523 - Store 521(r054) 524 - 526: 24(fvec2) Load 29(inF0) - 527: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 526 - Store 525(r055) 527 - 529: 24(fvec2) Load 29(inF0) - 530: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 529 - Store 528(r056) 530 - 532: 24(fvec2) Load 29(inF0) - 533: 24(fvec2) CompositeConstruct 175 175 - 534: 24(fvec2) CompositeConstruct 284 284 - 535: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 532 533 534 - Store 531(r057) 535 - 537: 24(fvec2) Load 29(inF0) - 538: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 537 - Store 536(r058) 538 - 540: 24(fvec2) Load 29(inF0) - 541: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 540 - Store 539(r059) 541 + 440: 26(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 439 + Store 436(r031) 440 + 442: 26(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 439 + Store 441(r032) 442 + 444: 24(fvec2) Load 29(inF0) + 445: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 444 + Store 443(r033) 445 + 447: 24(fvec2) Load 29(inF0) + 448: 24(fvec2) Load 30(inF1) + 449: 24(fvec2) FMod 447 448 + Store 446(r035) 449 + 451: 24(fvec2) Load 29(inF0) + 452: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 451 + Store 450(r036) 452 + 454: 24(fvec2) Load 29(inF0) + 456:455(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 454 + 457: 352(ivec2) CompositeExtract 456 1 + Store 30(inF1) 457 + 458: 24(fvec2) CompositeExtract 456 0 + Store 453(r037) 458 + 460: 24(fvec2) Load 29(inF0) + 461: 24(fvec2) Fwidth 460 + Store 459(r038) 461 + 464: 24(fvec2) Load 29(inF0) + 465: 380(bvec2) IsInf 464 + Store 463(r039) 465 + 467: 24(fvec2) Load 29(inF0) + 468: 380(bvec2) IsNan 467 + Store 466(r040) 468 + 470: 24(fvec2) Load 29(inF0) + 471: 24(fvec2) Load 30(inF1) + 472: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 470 471 + Store 469(r041) 472 + 474: 24(fvec2) Load 29(inF0) + 475: 24(fvec2) Load 30(inF1) + 476: 24(fvec2) Load 31(inF2) + 477: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 474 475 476 + Store 473(r039a) 477 + 479: 24(fvec2) Load 29(inF0) + 480: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 479 + Store 478(r042) 480 + 482: 24(fvec2) Load 29(inF0) + 483: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 482 + Store 481(r043) 483 + 485: 24(fvec2) Load 29(inF0) + 486: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 485 + 487: 24(fvec2) VectorTimesScalar 486 262 + Store 484(r044) 487 + 489: 24(fvec2) Load 29(inF0) + 490: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 489 + Store 488(r045) 490 + 492: 24(fvec2) Load 29(inF0) + 493: 24(fvec2) Load 30(inF1) + 494: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 492 493 + Store 491(r046) 494 + 496: 24(fvec2) Load 29(inF0) + 497: 24(fvec2) Load 30(inF1) + 498: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 496 497 + Store 495(r047) 498 + 500: 24(fvec2) Load 29(inF0) + 501: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 500 + Store 499(r048) 501 + 503: 24(fvec2) Load 29(inF0) + 504: 24(fvec2) Load 30(inF1) + 505: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 503 504 + Store 502(r049) 505 + 507: 24(fvec2) Load 29(inF0) + 508: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 507 + Store 506(r050) 508 + 510: 24(fvec2) Load 29(inF0) + 511: 24(fvec2) CompositeConstruct 283 283 + 512: 24(fvec2) FDiv 511 510 + Store 509(r051) 512 + 514: 24(fvec2) Load 29(inF0) + 515: 24(fvec2) Load 30(inF1) + 516: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 514 515 + Store 513(r052) 516 + 518: 24(fvec2) Load 29(inF0) + 519: 24(fvec2) Load 30(inF1) + 521: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 518 519 520 + Store 517(r053) 521 + 526: 26(ivec2) BitReverse 525 + Store 522(r054) 526 + 528: 24(fvec2) Load 29(inF0) + 529: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 528 + Store 527(r055) 529 + 531: 24(fvec2) Load 29(inF0) + 532: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 531 + Store 530(r056) 532 + 534: 24(fvec2) Load 29(inF0) + 535: 24(fvec2) CompositeConstruct 175 175 + 536: 24(fvec2) CompositeConstruct 283 283 + 537: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 534 535 536 + Store 533(r057) 537 + 539: 24(fvec2) Load 29(inF0) + 540: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 539 + Store 538(r058) 540 542: 24(fvec2) Load 29(inF0) 543: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 542 - Store 30(inF1) 543 + Store 541(r059) 543 544: 24(fvec2) Load 29(inF0) - 545: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 544 - Store 31(inF2) 545 - 547: 24(fvec2) Load 29(inF0) - 548: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 547 - Store 546(r060) 548 - 550: 24(fvec2) Load 29(inF0) - 551: 24(fvec2) Load 30(inF1) - 552: 24(fvec2) Load 31(inF2) - 553: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 550 551 552 - Store 549(r061) 553 - 555: 24(fvec2) Load 29(inF0) - 556: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 555 - Store 554(r062) 556 - 558: 24(fvec2) Load 29(inF0) - 559: 24(fvec2) Load 30(inF1) - 560: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 558 559 - Store 557(r063) 560 - 562: 24(fvec2) Load 29(inF0) - 563: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 562 - Store 561(r064) 563 - 565: 24(fvec2) Load 29(inF0) - 566: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 565 - Store 564(r065) 566 - 568: 24(fvec2) Load 29(inF0) - 569: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 568 - Store 567(r066) 569 - ReturnValue 570 + 545: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 544 + Store 30(inF1) 545 + 546: 24(fvec2) Load 29(inF0) + 547: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 546 + Store 31(inF2) 547 + 549: 24(fvec2) Load 29(inF0) + 550: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 549 + Store 548(r060) 550 + 552: 24(fvec2) Load 29(inF0) + 553: 24(fvec2) Load 30(inF1) + 554: 24(fvec2) Load 31(inF2) + 555: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 552 553 554 + Store 551(r061) 555 + 557: 24(fvec2) Load 29(inF0) + 558: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 557 + Store 556(r062) 558 + 560: 24(fvec2) Load 29(inF0) + 561: 24(fvec2) Load 30(inF1) + 562: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 560 561 + Store 559(r063) 562 + 564: 24(fvec2) Load 29(inF0) + 565: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 564 + Store 563(r064) 565 + 567: 24(fvec2) Load 29(inF0) + 568: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 567 + Store 566(r065) 568 + 570: 24(fvec2) Load 29(inF0) + 571: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 570 + Store 569(r066) 571 + ReturnValue 572 FunctionEnd 46(PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40 41(inF0): 37(ptr) FunctionParameter @@ -6848,306 +6853,306 @@ gl_FragCoord origin is upper left 44(inU0): 39(ptr) FunctionParameter 45(inU1): 39(ptr) FunctionParameter 47: Label - 573(r000): 132(ptr) Variable Function - 576(r001): 37(ptr) Variable Function - 579(r002): 37(ptr) Variable Function - 582(r003): 132(ptr) Variable Function - 585(r004): 37(ptr) Variable Function - 590(r005): 589(ptr) Variable Function - 593(r006): 39(ptr) Variable Function - 596(r007): 37(ptr) Variable Function - 599(r009): 37(ptr) Variable Function - 602(r010): 37(ptr) Variable Function - 606(r011): 37(ptr) Variable Function - 609(r012): 37(ptr) Variable Function - 622(r013): 37(ptr) Variable Function - 625(r014): 37(ptr) Variable Function - 628(r015): 39(ptr) Variable Function - 632(r016): 37(ptr) Variable Function - 636(r017): 37(ptr) Variable Function - 639(r018): 37(ptr) Variable Function - 642(r019): 37(ptr) Variable Function - 645(r020): 37(ptr) Variable Function - 648(r021): 37(ptr) Variable Function - 651(r022): 37(ptr) Variable Function - 654(r023): 37(ptr) Variable Function - 657(r024): 7(ptr) Variable Function - 661(r025): 7(ptr) Variable Function - 665(r029): 37(ptr) Variable Function - 668(r030): 37(ptr) Variable Function - 671(r031): 37(ptr) Variable Function - 676(r032): 39(ptr) Variable Function - 680(r033): 39(ptr) Variable Function - 682(r034): 37(ptr) Variable Function - 685(r036): 37(ptr) Variable Function - 689(r037): 37(ptr) Variable Function - 692(r038): 37(ptr) Variable Function - 698(r039): 37(ptr) Variable Function - 702(r040): 701(ptr) Variable Function - 705(r041): 701(ptr) Variable Function - 708(r042): 37(ptr) Variable Function - 712(r039a): 37(ptr) Variable Function - 717(r039b): 37(ptr) Variable Function - 723(r043): 7(ptr) Variable Function - 726(r044): 37(ptr) Variable Function - 729(r045): 37(ptr) Variable Function - 733(r046): 37(ptr) Variable Function - 736(r047): 37(ptr) Variable Function - 740(r048): 37(ptr) Variable Function - 744(r049): 37(ptr) Variable Function - 747(r050): 37(ptr) Variable Function - 751(r051): 37(ptr) Variable Function - 754(r052): 37(ptr) Variable Function - 758(r053): 37(ptr) Variable Function - 762(r054): 37(ptr) Variable Function - 766(r055): 39(ptr) Variable Function - 769(r056): 37(ptr) Variable Function - 772(r057): 37(ptr) Variable Function - 775(r058): 37(ptr) Variable Function - 780(r059): 37(ptr) Variable Function - 783(r060): 37(ptr) Variable Function - 790(r061): 37(ptr) Variable Function - 793(r062): 37(ptr) Variable Function - 798(r063): 37(ptr) Variable Function - 801(r064): 37(ptr) Variable Function - 805(r065): 37(ptr) Variable Function - 808(r066): 37(ptr) Variable Function - 811(r067): 37(ptr) Variable Function - 574: 36(fvec3) Load 41(inF0) - 575: 131(bool) All 574 - Store 573(r000) 575 - 577: 36(fvec3) Load 41(inF0) - 578: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 577 - Store 576(r001) 578 - 580: 36(fvec3) Load 41(inF0) - 581: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 580 - Store 579(r002) 581 - 583: 36(fvec3) Load 41(inF0) - 584: 131(bool) Any 583 - Store 582(r003) 584 - 586: 36(fvec3) Load 41(inF0) - 587: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 586 - Store 585(r004) 587 - 591: 36(fvec3) Load 41(inF0) - 592: 588(ivec3) Bitcast 591 - Store 590(r005) 592 - 594: 36(fvec3) Load 41(inF0) - 595: 38(ivec3) Bitcast 594 - Store 593(r006) 595 - 597: 38(ivec3) Load 44(inU0) - 598: 36(fvec3) Bitcast 597 - Store 596(r007) 598 - 600: 36(fvec3) Load 41(inF0) - 601: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 600 - Store 599(r009) 601 - 603: 36(fvec3) Load 41(inF0) - 604: 36(fvec3) Load 42(inF1) - 605: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 603 604 - Store 602(r010) 605 - 607: 36(fvec3) Load 41(inF0) - 608: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 607 - Store 606(r011) 608 - 610: 36(fvec3) Load 41(inF0) - 611: 36(fvec3) Load 42(inF1) - 612: 36(fvec3) Load 43(inF2) - 613: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 610 611 612 - Store 609(r012) 613 - 614: 36(fvec3) Load 41(inF0) - 617: 616(bvec3) FOrdLessThan 614 615 - 618: 131(bool) Any 617 - SelectionMerge 620 None - BranchConditional 618 619 620 - 619: Label + 575(r000): 132(ptr) Variable Function + 578(r001): 37(ptr) Variable Function + 581(r002): 37(ptr) Variable Function + 584(r003): 132(ptr) Variable Function + 587(r004): 37(ptr) Variable Function + 592(r005): 591(ptr) Variable Function + 595(r006): 39(ptr) Variable Function + 598(r007): 37(ptr) Variable Function + 601(r009): 37(ptr) Variable Function + 604(r010): 37(ptr) Variable Function + 608(r011): 37(ptr) Variable Function + 611(r012): 37(ptr) Variable Function + 624(r013): 37(ptr) Variable Function + 627(r014): 37(ptr) Variable Function + 630(r015): 39(ptr) Variable Function + 635(r016): 37(ptr) Variable Function + 639(r017): 37(ptr) Variable Function + 642(r018): 37(ptr) Variable Function + 645(r019): 37(ptr) Variable Function + 648(r020): 37(ptr) Variable Function + 651(r021): 37(ptr) Variable Function + 654(r022): 37(ptr) Variable Function + 657(r023): 37(ptr) Variable Function + 660(r024): 7(ptr) Variable Function + 664(r025): 7(ptr) Variable Function + 668(r029): 37(ptr) Variable Function + 671(r030): 37(ptr) Variable Function + 674(r031): 37(ptr) Variable Function + 679(r032): 39(ptr) Variable Function + 683(r033): 39(ptr) Variable Function + 685(r034): 37(ptr) Variable Function + 688(r036): 37(ptr) Variable Function + 692(r037): 37(ptr) Variable Function + 695(r038): 37(ptr) Variable Function + 701(r039): 37(ptr) Variable Function + 705(r040): 704(ptr) Variable Function + 708(r041): 704(ptr) Variable Function + 711(r042): 37(ptr) Variable Function + 715(r039a): 37(ptr) Variable Function + 720(r039b): 37(ptr) Variable Function + 726(r043): 7(ptr) Variable Function + 729(r044): 37(ptr) Variable Function + 732(r045): 37(ptr) Variable Function + 736(r046): 37(ptr) Variable Function + 739(r047): 37(ptr) Variable Function + 743(r048): 37(ptr) Variable Function + 747(r049): 37(ptr) Variable Function + 750(r050): 37(ptr) Variable Function + 754(r051): 37(ptr) Variable Function + 757(r052): 37(ptr) Variable Function + 761(r053): 37(ptr) Variable Function + 765(r054): 37(ptr) Variable Function + 769(r055): 39(ptr) Variable Function + 772(r056): 37(ptr) Variable Function + 775(r057): 37(ptr) Variable Function + 778(r058): 37(ptr) Variable Function + 783(r059): 37(ptr) Variable Function + 786(r060): 37(ptr) Variable Function + 793(r061): 37(ptr) Variable Function + 796(r062): 37(ptr) Variable Function + 801(r063): 37(ptr) Variable Function + 804(r064): 37(ptr) Variable Function + 808(r065): 37(ptr) Variable Function + 811(r066): 37(ptr) Variable Function + 814(r067): 37(ptr) Variable Function + 576: 36(fvec3) Load 41(inF0) + 577: 131(bool) All 576 + Store 575(r000) 577 + 579: 36(fvec3) Load 41(inF0) + 580: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 579 + Store 578(r001) 580 + 582: 36(fvec3) Load 41(inF0) + 583: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 582 + Store 581(r002) 583 + 585: 36(fvec3) Load 41(inF0) + 586: 131(bool) Any 585 + Store 584(r003) 586 + 588: 36(fvec3) Load 41(inF0) + 589: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 588 + Store 587(r004) 589 + 593: 36(fvec3) Load 41(inF0) + 594: 590(ivec3) Bitcast 593 + Store 592(r005) 594 + 596: 36(fvec3) Load 41(inF0) + 597: 38(ivec3) Bitcast 596 + Store 595(r006) 597 + 599: 38(ivec3) Load 44(inU0) + 600: 36(fvec3) Bitcast 599 + Store 598(r007) 600 + 602: 36(fvec3) Load 41(inF0) + 603: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 602 + Store 601(r009) 603 + 605: 36(fvec3) Load 41(inF0) + 606: 36(fvec3) Load 42(inF1) + 607: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 605 606 + Store 604(r010) 607 + 609: 36(fvec3) Load 41(inF0) + 610: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 609 + Store 608(r011) 610 + 612: 36(fvec3) Load 41(inF0) + 613: 36(fvec3) Load 42(inF1) + 614: 36(fvec3) Load 43(inF2) + 615: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 612 613 614 + Store 611(r012) 615 + 616: 36(fvec3) Load 41(inF0) + 619: 618(bvec3) FOrdLessThan 616 617 + 620: 131(bool) Any 619 + SelectionMerge 622 None + BranchConditional 620 621 622 + 621: Label Kill - 620: Label - 623: 36(fvec3) Load 41(inF0) - 624: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 623 - Store 622(r013) 624 - 626: 36(fvec3) Load 41(inF0) - 627: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 626 - Store 625(r014) 627 - 631: 38(ivec3) BitCount 630 - Store 628(r015) 631 - 633: 36(fvec3) Load 41(inF0) - 634: 36(fvec3) Load 42(inF1) - 635: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 633 634 - Store 632(r016) 635 - 637: 36(fvec3) Load 41(inF0) - 638: 36(fvec3) DPdx 637 - Store 636(r017) 638 + 622: Label + 625: 36(fvec3) Load 41(inF0) + 626: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 625 + Store 624(r013) 626 + 628: 36(fvec3) Load 41(inF0) + 629: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 628 + Store 627(r014) 629 + 634: 38(ivec3) BitCount 633 + Store 630(r015) 634 + 636: 36(fvec3) Load 41(inF0) + 637: 36(fvec3) Load 42(inF1) + 638: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 636 637 + Store 635(r016) 638 640: 36(fvec3) Load 41(inF0) - 641: 36(fvec3) DPdxCoarse 640 - Store 639(r018) 641 + 641: 36(fvec3) DPdx 640 + Store 639(r017) 641 643: 36(fvec3) Load 41(inF0) - 644: 36(fvec3) DPdxFine 643 - Store 642(r019) 644 + 644: 36(fvec3) DPdxCoarse 643 + Store 642(r018) 644 646: 36(fvec3) Load 41(inF0) - 647: 36(fvec3) DPdy 646 - Store 645(r020) 647 + 647: 36(fvec3) DPdxFine 646 + Store 645(r019) 647 649: 36(fvec3) Load 41(inF0) - 650: 36(fvec3) DPdyCoarse 649 - Store 648(r021) 650 + 650: 36(fvec3) DPdy 649 + Store 648(r020) 650 652: 36(fvec3) Load 41(inF0) - 653: 36(fvec3) DPdyFine 652 - Store 651(r022) 653 + 653: 36(fvec3) DPdyCoarse 652 + Store 651(r021) 653 655: 36(fvec3) Load 41(inF0) - 656: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 655 - Store 654(r023) 656 + 656: 36(fvec3) DPdyFine 655 + Store 654(r022) 656 658: 36(fvec3) Load 41(inF0) - 659: 36(fvec3) Load 42(inF1) - 660: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 658 659 - Store 657(r024) 660 - 662: 36(fvec3) Load 41(inF0) - 663: 36(fvec3) Load 42(inF1) - 664: 6(float) Dot 662 663 - Store 661(r025) 664 - 666: 36(fvec3) Load 41(inF0) - 667: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 666 - Store 665(r029) 667 + 659: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 658 + Store 657(r023) 659 + 661: 36(fvec3) Load 41(inF0) + 662: 36(fvec3) Load 42(inF1) + 663: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 661 662 + Store 660(r024) 663 + 665: 36(fvec3) Load 41(inF0) + 666: 36(fvec3) Load 42(inF1) + 667: 6(float) Dot 665 666 + Store 664(r025) 667 669: 36(fvec3) Load 41(inF0) - 670: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 669 - Store 668(r030) 670 + 670: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 669 + Store 668(r029) 670 672: 36(fvec3) Load 41(inF0) - 673: 36(fvec3) Load 42(inF1) - 674: 36(fvec3) Load 43(inF2) - 675: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 672 673 674 - Store 671(r031) 675 - 679: 38(ivec3) ExtInst 1(GLSL.std.450) 75(FindUMsb) 678 - Store 676(r032) 679 - 681: 38(ivec3) ExtInst 1(GLSL.std.450) 73(FindILsb) 678 - Store 680(r033) 681 - 683: 36(fvec3) Load 41(inF0) - 684: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 683 - Store 682(r034) 684 + 673: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 672 + Store 671(r030) 673 + 675: 36(fvec3) Load 41(inF0) + 676: 36(fvec3) Load 42(inF1) + 677: 36(fvec3) Load 43(inF2) + 678: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 675 676 677 + Store 674(r031) 678 + 682: 38(ivec3) ExtInst 1(GLSL.std.450) 75(FindUMsb) 681 + Store 679(r032) 682 + 684: 38(ivec3) ExtInst 1(GLSL.std.450) 73(FindILsb) 681 + Store 683(r033) 684 686: 36(fvec3) Load 41(inF0) - 687: 36(fvec3) Load 42(inF1) - 688: 36(fvec3) FMod 686 687 - Store 685(r036) 688 - 690: 36(fvec3) Load 41(inF0) - 691: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 690 - Store 689(r037) 691 + 687: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 686 + Store 685(r034) 687 + 689: 36(fvec3) Load 41(inF0) + 690: 36(fvec3) Load 42(inF1) + 691: 36(fvec3) FMod 689 690 + Store 688(r036) 691 693: 36(fvec3) Load 41(inF0) - 695:694(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 693 - 696: 588(ivec3) CompositeExtract 695 1 - Store 42(inF1) 696 - 697: 36(fvec3) CompositeExtract 695 0 - Store 692(r038) 697 - 699: 36(fvec3) Load 41(inF0) - 700: 36(fvec3) Fwidth 699 - Store 698(r039) 700 - 703: 36(fvec3) Load 41(inF0) - 704: 616(bvec3) IsInf 703 - Store 702(r040) 704 + 694: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 693 + Store 692(r037) 694 + 696: 36(fvec3) Load 41(inF0) + 698:697(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 696 + 699: 590(ivec3) CompositeExtract 698 1 + Store 42(inF1) 699 + 700: 36(fvec3) CompositeExtract 698 0 + Store 695(r038) 700 + 702: 36(fvec3) Load 41(inF0) + 703: 36(fvec3) Fwidth 702 + Store 701(r039) 703 706: 36(fvec3) Load 41(inF0) - 707: 616(bvec3) IsNan 706 - Store 705(r041) 707 + 707: 618(bvec3) IsInf 706 + Store 705(r040) 707 709: 36(fvec3) Load 41(inF0) - 710: 36(fvec3) Load 42(inF1) - 711: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 709 710 - Store 708(r042) 711 - 713: 36(fvec3) Load 41(inF0) - 714: 36(fvec3) Load 42(inF1) - 715: 36(fvec3) Load 43(inF2) - 716: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 713 714 715 - Store 712(r039a) 716 - 718: 36(fvec3) Load 41(inF0) - 719: 36(fvec3) Load 42(inF1) - 721: 36(fvec3) CompositeConstruct 720 720 720 - 722: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 718 719 721 - Store 717(r039b) 722 - 724: 36(fvec3) Load 41(inF0) - 725: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 724 - Store 723(r043) 725 + 710: 618(bvec3) IsNan 709 + Store 708(r041) 710 + 712: 36(fvec3) Load 41(inF0) + 713: 36(fvec3) Load 42(inF1) + 714: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 712 713 + Store 711(r042) 714 + 716: 36(fvec3) Load 41(inF0) + 717: 36(fvec3) Load 42(inF1) + 718: 36(fvec3) Load 43(inF2) + 719: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 716 717 718 + Store 715(r039a) 719 + 721: 36(fvec3) Load 41(inF0) + 722: 36(fvec3) Load 42(inF1) + 724: 36(fvec3) CompositeConstruct 723 723 723 + 725: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 721 722 724 + Store 720(r039b) 725 727: 36(fvec3) Load 41(inF0) - 728: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 727 - Store 726(r044) 728 + 728: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 727 + Store 726(r043) 728 730: 36(fvec3) Load 41(inF0) - 731: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 730 - 732: 36(fvec3) VectorTimesScalar 731 263 - Store 729(r045) 732 - 734: 36(fvec3) Load 41(inF0) - 735: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 734 - Store 733(r046) 735 + 731: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 730 + Store 729(r044) 731 + 733: 36(fvec3) Load 41(inF0) + 734: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 733 + 735: 36(fvec3) VectorTimesScalar 734 262 + Store 732(r045) 735 737: 36(fvec3) Load 41(inF0) - 738: 36(fvec3) Load 42(inF1) - 739: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 737 738 - Store 736(r047) 739 - 741: 36(fvec3) Load 41(inF0) - 742: 36(fvec3) Load 42(inF1) - 743: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 741 742 - Store 740(r048) 743 - 745: 36(fvec3) Load 41(inF0) - 746: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 745 - Store 744(r049) 746 + 738: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 737 + Store 736(r046) 738 + 740: 36(fvec3) Load 41(inF0) + 741: 36(fvec3) Load 42(inF1) + 742: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 740 741 + Store 739(r047) 742 + 744: 36(fvec3) Load 41(inF0) + 745: 36(fvec3) Load 42(inF1) + 746: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 744 745 + Store 743(r048) 746 748: 36(fvec3) Load 41(inF0) - 749: 36(fvec3) Load 42(inF1) - 750: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 748 749 - Store 747(r050) 750 - 752: 36(fvec3) Load 41(inF0) - 753: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 752 - Store 751(r051) 753 + 749: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 748 + Store 747(r049) 749 + 751: 36(fvec3) Load 41(inF0) + 752: 36(fvec3) Load 42(inF1) + 753: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 751 752 + Store 750(r050) 753 755: 36(fvec3) Load 41(inF0) - 756: 36(fvec3) CompositeConstruct 284 284 284 - 757: 36(fvec3) FDiv 756 755 - Store 754(r052) 757 - 759: 36(fvec3) Load 41(inF0) - 760: 36(fvec3) Load 42(inF1) - 761: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 759 760 - Store 758(r053) 761 - 763: 36(fvec3) Load 41(inF0) - 764: 36(fvec3) Load 42(inF1) - 765: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 763 764 519 - Store 762(r054) 765 - 768: 38(ivec3) BitReverse 767 - Store 766(r055) 768 - 770: 36(fvec3) Load 41(inF0) - 771: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 770 - Store 769(r056) 771 + 756: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 755 + Store 754(r051) 756 + 758: 36(fvec3) Load 41(inF0) + 759: 36(fvec3) CompositeConstruct 283 283 283 + 760: 36(fvec3) FDiv 759 758 + Store 757(r052) 760 + 762: 36(fvec3) Load 41(inF0) + 763: 36(fvec3) Load 42(inF1) + 764: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 762 763 + Store 761(r053) 764 + 766: 36(fvec3) Load 41(inF0) + 767: 36(fvec3) Load 42(inF1) + 768: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 766 767 520 + Store 765(r054) 768 + 771: 38(ivec3) BitReverse 770 + Store 769(r055) 771 773: 36(fvec3) Load 41(inF0) - 774: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 773 - Store 772(r057) 774 + 774: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 773 + Store 772(r056) 774 776: 36(fvec3) Load 41(inF0) - 777: 36(fvec3) CompositeConstruct 175 175 175 - 778: 36(fvec3) CompositeConstruct 284 284 284 - 779: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 776 777 778 - Store 775(r058) 779 - 781: 36(fvec3) Load 41(inF0) - 782: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 781 - Store 780(r059) 782 + 777: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 776 + Store 775(r057) 777 + 779: 36(fvec3) Load 41(inF0) + 780: 36(fvec3) CompositeConstruct 175 175 175 + 781: 36(fvec3) CompositeConstruct 283 283 283 + 782: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 779 780 781 + Store 778(r058) 782 784: 36(fvec3) Load 41(inF0) - 785: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 784 - Store 783(r060) 785 - 786: 36(fvec3) Load 41(inF0) - 787: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 786 - Store 42(inF1) 787 - 788: 36(fvec3) Load 41(inF0) - 789: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 788 - Store 43(inF2) 789 + 785: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 784 + Store 783(r059) 785 + 787: 36(fvec3) Load 41(inF0) + 788: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 787 + Store 786(r060) 788 + 789: 36(fvec3) Load 41(inF0) + 790: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 789 + Store 42(inF1) 790 791: 36(fvec3) Load 41(inF0) - 792: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 791 - Store 790(r061) 792 + 792: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 791 + Store 43(inF2) 792 794: 36(fvec3) Load 41(inF0) - 795: 36(fvec3) Load 42(inF1) - 796: 36(fvec3) Load 43(inF2) - 797: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 794 795 796 - Store 793(r062) 797 - 799: 36(fvec3) Load 41(inF0) - 800: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 799 - Store 798(r063) 800 + 795: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 794 + Store 793(r061) 795 + 797: 36(fvec3) Load 41(inF0) + 798: 36(fvec3) Load 42(inF1) + 799: 36(fvec3) Load 43(inF2) + 800: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 797 798 799 + Store 796(r062) 800 802: 36(fvec3) Load 41(inF0) - 803: 36(fvec3) Load 42(inF1) - 804: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 802 803 - Store 801(r064) 804 - 806: 36(fvec3) Load 41(inF0) - 807: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 806 - Store 805(r065) 807 + 803: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 802 + Store 801(r063) 803 + 805: 36(fvec3) Load 41(inF0) + 806: 36(fvec3) Load 42(inF1) + 807: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 805 806 + Store 804(r064) 807 809: 36(fvec3) Load 41(inF0) - 810: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 809 - Store 808(r066) 810 + 810: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 809 + Store 808(r065) 810 812: 36(fvec3) Load 41(inF0) - 813: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 812 - Store 811(r067) 813 - ReturnValue 815 + 813: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 812 + Store 811(r066) 813 + 815: 36(fvec3) Load 41(inF0) + 816: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 815 + Store 814(r067) 816 + ReturnValue 818 FunctionEnd 58(PixelShaderFunction(vf4;vf4;vf4;vu4;vu4;): 48(fvec4) Function None 52 53(inF0): 49(ptr) FunctionParameter @@ -7156,1018 +7161,1018 @@ gl_FragCoord origin is upper left 56(inU0): 51(ptr) FunctionParameter 57(inU1): 51(ptr) FunctionParameter 59: Label - 818(r000): 132(ptr) Variable Function - 821(r001): 49(ptr) Variable Function - 824(r002): 49(ptr) Variable Function - 827(r003): 132(ptr) Variable Function - 830(r004): 49(ptr) Variable Function - 835(r005): 834(ptr) Variable Function - 838(r006): 51(ptr) Variable Function - 841(r007): 49(ptr) Variable Function - 844(r009): 49(ptr) Variable Function - 847(r010): 49(ptr) Variable Function - 851(r011): 49(ptr) Variable Function - 854(r012): 49(ptr) Variable Function - 867(r013): 49(ptr) Variable Function - 870(r014): 49(ptr) Variable Function - 873(r015): 51(ptr) Variable Function - 876(r016): 49(ptr) Variable Function - 879(r017): 49(ptr) Variable Function - 882(r018): 49(ptr) Variable Function - 885(r019): 49(ptr) Variable Function - 888(r020): 49(ptr) Variable Function - 891(r021): 49(ptr) Variable Function - 894(r022): 49(ptr) Variable Function - 897(r023): 7(ptr) Variable Function - 901(r024): 7(ptr) Variable Function - 905(r025): 49(ptr) Variable Function - 916(r029): 49(ptr) Variable Function - 919(r030): 49(ptr) Variable Function - 922(r031): 49(ptr) Variable Function - 927(r032): 51(ptr) Variable Function - 932(r033): 51(ptr) Variable Function - 934(r034): 49(ptr) Variable Function - 937(r036): 49(ptr) Variable Function - 941(r037): 49(ptr) Variable Function - 944(r038): 49(ptr) Variable Function - 950(r039): 49(ptr) Variable Function - 954(r040): 953(ptr) Variable Function - 957(r041): 953(ptr) Variable Function - 960(r042): 49(ptr) Variable Function - 964(r039a): 49(ptr) Variable Function - 969(r043): 7(ptr) Variable Function - 972(r044): 49(ptr) Variable Function - 975(r045): 49(ptr) Variable Function - 979(r046): 49(ptr) Variable Function - 982(r047): 49(ptr) Variable Function - 986(r048): 49(ptr) Variable Function - 990(r049): 49(ptr) Variable Function - 993(r050): 49(ptr) Variable Function - 997(r051): 49(ptr) Variable Function - 1000(r052): 49(ptr) Variable Function - 1004(r053): 49(ptr) Variable Function - 1008(r054): 49(ptr) Variable Function - 1012(r055): 51(ptr) Variable Function - 1015(r056): 49(ptr) Variable Function - 1018(r057): 49(ptr) Variable Function - 1021(r058): 49(ptr) Variable Function - 1026(r059): 49(ptr) Variable Function - 1029(r060): 49(ptr) Variable Function - 1036(r061): 49(ptr) Variable Function - 1039(r062): 49(ptr) Variable Function - 1044(r063): 49(ptr) Variable Function - 1047(r064): 49(ptr) Variable Function - 1051(r065): 49(ptr) Variable Function - 1054(r066): 49(ptr) Variable Function - 1057(r067): 49(ptr) Variable Function - 819: 48(fvec4) Load 53(inF0) - 820: 131(bool) All 819 - Store 818(r000) 820 + 821(r000): 132(ptr) Variable Function + 824(r001): 49(ptr) Variable Function + 827(r002): 49(ptr) Variable Function + 830(r003): 132(ptr) Variable Function + 833(r004): 49(ptr) Variable Function + 838(r005): 837(ptr) Variable Function + 841(r006): 51(ptr) Variable Function + 844(r007): 49(ptr) Variable Function + 847(r009): 49(ptr) Variable Function + 850(r010): 49(ptr) Variable Function + 854(r011): 49(ptr) Variable Function + 857(r012): 49(ptr) Variable Function + 870(r013): 49(ptr) Variable Function + 873(r014): 49(ptr) Variable Function + 876(r015): 51(ptr) Variable Function + 879(r016): 49(ptr) Variable Function + 882(r017): 49(ptr) Variable Function + 885(r018): 49(ptr) Variable Function + 888(r019): 49(ptr) Variable Function + 891(r020): 49(ptr) Variable Function + 894(r021): 49(ptr) Variable Function + 897(r022): 49(ptr) Variable Function + 900(r023): 7(ptr) Variable Function + 904(r024): 7(ptr) Variable Function + 908(r025): 49(ptr) Variable Function + 919(r029): 49(ptr) Variable Function + 922(r030): 49(ptr) Variable Function + 925(r031): 49(ptr) Variable Function + 930(r032): 51(ptr) Variable Function + 935(r033): 51(ptr) Variable Function + 937(r034): 49(ptr) Variable Function + 940(r036): 49(ptr) Variable Function + 944(r037): 49(ptr) Variable Function + 947(r038): 49(ptr) Variable Function + 953(r039): 49(ptr) Variable Function + 957(r040): 956(ptr) Variable Function + 960(r041): 956(ptr) Variable Function + 963(r042): 49(ptr) Variable Function + 967(r039a): 49(ptr) Variable Function + 972(r043): 7(ptr) Variable Function + 975(r044): 49(ptr) Variable Function + 978(r045): 49(ptr) Variable Function + 982(r046): 49(ptr) Variable Function + 985(r047): 49(ptr) Variable Function + 989(r048): 49(ptr) Variable Function + 993(r049): 49(ptr) Variable Function + 996(r050): 49(ptr) Variable Function + 1000(r051): 49(ptr) Variable Function + 1003(r052): 49(ptr) Variable Function + 1007(r053): 49(ptr) Variable Function + 1011(r054): 49(ptr) Variable Function + 1015(r055): 51(ptr) Variable Function + 1018(r056): 49(ptr) Variable Function + 1021(r057): 49(ptr) Variable Function + 1024(r058): 49(ptr) Variable Function + 1029(r059): 49(ptr) Variable Function + 1032(r060): 49(ptr) Variable Function + 1039(r061): 49(ptr) Variable Function + 1042(r062): 49(ptr) Variable Function + 1047(r063): 49(ptr) Variable Function + 1050(r064): 49(ptr) Variable Function + 1054(r065): 49(ptr) Variable Function + 1057(r066): 49(ptr) Variable Function + 1060(r067): 49(ptr) Variable Function 822: 48(fvec4) Load 53(inF0) - 823: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 822 - Store 821(r001) 823 + 823: 131(bool) All 822 + Store 821(r000) 823 825: 48(fvec4) Load 53(inF0) - 826: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 825 - Store 824(r002) 826 + 826: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 825 + Store 824(r001) 826 828: 48(fvec4) Load 53(inF0) - 829: 131(bool) Any 828 - Store 827(r003) 829 + 829: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 828 + Store 827(r002) 829 831: 48(fvec4) Load 53(inF0) - 832: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 831 - Store 830(r004) 832 - 836: 48(fvec4) Load 53(inF0) - 837: 833(ivec4) Bitcast 836 - Store 835(r005) 837 + 832: 131(bool) Any 831 + Store 830(r003) 832 + 834: 48(fvec4) Load 53(inF0) + 835: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 834 + Store 833(r004) 835 839: 48(fvec4) Load 53(inF0) - 840: 50(ivec4) Bitcast 839 - Store 838(r006) 840 - 842: 50(ivec4) Load 56(inU0) - 843: 48(fvec4) Bitcast 842 - Store 841(r007) 843 - 845: 48(fvec4) Load 53(inF0) - 846: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 845 - Store 844(r009) 846 + 840: 836(ivec4) Bitcast 839 + Store 838(r005) 840 + 842: 48(fvec4) Load 53(inF0) + 843: 50(ivec4) Bitcast 842 + Store 841(r006) 843 + 845: 50(ivec4) Load 56(inU0) + 846: 48(fvec4) Bitcast 845 + Store 844(r007) 846 848: 48(fvec4) Load 53(inF0) - 849: 48(fvec4) Load 54(inF1) - 850: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 848 849 - Store 847(r010) 850 - 852: 48(fvec4) Load 53(inF0) - 853: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 852 - Store 851(r011) 853 + 849: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 848 + Store 847(r009) 849 + 851: 48(fvec4) Load 53(inF0) + 852: 48(fvec4) Load 54(inF1) + 853: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 851 852 + Store 850(r010) 853 855: 48(fvec4) Load 53(inF0) - 856: 48(fvec4) Load 54(inF1) - 857: 48(fvec4) Load 55(inF2) - 858: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 855 856 857 - Store 854(r012) 858 - 859: 48(fvec4) Load 53(inF0) - 862: 861(bvec4) FOrdLessThan 859 860 - 863: 131(bool) Any 862 - SelectionMerge 865 None - BranchConditional 863 864 865 - 864: Label + 856: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 855 + Store 854(r011) 856 + 858: 48(fvec4) Load 53(inF0) + 859: 48(fvec4) Load 54(inF1) + 860: 48(fvec4) Load 55(inF2) + 861: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 858 859 860 + Store 857(r012) 861 + 862: 48(fvec4) Load 53(inF0) + 865: 864(bvec4) FOrdLessThan 862 863 + 866: 131(bool) Any 865 + SelectionMerge 868 None + BranchConditional 866 867 868 + 867: Label Kill - 865: Label - 868: 48(fvec4) Load 53(inF0) - 869: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 868 - Store 867(r013) 869 + 868: Label 871: 48(fvec4) Load 53(inF0) - 872: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 871 - Store 870(r014) 872 - 875: 50(ivec4) BitCount 874 - Store 873(r015) 875 - 877: 48(fvec4) Load 53(inF0) - 878: 48(fvec4) DPdx 877 - Store 876(r016) 878 + 872: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 871 + Store 870(r013) 872 + 874: 48(fvec4) Load 53(inF0) + 875: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 874 + Store 873(r014) 875 + 878: 50(ivec4) BitCount 877 + Store 876(r015) 878 880: 48(fvec4) Load 53(inF0) - 881: 48(fvec4) DPdxCoarse 880 - Store 879(r017) 881 + 881: 48(fvec4) DPdx 880 + Store 879(r016) 881 883: 48(fvec4) Load 53(inF0) - 884: 48(fvec4) DPdxFine 883 - Store 882(r018) 884 + 884: 48(fvec4) DPdxCoarse 883 + Store 882(r017) 884 886: 48(fvec4) Load 53(inF0) - 887: 48(fvec4) DPdy 886 - Store 885(r019) 887 + 887: 48(fvec4) DPdxFine 886 + Store 885(r018) 887 889: 48(fvec4) Load 53(inF0) - 890: 48(fvec4) DPdyCoarse 889 - Store 888(r020) 890 + 890: 48(fvec4) DPdy 889 + Store 888(r019) 890 892: 48(fvec4) Load 53(inF0) - 893: 48(fvec4) DPdyFine 892 - Store 891(r021) 893 + 893: 48(fvec4) DPdyCoarse 892 + Store 891(r020) 893 895: 48(fvec4) Load 53(inF0) - 896: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 895 - Store 894(r022) 896 + 896: 48(fvec4) DPdyFine 895 + Store 894(r021) 896 898: 48(fvec4) Load 53(inF0) - 899: 48(fvec4) Load 54(inF1) - 900: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 898 899 - Store 897(r023) 900 - 902: 48(fvec4) Load 53(inF0) - 903: 48(fvec4) Load 54(inF1) - 904: 6(float) Dot 902 903 - Store 901(r024) 904 - 906: 7(ptr) AccessChain 53(inF0) 522 - 907: 6(float) Load 906 - 908: 7(ptr) AccessChain 54(inF1) 522 - 909: 6(float) Load 908 - 910: 6(float) FMul 907 909 - 911: 7(ptr) AccessChain 53(inF0) 288 + 899: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 898 + Store 897(r022) 899 + 901: 48(fvec4) Load 53(inF0) + 902: 48(fvec4) Load 54(inF1) + 903: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 901 902 + Store 900(r023) 903 + 905: 48(fvec4) Load 53(inF0) + 906: 48(fvec4) Load 54(inF1) + 907: 6(float) Dot 905 906 + Store 904(r024) 907 + 909: 7(ptr) AccessChain 53(inF0) 523 + 910: 6(float) Load 909 + 911: 7(ptr) AccessChain 54(inF1) 523 912: 6(float) Load 911 - 913: 7(ptr) AccessChain 54(inF1) 393 - 914: 6(float) Load 913 - 915: 48(fvec4) CompositeConstruct 284 910 912 914 - Store 905(r025) 915 - 917: 48(fvec4) Load 53(inF0) - 918: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 917 - Store 916(r029) 918 + 913: 6(float) FMul 910 912 + 914: 7(ptr) AccessChain 53(inF0) 524 + 915: 6(float) Load 914 + 916: 7(ptr) AccessChain 54(inF1) 631 + 917: 6(float) Load 916 + 918: 48(fvec4) CompositeConstruct 283 913 915 917 + Store 908(r025) 918 920: 48(fvec4) Load 53(inF0) - 921: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 920 - Store 919(r030) 921 + 921: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 920 + Store 919(r029) 921 923: 48(fvec4) Load 53(inF0) - 924: 48(fvec4) Load 54(inF1) - 925: 48(fvec4) Load 55(inF2) - 926: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 923 924 925 - Store 922(r031) 926 - 931: 50(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 930 - Store 927(r032) 931 - 933: 50(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 930 - Store 932(r033) 933 - 935: 48(fvec4) Load 53(inF0) - 936: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 935 - Store 934(r034) 936 + 924: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 923 + Store 922(r030) 924 + 926: 48(fvec4) Load 53(inF0) + 927: 48(fvec4) Load 54(inF1) + 928: 48(fvec4) Load 55(inF2) + 929: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 926 927 928 + Store 925(r031) 929 + 934: 50(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 933 + Store 930(r032) 934 + 936: 50(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 933 + Store 935(r033) 936 938: 48(fvec4) Load 53(inF0) - 939: 48(fvec4) Load 54(inF1) - 940: 48(fvec4) FMod 938 939 - Store 937(r036) 940 - 942: 48(fvec4) Load 53(inF0) - 943: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 942 - Store 941(r037) 943 + 939: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 938 + Store 937(r034) 939 + 941: 48(fvec4) Load 53(inF0) + 942: 48(fvec4) Load 54(inF1) + 943: 48(fvec4) FMod 941 942 + Store 940(r036) 943 945: 48(fvec4) Load 53(inF0) - 947:946(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 945 - 948: 833(ivec4) CompositeExtract 947 1 - Store 54(inF1) 948 - 949: 48(fvec4) CompositeExtract 947 0 - Store 944(r038) 949 - 951: 48(fvec4) Load 53(inF0) - 952: 48(fvec4) Fwidth 951 - Store 950(r039) 952 - 955: 48(fvec4) Load 53(inF0) - 956: 861(bvec4) IsInf 955 - Store 954(r040) 956 + 946: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 945 + Store 944(r037) 946 + 948: 48(fvec4) Load 53(inF0) + 950:949(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 948 + 951: 836(ivec4) CompositeExtract 950 1 + Store 54(inF1) 951 + 952: 48(fvec4) CompositeExtract 950 0 + Store 947(r038) 952 + 954: 48(fvec4) Load 53(inF0) + 955: 48(fvec4) Fwidth 954 + Store 953(r039) 955 958: 48(fvec4) Load 53(inF0) - 959: 861(bvec4) IsNan 958 - Store 957(r041) 959 + 959: 864(bvec4) IsInf 958 + Store 957(r040) 959 961: 48(fvec4) Load 53(inF0) - 962: 48(fvec4) Load 54(inF1) - 963: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 961 962 - Store 960(r042) 963 - 965: 48(fvec4) Load 53(inF0) - 966: 48(fvec4) Load 54(inF1) - 967: 48(fvec4) Load 55(inF2) - 968: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 965 966 967 - Store 964(r039a) 968 - 970: 48(fvec4) Load 53(inF0) - 971: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 970 - Store 969(r043) 971 + 962: 864(bvec4) IsNan 961 + Store 960(r041) 962 + 964: 48(fvec4) Load 53(inF0) + 965: 48(fvec4) Load 54(inF1) + 966: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 964 965 + Store 963(r042) 966 + 968: 48(fvec4) Load 53(inF0) + 969: 48(fvec4) Load 54(inF1) + 970: 48(fvec4) Load 55(inF2) + 971: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 968 969 970 + Store 967(r039a) 971 973: 48(fvec4) Load 53(inF0) - 974: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 973 - Store 972(r044) 974 + 974: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 973 + Store 972(r043) 974 976: 48(fvec4) Load 53(inF0) - 977: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 976 - 978: 48(fvec4) VectorTimesScalar 977 263 - Store 975(r045) 978 - 980: 48(fvec4) Load 53(inF0) - 981: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 980 - Store 979(r046) 981 + 977: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 976 + Store 975(r044) 977 + 979: 48(fvec4) Load 53(inF0) + 980: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 979 + 981: 48(fvec4) VectorTimesScalar 980 262 + Store 978(r045) 981 983: 48(fvec4) Load 53(inF0) - 984: 48(fvec4) Load 54(inF1) - 985: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 983 984 - Store 982(r047) 985 - 987: 48(fvec4) Load 53(inF0) - 988: 48(fvec4) Load 54(inF1) - 989: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 987 988 - Store 986(r048) 989 - 991: 48(fvec4) Load 53(inF0) - 992: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 991 - Store 990(r049) 992 + 984: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 983 + Store 982(r046) 984 + 986: 48(fvec4) Load 53(inF0) + 987: 48(fvec4) Load 54(inF1) + 988: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 986 987 + Store 985(r047) 988 + 990: 48(fvec4) Load 53(inF0) + 991: 48(fvec4) Load 54(inF1) + 992: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 990 991 + Store 989(r048) 992 994: 48(fvec4) Load 53(inF0) - 995: 48(fvec4) Load 54(inF1) - 996: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 994 995 - Store 993(r050) 996 - 998: 48(fvec4) Load 53(inF0) - 999: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 998 - Store 997(r051) 999 + 995: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 994 + Store 993(r049) 995 + 997: 48(fvec4) Load 53(inF0) + 998: 48(fvec4) Load 54(inF1) + 999: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 997 998 + Store 996(r050) 999 1001: 48(fvec4) Load 53(inF0) - 1002: 48(fvec4) CompositeConstruct 284 284 284 284 - 1003: 48(fvec4) FDiv 1002 1001 - Store 1000(r052) 1003 - 1005: 48(fvec4) Load 53(inF0) - 1006: 48(fvec4) Load 54(inF1) - 1007: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 1005 1006 - Store 1004(r053) 1007 - 1009: 48(fvec4) Load 53(inF0) - 1010: 48(fvec4) Load 54(inF1) - 1011: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1009 1010 519 - Store 1008(r054) 1011 - 1014: 50(ivec4) BitReverse 1013 - Store 1012(r055) 1014 - 1016: 48(fvec4) Load 53(inF0) - 1017: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1016 - Store 1015(r056) 1017 + 1002: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 1001 + Store 1000(r051) 1002 + 1004: 48(fvec4) Load 53(inF0) + 1005: 48(fvec4) CompositeConstruct 283 283 283 283 + 1006: 48(fvec4) FDiv 1005 1004 + Store 1003(r052) 1006 + 1008: 48(fvec4) Load 53(inF0) + 1009: 48(fvec4) Load 54(inF1) + 1010: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 1008 1009 + Store 1007(r053) 1010 + 1012: 48(fvec4) Load 53(inF0) + 1013: 48(fvec4) Load 54(inF1) + 1014: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1012 1013 520 + Store 1011(r054) 1014 + 1017: 50(ivec4) BitReverse 1016 + Store 1015(r055) 1017 1019: 48(fvec4) Load 53(inF0) - 1020: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1019 - Store 1018(r057) 1020 + 1020: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1019 + Store 1018(r056) 1020 1022: 48(fvec4) Load 53(inF0) - 1023: 48(fvec4) CompositeConstruct 175 175 175 175 - 1024: 48(fvec4) CompositeConstruct 284 284 284 284 - 1025: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1022 1023 1024 - Store 1021(r058) 1025 - 1027: 48(fvec4) Load 53(inF0) - 1028: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1027 - Store 1026(r059) 1028 + 1023: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1022 + Store 1021(r057) 1023 + 1025: 48(fvec4) Load 53(inF0) + 1026: 48(fvec4) CompositeConstruct 175 175 175 175 + 1027: 48(fvec4) CompositeConstruct 283 283 283 283 + 1028: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1025 1026 1027 + Store 1024(r058) 1028 1030: 48(fvec4) Load 53(inF0) - 1031: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1030 - Store 1029(r060) 1031 - 1032: 48(fvec4) Load 53(inF0) - 1033: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1032 - Store 54(inF1) 1033 - 1034: 48(fvec4) Load 53(inF0) - 1035: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1034 - Store 55(inF2) 1035 + 1031: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1030 + Store 1029(r059) 1031 + 1033: 48(fvec4) Load 53(inF0) + 1034: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1033 + Store 1032(r060) 1034 + 1035: 48(fvec4) Load 53(inF0) + 1036: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1035 + Store 54(inF1) 1036 1037: 48(fvec4) Load 53(inF0) - 1038: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1037 - Store 1036(r061) 1038 + 1038: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1037 + Store 55(inF2) 1038 1040: 48(fvec4) Load 53(inF0) - 1041: 48(fvec4) Load 54(inF1) - 1042: 48(fvec4) Load 55(inF2) - 1043: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1040 1041 1042 - Store 1039(r062) 1043 - 1045: 48(fvec4) Load 53(inF0) - 1046: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1045 - Store 1044(r063) 1046 + 1041: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1040 + Store 1039(r061) 1041 + 1043: 48(fvec4) Load 53(inF0) + 1044: 48(fvec4) Load 54(inF1) + 1045: 48(fvec4) Load 55(inF2) + 1046: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1043 1044 1045 + Store 1042(r062) 1046 1048: 48(fvec4) Load 53(inF0) - 1049: 48(fvec4) Load 54(inF1) - 1050: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1048 1049 - Store 1047(r064) 1050 - 1052: 48(fvec4) Load 53(inF0) - 1053: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1052 - Store 1051(r065) 1053 + 1049: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1048 + Store 1047(r063) 1049 + 1051: 48(fvec4) Load 53(inF0) + 1052: 48(fvec4) Load 54(inF1) + 1053: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1051 1052 + Store 1050(r064) 1053 1055: 48(fvec4) Load 53(inF0) - 1056: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1055 - Store 1054(r066) 1056 + 1056: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1055 + Store 1054(r065) 1056 1058: 48(fvec4) Load 53(inF0) - 1059: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1058 - Store 1057(r067) 1059 - ReturnValue 1061 + 1059: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1058 + Store 1057(r066) 1059 + 1061: 48(fvec4) Load 53(inF0) + 1062: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1061 + Store 1060(r067) 1062 + ReturnValue 1064 FunctionEnd 66(PixelShaderFunction2x2(mf22;mf22;mf22;): 60 Function None 62 63(inF0): 61(ptr) FunctionParameter 64(inF1): 61(ptr) FunctionParameter 65(inF2): 61(ptr) FunctionParameter 67: Label - 1064(r000): 132(ptr) Variable Function - 1067(r001): 61(ptr) Variable Function - 1072(r003): 132(ptr) Variable Function - 1075(r004): 61(ptr) Variable Function - 1078(r005): 61(ptr) Variable Function - 1081(r006): 61(ptr) Variable Function - 1085(r007): 61(ptr) Variable Function - 1096(r008): 61(ptr) Variable Function - 1101(r009): 61(ptr) Variable Function - 1104(r010): 61(ptr) Variable Function - 1107(r011): 61(ptr) Variable Function - 1110(r012): 61(ptr) Variable Function - 1113(r013): 61(ptr) Variable Function - 1116(r014): 61(ptr) Variable Function - 1119(r015): 61(ptr) Variable Function - 1122(r016): 61(ptr) Variable Function - 1125(r017): 61(ptr) Variable Function - 1128(r018): 7(ptr) Variable Function - 1131(r019): 61(ptr) Variable Function - 1134(R020): 61(ptr) Variable Function - 1137(r021): 61(ptr) Variable Function - 1140(r022): 61(ptr) Variable Function - 1150(r023): 61(ptr) Variable Function - 1153(r024): 61(ptr) Variable Function - 1159(r025): 61(ptr) Variable Function - 1162(r026): 61(ptr) Variable Function - 1166(r026a): 61(ptr) Variable Function - 1171(r027): 61(ptr) Variable Function - 1174(r028): 61(ptr) Variable Function - 1178(r029): 61(ptr) Variable Function - 1181(r030): 61(ptr) Variable Function - 1185(r031): 61(ptr) Variable Function - 1189(r032): 61(ptr) Variable Function - 1193(r033): 61(ptr) Variable Function - 1196(r034): 61(ptr) Variable Function - 1199(r035): 61(ptr) Variable Function - 1202(r036): 61(ptr) Variable Function - 1207(r037): 61(ptr) Variable Function - 1210(r038): 61(ptr) Variable Function - 1217(r039): 61(ptr) Variable Function - 1220(r049): 61(ptr) Variable Function - 1225(r041): 61(ptr) Variable Function - 1228(r042): 61(ptr) Variable Function - 1232(r043): 61(ptr) Variable Function - 1235(r044): 61(ptr) Variable Function - 1240(r046): 61(ptr) Variable Function - 1065: 60 Load 63(inF0) - 1066: 131(bool) All 1065 - Store 1064(r000) 1066 + 1067(r000): 132(ptr) Variable Function + 1070(r001): 61(ptr) Variable Function + 1075(r003): 132(ptr) Variable Function + 1078(r004): 61(ptr) Variable Function + 1081(r005): 61(ptr) Variable Function + 1084(r006): 61(ptr) Variable Function + 1088(r007): 61(ptr) Variable Function + 1099(r008): 61(ptr) Variable Function + 1104(r009): 61(ptr) Variable Function + 1107(r010): 61(ptr) Variable Function + 1110(r011): 61(ptr) Variable Function + 1113(r012): 61(ptr) Variable Function + 1116(r013): 61(ptr) Variable Function + 1119(r014): 61(ptr) Variable Function + 1122(r015): 61(ptr) Variable Function + 1125(r016): 61(ptr) Variable Function + 1128(r017): 61(ptr) Variable Function + 1131(r018): 7(ptr) Variable Function + 1134(r019): 61(ptr) Variable Function + 1137(R020): 61(ptr) Variable Function + 1140(r021): 61(ptr) Variable Function + 1143(r022): 61(ptr) Variable Function + 1153(r023): 61(ptr) Variable Function + 1156(r024): 61(ptr) Variable Function + 1162(r025): 61(ptr) Variable Function + 1165(r026): 61(ptr) Variable Function + 1169(r026a): 61(ptr) Variable Function + 1174(r027): 61(ptr) Variable Function + 1177(r028): 61(ptr) Variable Function + 1181(r029): 61(ptr) Variable Function + 1184(r030): 61(ptr) Variable Function + 1188(r031): 61(ptr) Variable Function + 1192(r032): 61(ptr) Variable Function + 1196(r033): 61(ptr) Variable Function + 1199(r034): 61(ptr) Variable Function + 1202(r035): 61(ptr) Variable Function + 1205(r036): 61(ptr) Variable Function + 1210(r037): 61(ptr) Variable Function + 1213(r038): 61(ptr) Variable Function + 1220(r039): 61(ptr) Variable Function + 1223(r049): 61(ptr) Variable Function + 1228(r041): 61(ptr) Variable Function + 1231(r042): 61(ptr) Variable Function + 1235(r043): 61(ptr) Variable Function + 1238(r044): 61(ptr) Variable Function + 1243(r046): 61(ptr) Variable Function 1068: 60 Load 63(inF0) - 1069: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 1068 - Store 1067(r001) 1069 - 1070: 60 Load 63(inF0) - 1071: 60 ExtInst 1(GLSL.std.450) 17(Acos) 1070 + 1069: 131(bool) All 1068 + Store 1067(r000) 1069 + 1071: 60 Load 63(inF0) + 1072: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 1071 + Store 1070(r001) 1072 1073: 60 Load 63(inF0) - 1074: 131(bool) Any 1073 - Store 1072(r003) 1074 + 1074: 60 ExtInst 1(GLSL.std.450) 17(Acos) 1073 1076: 60 Load 63(inF0) - 1077: 60 ExtInst 1(GLSL.std.450) 16(Asin) 1076 - Store 1075(r004) 1077 + 1077: 131(bool) Any 1076 + Store 1075(r003) 1077 1079: 60 Load 63(inF0) - 1080: 60 ExtInst 1(GLSL.std.450) 18(Atan) 1079 - Store 1078(r005) 1080 + 1080: 60 ExtInst 1(GLSL.std.450) 16(Asin) 1079 + Store 1078(r004) 1080 1082: 60 Load 63(inF0) - 1083: 60 Load 64(inF1) - 1084: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 1082 1083 - Store 1081(r006) 1084 - 1086: 60 Load 63(inF0) - 1087: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 1086 - Store 1085(r007) 1087 - 1088: 60 Load 63(inF0) - 1091: 1090 FOrdLessThan 1088 1089 - 1092: 131(bool) Any 1091 - SelectionMerge 1094 None - BranchConditional 1092 1093 1094 - 1093: Label + 1083: 60 ExtInst 1(GLSL.std.450) 18(Atan) 1082 + Store 1081(r005) 1083 + 1085: 60 Load 63(inF0) + 1086: 60 Load 64(inF1) + 1087: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 1085 1086 + Store 1084(r006) 1087 + 1089: 60 Load 63(inF0) + 1090: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 1089 + Store 1088(r007) 1090 + 1091: 60 Load 63(inF0) + 1094: 1093 FOrdLessThan 1091 1092 + 1095: 131(bool) Any 1094 + SelectionMerge 1097 None + BranchConditional 1095 1096 1097 + 1096: Label Kill - 1094: Label - 1097: 60 Load 63(inF0) - 1098: 60 Load 64(inF1) - 1099: 60 Load 65(inF2) - 1100: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1097 1098 1099 - Store 1096(r008) 1100 - 1102: 60 Load 63(inF0) - 1103: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1102 - Store 1101(r009) 1103 + 1097: Label + 1100: 60 Load 63(inF0) + 1101: 60 Load 64(inF1) + 1102: 60 Load 65(inF2) + 1103: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1100 1101 1102 + Store 1099(r008) 1103 1105: 60 Load 63(inF0) - 1106: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 1105 - Store 1104(r010) 1106 + 1106: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1105 + Store 1104(r009) 1106 1108: 60 Load 63(inF0) - 1109: 60 DPdx 1108 - Store 1107(r011) 1109 + 1109: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 1108 + Store 1107(r010) 1109 1111: 60 Load 63(inF0) - 1112: 60 DPdxCoarse 1111 - Store 1110(r012) 1112 + 1112: 60 DPdx 1111 + Store 1110(r011) 1112 1114: 60 Load 63(inF0) - 1115: 60 DPdxFine 1114 - Store 1113(r013) 1115 + 1115: 60 DPdxCoarse 1114 + Store 1113(r012) 1115 1117: 60 Load 63(inF0) - 1118: 60 DPdy 1117 - Store 1116(r014) 1118 + 1118: 60 DPdxFine 1117 + Store 1116(r013) 1118 1120: 60 Load 63(inF0) - 1121: 60 DPdyCoarse 1120 - Store 1119(r015) 1121 + 1121: 60 DPdy 1120 + Store 1119(r014) 1121 1123: 60 Load 63(inF0) - 1124: 60 DPdyFine 1123 - Store 1122(r016) 1124 + 1124: 60 DPdyCoarse 1123 + Store 1122(r015) 1124 1126: 60 Load 63(inF0) - 1127: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 1126 - Store 1125(r017) 1127 + 1127: 60 DPdyFine 1126 + Store 1125(r016) 1127 1129: 60 Load 63(inF0) - 1130: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1129 - Store 1128(r018) 1130 + 1130: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 1129 + Store 1128(r017) 1130 1132: 60 Load 63(inF0) - 1133: 60 ExtInst 1(GLSL.std.450) 27(Exp) 1132 - Store 1131(r019) 1133 + 1133: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1132 + Store 1131(r018) 1133 1135: 60 Load 63(inF0) - 1136: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 1135 - Store 1134(R020) 1136 + 1136: 60 ExtInst 1(GLSL.std.450) 27(Exp) 1135 + Store 1134(r019) 1136 1138: 60 Load 63(inF0) - 1139: 60 ExtInst 1(GLSL.std.450) 8(Floor) 1138 - Store 1137(r021) 1139 + 1139: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 1138 + Store 1137(R020) 1139 1141: 60 Load 63(inF0) - 1142: 60 Load 64(inF1) - 1143: 24(fvec2) CompositeExtract 1141 0 - 1144: 24(fvec2) CompositeExtract 1142 0 - 1145: 24(fvec2) FMod 1143 1144 - 1146: 24(fvec2) CompositeExtract 1141 1 - 1147: 24(fvec2) CompositeExtract 1142 1 + 1142: 60 ExtInst 1(GLSL.std.450) 8(Floor) 1141 + Store 1140(r021) 1142 + 1144: 60 Load 63(inF0) + 1145: 60 Load 64(inF1) + 1146: 24(fvec2) CompositeExtract 1144 0 + 1147: 24(fvec2) CompositeExtract 1145 0 1148: 24(fvec2) FMod 1146 1147 - 1149: 60 CompositeConstruct 1145 1148 - Store 1140(r022) 1149 - 1151: 60 Load 63(inF0) - 1152: 60 ExtInst 1(GLSL.std.450) 10(Fract) 1151 - Store 1150(r023) 1152 + 1149: 24(fvec2) CompositeExtract 1144 1 + 1150: 24(fvec2) CompositeExtract 1145 1 + 1151: 24(fvec2) FMod 1149 1150 + 1152: 60 CompositeConstruct 1148 1151 + Store 1143(r022) 1152 1154: 60 Load 63(inF0) - 1156:1155(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1154 - 1157: 352(ivec2) CompositeExtract 1156 1 - Store 64(inF1) 1157 - 1158: 60 CompositeExtract 1156 0 - Store 1153(r024) 1158 - 1160: 60 Load 63(inF0) - 1161: 60 Fwidth 1160 - Store 1159(r025) 1161 + 1155: 60 ExtInst 1(GLSL.std.450) 10(Fract) 1154 + Store 1153(r023) 1155 + 1157: 60 Load 63(inF0) + 1159:1158(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1157 + 1160: 352(ivec2) CompositeExtract 1159 1 + Store 64(inF1) 1160 + 1161: 60 CompositeExtract 1159 0 + Store 1156(r024) 1161 1163: 60 Load 63(inF0) - 1164: 60 Load 64(inF1) - 1165: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 1163 1164 - Store 1162(r026) 1165 - 1167: 60 Load 63(inF0) - 1168: 60 Load 64(inF1) - 1169: 60 Load 65(inF2) - 1170: 60 ExtInst 1(GLSL.std.450) 46(FMix) 1167 1168 1169 - Store 1166(r026a) 1170 - 1172: 60 Load 63(inF0) - 1173: 60 ExtInst 1(GLSL.std.450) 28(Log) 1172 - Store 1171(r027) 1173 + 1164: 60 Fwidth 1163 + Store 1162(r025) 1164 + 1166: 60 Load 63(inF0) + 1167: 60 Load 64(inF1) + 1168: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 1166 1167 + Store 1165(r026) 1168 + 1170: 60 Load 63(inF0) + 1171: 60 Load 64(inF1) + 1172: 60 Load 65(inF2) + 1173: 60 ExtInst 1(GLSL.std.450) 46(FMix) 1170 1171 1172 + Store 1169(r026a) 1173 1175: 60 Load 63(inF0) - 1176: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1175 - 1177: 60 MatrixTimesScalar 1176 263 - Store 1174(r028) 1177 - 1179: 60 Load 63(inF0) - 1180: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1179 - Store 1178(r029) 1180 + 1176: 60 ExtInst 1(GLSL.std.450) 28(Log) 1175 + Store 1174(r027) 1176 + 1178: 60 Load 63(inF0) + 1179: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1178 + 1180: 60 MatrixTimesScalar 1179 262 + Store 1177(r028) 1180 1182: 60 Load 63(inF0) - 1183: 60 Load 64(inF1) - 1184: 60 ExtInst 1(GLSL.std.450) 40(FMax) 1182 1183 - Store 1181(r030) 1184 - 1186: 60 Load 63(inF0) - 1187: 60 Load 64(inF1) - 1188: 60 ExtInst 1(GLSL.std.450) 37(FMin) 1186 1187 - Store 1185(r031) 1188 - 1190: 60 Load 63(inF0) - 1191: 60 Load 64(inF1) - 1192: 60 ExtInst 1(GLSL.std.450) 26(Pow) 1190 1191 - Store 1189(r032) 1192 - 1194: 60 Load 63(inF0) - 1195: 60 ExtInst 1(GLSL.std.450) 11(Radians) 1194 - Store 1193(r033) 1195 + 1183: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1182 + Store 1181(r029) 1183 + 1185: 60 Load 63(inF0) + 1186: 60 Load 64(inF1) + 1187: 60 ExtInst 1(GLSL.std.450) 40(FMax) 1185 1186 + Store 1184(r030) 1187 + 1189: 60 Load 63(inF0) + 1190: 60 Load 64(inF1) + 1191: 60 ExtInst 1(GLSL.std.450) 37(FMin) 1189 1190 + Store 1188(r031) 1191 + 1193: 60 Load 63(inF0) + 1194: 60 Load 64(inF1) + 1195: 60 ExtInst 1(GLSL.std.450) 26(Pow) 1193 1194 + Store 1192(r032) 1195 1197: 60 Load 63(inF0) - 1198: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 1197 - Store 1196(r034) 1198 + 1198: 60 ExtInst 1(GLSL.std.450) 11(Radians) 1197 + Store 1196(r033) 1198 1200: 60 Load 63(inF0) - 1201: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1200 - Store 1199(r035) 1201 + 1201: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 1200 + Store 1199(r034) 1201 1203: 60 Load 63(inF0) - 1204: 24(fvec2) CompositeConstruct 175 175 - 1205: 24(fvec2) CompositeConstruct 284 284 - 1206: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1203 1204 1205 - Store 1202(r036) 1206 - 1208: 60 Load 63(inF0) - 1209: 60 ExtInst 1(GLSL.std.450) 6(FSign) 1208 - Store 1207(r037) 1209 + 1204: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1203 + Store 1202(r035) 1204 + 1206: 60 Load 63(inF0) + 1207: 24(fvec2) CompositeConstruct 175 175 + 1208: 24(fvec2) CompositeConstruct 283 283 + 1209: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1206 1207 1208 + Store 1205(r036) 1209 1211: 60 Load 63(inF0) - 1212: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1211 - Store 1210(r038) 1212 - 1213: 60 Load 63(inF0) - 1214: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1213 - Store 64(inF1) 1214 - 1215: 60 Load 63(inF0) - 1216: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1215 - Store 65(inF2) 1216 + 1212: 60 ExtInst 1(GLSL.std.450) 6(FSign) 1211 + Store 1210(r037) 1212 + 1214: 60 Load 63(inF0) + 1215: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1214 + Store 1213(r038) 1215 + 1216: 60 Load 63(inF0) + 1217: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1216 + Store 64(inF1) 1217 1218: 60 Load 63(inF0) - 1219: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 1218 - Store 1217(r039) 1219 + 1219: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1218 + Store 65(inF2) 1219 1221: 60 Load 63(inF0) - 1222: 60 Load 64(inF1) - 1223: 60 Load 65(inF2) - 1224: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1221 1222 1223 - Store 1220(r049) 1224 - 1226: 60 Load 63(inF0) - 1227: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 1226 - Store 1225(r041) 1227 + 1222: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 1221 + Store 1220(r039) 1222 + 1224: 60 Load 63(inF0) + 1225: 60 Load 64(inF1) + 1226: 60 Load 65(inF2) + 1227: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1224 1225 1226 + Store 1223(r049) 1227 1229: 60 Load 63(inF0) - 1230: 60 Load 64(inF1) - 1231: 60 ExtInst 1(GLSL.std.450) 48(Step) 1229 1230 - Store 1228(r042) 1231 - 1233: 60 Load 63(inF0) - 1234: 60 ExtInst 1(GLSL.std.450) 15(Tan) 1233 - Store 1232(r043) 1234 + 1230: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 1229 + Store 1228(r041) 1230 + 1232: 60 Load 63(inF0) + 1233: 60 Load 64(inF1) + 1234: 60 ExtInst 1(GLSL.std.450) 48(Step) 1232 1233 + Store 1231(r042) 1234 1236: 60 Load 63(inF0) - 1237: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 1236 - Store 1235(r044) 1237 - 1238: 60 Load 63(inF0) - 1239: 60 Transpose 1238 + 1237: 60 ExtInst 1(GLSL.std.450) 15(Tan) 1236 + Store 1235(r043) 1237 + 1239: 60 Load 63(inF0) + 1240: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 1239 + Store 1238(r044) 1240 1241: 60 Load 63(inF0) - 1242: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 1241 - Store 1240(r046) 1242 - ReturnValue 1244 + 1242: 60 Transpose 1241 + 1244: 60 Load 63(inF0) + 1245: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 1244 + Store 1243(r046) 1245 + ReturnValue 1247 FunctionEnd 74(PixelShaderFunction3x3(mf33;mf33;mf33;): 68 Function None 70 71(inF0): 69(ptr) FunctionParameter 72(inF1): 69(ptr) FunctionParameter 73(inF2): 69(ptr) FunctionParameter 75: Label - 1247(r000): 132(ptr) Variable Function - 1250(r001): 69(ptr) Variable Function - 1255(r003): 132(ptr) Variable Function - 1258(r004): 69(ptr) Variable Function - 1261(r005): 69(ptr) Variable Function - 1264(r006): 69(ptr) Variable Function - 1268(r007): 69(ptr) Variable Function - 1279(r008): 69(ptr) Variable Function - 1284(r009): 69(ptr) Variable Function - 1287(r010): 69(ptr) Variable Function - 1290(r011): 69(ptr) Variable Function - 1293(r012): 69(ptr) Variable Function - 1296(r013): 69(ptr) Variable Function - 1299(r014): 69(ptr) Variable Function - 1302(r015): 69(ptr) Variable Function - 1305(r016): 69(ptr) Variable Function - 1308(r017): 69(ptr) Variable Function - 1311(r018): 7(ptr) Variable Function - 1314(r019): 69(ptr) Variable Function - 1317(R020): 69(ptr) Variable Function - 1320(r021): 69(ptr) Variable Function - 1323(r022): 69(ptr) Variable Function - 1336(r023): 69(ptr) Variable Function - 1339(r024): 69(ptr) Variable Function - 1345(r025): 69(ptr) Variable Function - 1348(r026): 69(ptr) Variable Function - 1352(r026a): 69(ptr) Variable Function - 1357(r027): 69(ptr) Variable Function - 1360(r028): 69(ptr) Variable Function - 1364(r029): 69(ptr) Variable Function - 1367(r030): 69(ptr) Variable Function - 1371(r031): 69(ptr) Variable Function - 1375(r032): 69(ptr) Variable Function - 1379(r033): 69(ptr) Variable Function - 1382(r034): 69(ptr) Variable Function - 1385(r035): 69(ptr) Variable Function - 1388(r036): 69(ptr) Variable Function - 1393(r037): 69(ptr) Variable Function - 1396(r038): 69(ptr) Variable Function - 1403(r039): 69(ptr) Variable Function - 1406(r049): 69(ptr) Variable Function - 1411(r041): 69(ptr) Variable Function - 1414(r042): 69(ptr) Variable Function - 1418(r043): 69(ptr) Variable Function - 1421(r044): 69(ptr) Variable Function - 1426(r046): 69(ptr) Variable Function - 1248: 68 Load 71(inF0) - 1249: 131(bool) All 1248 - Store 1247(r000) 1249 + 1250(r000): 132(ptr) Variable Function + 1253(r001): 69(ptr) Variable Function + 1258(r003): 132(ptr) Variable Function + 1261(r004): 69(ptr) Variable Function + 1264(r005): 69(ptr) Variable Function + 1267(r006): 69(ptr) Variable Function + 1271(r007): 69(ptr) Variable Function + 1282(r008): 69(ptr) Variable Function + 1287(r009): 69(ptr) Variable Function + 1290(r010): 69(ptr) Variable Function + 1293(r011): 69(ptr) Variable Function + 1296(r012): 69(ptr) Variable Function + 1299(r013): 69(ptr) Variable Function + 1302(r014): 69(ptr) Variable Function + 1305(r015): 69(ptr) Variable Function + 1308(r016): 69(ptr) Variable Function + 1311(r017): 69(ptr) Variable Function + 1314(r018): 7(ptr) Variable Function + 1317(r019): 69(ptr) Variable Function + 1320(R020): 69(ptr) Variable Function + 1323(r021): 69(ptr) Variable Function + 1326(r022): 69(ptr) Variable Function + 1339(r023): 69(ptr) Variable Function + 1342(r024): 69(ptr) Variable Function + 1348(r025): 69(ptr) Variable Function + 1351(r026): 69(ptr) Variable Function + 1355(r026a): 69(ptr) Variable Function + 1360(r027): 69(ptr) Variable Function + 1363(r028): 69(ptr) Variable Function + 1367(r029): 69(ptr) Variable Function + 1370(r030): 69(ptr) Variable Function + 1374(r031): 69(ptr) Variable Function + 1378(r032): 69(ptr) Variable Function + 1382(r033): 69(ptr) Variable Function + 1385(r034): 69(ptr) Variable Function + 1388(r035): 69(ptr) Variable Function + 1391(r036): 69(ptr) Variable Function + 1396(r037): 69(ptr) Variable Function + 1399(r038): 69(ptr) Variable Function + 1406(r039): 69(ptr) Variable Function + 1409(r049): 69(ptr) Variable Function + 1414(r041): 69(ptr) Variable Function + 1417(r042): 69(ptr) Variable Function + 1421(r043): 69(ptr) Variable Function + 1424(r044): 69(ptr) Variable Function + 1429(r046): 69(ptr) Variable Function 1251: 68 Load 71(inF0) - 1252: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 1251 - Store 1250(r001) 1252 - 1253: 68 Load 71(inF0) - 1254: 68 ExtInst 1(GLSL.std.450) 17(Acos) 1253 + 1252: 131(bool) All 1251 + Store 1250(r000) 1252 + 1254: 68 Load 71(inF0) + 1255: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 1254 + Store 1253(r001) 1255 1256: 68 Load 71(inF0) - 1257: 131(bool) Any 1256 - Store 1255(r003) 1257 + 1257: 68 ExtInst 1(GLSL.std.450) 17(Acos) 1256 1259: 68 Load 71(inF0) - 1260: 68 ExtInst 1(GLSL.std.450) 16(Asin) 1259 - Store 1258(r004) 1260 + 1260: 131(bool) Any 1259 + Store 1258(r003) 1260 1262: 68 Load 71(inF0) - 1263: 68 ExtInst 1(GLSL.std.450) 18(Atan) 1262 - Store 1261(r005) 1263 + 1263: 68 ExtInst 1(GLSL.std.450) 16(Asin) 1262 + Store 1261(r004) 1263 1265: 68 Load 71(inF0) - 1266: 68 Load 72(inF1) - 1267: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 1265 1266 - Store 1264(r006) 1267 - 1269: 68 Load 71(inF0) - 1270: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 1269 - Store 1268(r007) 1270 - 1271: 68 Load 71(inF0) - 1274: 1273 FOrdLessThan 1271 1272 - 1275: 131(bool) Any 1274 - SelectionMerge 1277 None - BranchConditional 1275 1276 1277 - 1276: Label + 1266: 68 ExtInst 1(GLSL.std.450) 18(Atan) 1265 + Store 1264(r005) 1266 + 1268: 68 Load 71(inF0) + 1269: 68 Load 72(inF1) + 1270: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 1268 1269 + Store 1267(r006) 1270 + 1272: 68 Load 71(inF0) + 1273: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 1272 + Store 1271(r007) 1273 + 1274: 68 Load 71(inF0) + 1277: 1276 FOrdLessThan 1274 1275 + 1278: 131(bool) Any 1277 + SelectionMerge 1280 None + BranchConditional 1278 1279 1280 + 1279: Label Kill - 1277: Label - 1280: 68 Load 71(inF0) - 1281: 68 Load 72(inF1) - 1282: 68 Load 73(inF2) - 1283: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1280 1281 1282 - Store 1279(r008) 1283 - 1285: 68 Load 71(inF0) - 1286: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1285 - Store 1284(r009) 1286 + 1280: Label + 1283: 68 Load 71(inF0) + 1284: 68 Load 72(inF1) + 1285: 68 Load 73(inF2) + 1286: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1283 1284 1285 + Store 1282(r008) 1286 1288: 68 Load 71(inF0) - 1289: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 1288 - Store 1287(r010) 1289 + 1289: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1288 + Store 1287(r009) 1289 1291: 68 Load 71(inF0) - 1292: 68 DPdx 1291 - Store 1290(r011) 1292 + 1292: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 1291 + Store 1290(r010) 1292 1294: 68 Load 71(inF0) - 1295: 68 DPdxCoarse 1294 - Store 1293(r012) 1295 + 1295: 68 DPdx 1294 + Store 1293(r011) 1295 1297: 68 Load 71(inF0) - 1298: 68 DPdxFine 1297 - Store 1296(r013) 1298 + 1298: 68 DPdxCoarse 1297 + Store 1296(r012) 1298 1300: 68 Load 71(inF0) - 1301: 68 DPdy 1300 - Store 1299(r014) 1301 + 1301: 68 DPdxFine 1300 + Store 1299(r013) 1301 1303: 68 Load 71(inF0) - 1304: 68 DPdyCoarse 1303 - Store 1302(r015) 1304 + 1304: 68 DPdy 1303 + Store 1302(r014) 1304 1306: 68 Load 71(inF0) - 1307: 68 DPdyFine 1306 - Store 1305(r016) 1307 + 1307: 68 DPdyCoarse 1306 + Store 1305(r015) 1307 1309: 68 Load 71(inF0) - 1310: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 1309 - Store 1308(r017) 1310 + 1310: 68 DPdyFine 1309 + Store 1308(r016) 1310 1312: 68 Load 71(inF0) - 1313: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1312 - Store 1311(r018) 1313 + 1313: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 1312 + Store 1311(r017) 1313 1315: 68 Load 71(inF0) - 1316: 68 ExtInst 1(GLSL.std.450) 27(Exp) 1315 - Store 1314(r019) 1316 + 1316: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1315 + Store 1314(r018) 1316 1318: 68 Load 71(inF0) - 1319: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 1318 - Store 1317(R020) 1319 + 1319: 68 ExtInst 1(GLSL.std.450) 27(Exp) 1318 + Store 1317(r019) 1319 1321: 68 Load 71(inF0) - 1322: 68 ExtInst 1(GLSL.std.450) 8(Floor) 1321 - Store 1320(r021) 1322 + 1322: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 1321 + Store 1320(R020) 1322 1324: 68 Load 71(inF0) - 1325: 68 Load 72(inF1) - 1326: 36(fvec3) CompositeExtract 1324 0 - 1327: 36(fvec3) CompositeExtract 1325 0 - 1328: 36(fvec3) FMod 1326 1327 - 1329: 36(fvec3) CompositeExtract 1324 1 - 1330: 36(fvec3) CompositeExtract 1325 1 + 1325: 68 ExtInst 1(GLSL.std.450) 8(Floor) 1324 + Store 1323(r021) 1325 + 1327: 68 Load 71(inF0) + 1328: 68 Load 72(inF1) + 1329: 36(fvec3) CompositeExtract 1327 0 + 1330: 36(fvec3) CompositeExtract 1328 0 1331: 36(fvec3) FMod 1329 1330 - 1332: 36(fvec3) CompositeExtract 1324 2 - 1333: 36(fvec3) CompositeExtract 1325 2 + 1332: 36(fvec3) CompositeExtract 1327 1 + 1333: 36(fvec3) CompositeExtract 1328 1 1334: 36(fvec3) FMod 1332 1333 - 1335: 68 CompositeConstruct 1328 1331 1334 - Store 1323(r022) 1335 - 1337: 68 Load 71(inF0) - 1338: 68 ExtInst 1(GLSL.std.450) 10(Fract) 1337 - Store 1336(r023) 1338 + 1335: 36(fvec3) CompositeExtract 1327 2 + 1336: 36(fvec3) CompositeExtract 1328 2 + 1337: 36(fvec3) FMod 1335 1336 + 1338: 68 CompositeConstruct 1331 1334 1337 + Store 1326(r022) 1338 1340: 68 Load 71(inF0) - 1342:1341(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1340 - 1343: 588(ivec3) CompositeExtract 1342 1 - Store 72(inF1) 1343 - 1344: 68 CompositeExtract 1342 0 - Store 1339(r024) 1344 - 1346: 68 Load 71(inF0) - 1347: 68 Fwidth 1346 - Store 1345(r025) 1347 + 1341: 68 ExtInst 1(GLSL.std.450) 10(Fract) 1340 + Store 1339(r023) 1341 + 1343: 68 Load 71(inF0) + 1345:1344(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1343 + 1346: 590(ivec3) CompositeExtract 1345 1 + Store 72(inF1) 1346 + 1347: 68 CompositeExtract 1345 0 + Store 1342(r024) 1347 1349: 68 Load 71(inF0) - 1350: 68 Load 72(inF1) - 1351: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 1349 1350 - Store 1348(r026) 1351 - 1353: 68 Load 71(inF0) - 1354: 68 Load 72(inF1) - 1355: 68 Load 73(inF2) - 1356: 68 ExtInst 1(GLSL.std.450) 46(FMix) 1353 1354 1355 - Store 1352(r026a) 1356 - 1358: 68 Load 71(inF0) - 1359: 68 ExtInst 1(GLSL.std.450) 28(Log) 1358 - Store 1357(r027) 1359 + 1350: 68 Fwidth 1349 + Store 1348(r025) 1350 + 1352: 68 Load 71(inF0) + 1353: 68 Load 72(inF1) + 1354: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 1352 1353 + Store 1351(r026) 1354 + 1356: 68 Load 71(inF0) + 1357: 68 Load 72(inF1) + 1358: 68 Load 73(inF2) + 1359: 68 ExtInst 1(GLSL.std.450) 46(FMix) 1356 1357 1358 + Store 1355(r026a) 1359 1361: 68 Load 71(inF0) - 1362: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1361 - 1363: 68 MatrixTimesScalar 1362 263 - Store 1360(r028) 1363 - 1365: 68 Load 71(inF0) - 1366: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1365 - Store 1364(r029) 1366 + 1362: 68 ExtInst 1(GLSL.std.450) 28(Log) 1361 + Store 1360(r027) 1362 + 1364: 68 Load 71(inF0) + 1365: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1364 + 1366: 68 MatrixTimesScalar 1365 262 + Store 1363(r028) 1366 1368: 68 Load 71(inF0) - 1369: 68 Load 72(inF1) - 1370: 68 ExtInst 1(GLSL.std.450) 40(FMax) 1368 1369 - Store 1367(r030) 1370 - 1372: 68 Load 71(inF0) - 1373: 68 Load 72(inF1) - 1374: 68 ExtInst 1(GLSL.std.450) 37(FMin) 1372 1373 - Store 1371(r031) 1374 - 1376: 68 Load 71(inF0) - 1377: 68 Load 72(inF1) - 1378: 68 ExtInst 1(GLSL.std.450) 26(Pow) 1376 1377 - Store 1375(r032) 1378 - 1380: 68 Load 71(inF0) - 1381: 68 ExtInst 1(GLSL.std.450) 11(Radians) 1380 - Store 1379(r033) 1381 + 1369: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1368 + Store 1367(r029) 1369 + 1371: 68 Load 71(inF0) + 1372: 68 Load 72(inF1) + 1373: 68 ExtInst 1(GLSL.std.450) 40(FMax) 1371 1372 + Store 1370(r030) 1373 + 1375: 68 Load 71(inF0) + 1376: 68 Load 72(inF1) + 1377: 68 ExtInst 1(GLSL.std.450) 37(FMin) 1375 1376 + Store 1374(r031) 1377 + 1379: 68 Load 71(inF0) + 1380: 68 Load 72(inF1) + 1381: 68 ExtInst 1(GLSL.std.450) 26(Pow) 1379 1380 + Store 1378(r032) 1381 1383: 68 Load 71(inF0) - 1384: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 1383 - Store 1382(r034) 1384 + 1384: 68 ExtInst 1(GLSL.std.450) 11(Radians) 1383 + Store 1382(r033) 1384 1386: 68 Load 71(inF0) - 1387: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1386 - Store 1385(r035) 1387 + 1387: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 1386 + Store 1385(r034) 1387 1389: 68 Load 71(inF0) - 1390: 36(fvec3) CompositeConstruct 175 175 175 - 1391: 36(fvec3) CompositeConstruct 284 284 284 - 1392: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1389 1390 1391 - Store 1388(r036) 1392 - 1394: 68 Load 71(inF0) - 1395: 68 ExtInst 1(GLSL.std.450) 6(FSign) 1394 - Store 1393(r037) 1395 + 1390: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1389 + Store 1388(r035) 1390 + 1392: 68 Load 71(inF0) + 1393: 36(fvec3) CompositeConstruct 175 175 175 + 1394: 36(fvec3) CompositeConstruct 283 283 283 + 1395: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1392 1393 1394 + Store 1391(r036) 1395 1397: 68 Load 71(inF0) - 1398: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1397 - Store 1396(r038) 1398 - 1399: 68 Load 71(inF0) - 1400: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1399 - Store 72(inF1) 1400 - 1401: 68 Load 71(inF0) - 1402: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1401 - Store 73(inF2) 1402 + 1398: 68 ExtInst 1(GLSL.std.450) 6(FSign) 1397 + Store 1396(r037) 1398 + 1400: 68 Load 71(inF0) + 1401: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1400 + Store 1399(r038) 1401 + 1402: 68 Load 71(inF0) + 1403: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1402 + Store 72(inF1) 1403 1404: 68 Load 71(inF0) - 1405: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 1404 - Store 1403(r039) 1405 + 1405: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1404 + Store 73(inF2) 1405 1407: 68 Load 71(inF0) - 1408: 68 Load 72(inF1) - 1409: 68 Load 73(inF2) - 1410: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1407 1408 1409 - Store 1406(r049) 1410 - 1412: 68 Load 71(inF0) - 1413: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 1412 - Store 1411(r041) 1413 + 1408: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 1407 + Store 1406(r039) 1408 + 1410: 68 Load 71(inF0) + 1411: 68 Load 72(inF1) + 1412: 68 Load 73(inF2) + 1413: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1410 1411 1412 + Store 1409(r049) 1413 1415: 68 Load 71(inF0) - 1416: 68 Load 72(inF1) - 1417: 68 ExtInst 1(GLSL.std.450) 48(Step) 1415 1416 - Store 1414(r042) 1417 - 1419: 68 Load 71(inF0) - 1420: 68 ExtInst 1(GLSL.std.450) 15(Tan) 1419 - Store 1418(r043) 1420 + 1416: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 1415 + Store 1414(r041) 1416 + 1418: 68 Load 71(inF0) + 1419: 68 Load 72(inF1) + 1420: 68 ExtInst 1(GLSL.std.450) 48(Step) 1418 1419 + Store 1417(r042) 1420 1422: 68 Load 71(inF0) - 1423: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 1422 - Store 1421(r044) 1423 - 1424: 68 Load 71(inF0) - 1425: 68 Transpose 1424 + 1423: 68 ExtInst 1(GLSL.std.450) 15(Tan) 1422 + Store 1421(r043) 1423 + 1425: 68 Load 71(inF0) + 1426: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 1425 + Store 1424(r044) 1426 1427: 68 Load 71(inF0) - 1428: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 1427 - Store 1426(r046) 1428 - ReturnValue 1430 + 1428: 68 Transpose 1427 + 1430: 68 Load 71(inF0) + 1431: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 1430 + Store 1429(r046) 1431 + ReturnValue 1433 FunctionEnd 82(PixelShaderFunction4x4(mf44;mf44;mf44;): 76 Function None 78 79(inF0): 77(ptr) FunctionParameter 80(inF1): 77(ptr) FunctionParameter 81(inF2): 77(ptr) FunctionParameter 83: Label - 1433(r000): 132(ptr) Variable Function - 1436(r001): 77(ptr) Variable Function - 1441(r003): 132(ptr) Variable Function - 1444(r004): 77(ptr) Variable Function - 1447(r005): 77(ptr) Variable Function - 1450(r006): 77(ptr) Variable Function - 1454(r007): 77(ptr) Variable Function - 1465(r008): 77(ptr) Variable Function - 1470(r009): 77(ptr) Variable Function - 1473(r010): 77(ptr) Variable Function - 1476(r011): 77(ptr) Variable Function - 1479(r012): 77(ptr) Variable Function - 1482(r013): 77(ptr) Variable Function - 1485(r014): 77(ptr) Variable Function - 1488(r015): 77(ptr) Variable Function - 1491(r016): 77(ptr) Variable Function - 1494(r017): 77(ptr) Variable Function - 1497(r018): 7(ptr) Variable Function - 1500(r019): 77(ptr) Variable Function - 1503(R020): 77(ptr) Variable Function - 1506(r021): 77(ptr) Variable Function - 1509(r022): 77(ptr) Variable Function - 1525(r023): 77(ptr) Variable Function - 1528(r024): 77(ptr) Variable Function - 1534(r025): 77(ptr) Variable Function - 1537(r026): 77(ptr) Variable Function - 1541(r026a): 77(ptr) Variable Function - 1546(r027): 77(ptr) Variable Function - 1549(r028): 77(ptr) Variable Function - 1553(r029): 77(ptr) Variable Function - 1556(r030): 77(ptr) Variable Function - 1560(r031): 77(ptr) Variable Function - 1564(r032): 77(ptr) Variable Function - 1568(r033): 77(ptr) Variable Function - 1571(r034): 77(ptr) Variable Function - 1574(r035): 77(ptr) Variable Function - 1577(r036): 77(ptr) Variable Function - 1582(r037): 77(ptr) Variable Function - 1585(r038): 77(ptr) Variable Function - 1592(r039): 77(ptr) Variable Function - 1595(r049): 77(ptr) Variable Function - 1600(r041): 77(ptr) Variable Function - 1603(r042): 77(ptr) Variable Function - 1607(r043): 77(ptr) Variable Function - 1610(r044): 77(ptr) Variable Function - 1615(r046): 77(ptr) Variable Function - 1434: 76 Load 79(inF0) - 1435: 131(bool) All 1434 - Store 1433(r000) 1435 + 1436(r000): 132(ptr) Variable Function + 1439(r001): 77(ptr) Variable Function + 1444(r003): 132(ptr) Variable Function + 1447(r004): 77(ptr) Variable Function + 1450(r005): 77(ptr) Variable Function + 1453(r006): 77(ptr) Variable Function + 1457(r007): 77(ptr) Variable Function + 1468(r008): 77(ptr) Variable Function + 1473(r009): 77(ptr) Variable Function + 1476(r010): 77(ptr) Variable Function + 1479(r011): 77(ptr) Variable Function + 1482(r012): 77(ptr) Variable Function + 1485(r013): 77(ptr) Variable Function + 1488(r014): 77(ptr) Variable Function + 1491(r015): 77(ptr) Variable Function + 1494(r016): 77(ptr) Variable Function + 1497(r017): 77(ptr) Variable Function + 1500(r018): 7(ptr) Variable Function + 1503(r019): 77(ptr) Variable Function + 1506(R020): 77(ptr) Variable Function + 1509(r021): 77(ptr) Variable Function + 1512(r022): 77(ptr) Variable Function + 1528(r023): 77(ptr) Variable Function + 1531(r024): 77(ptr) Variable Function + 1537(r025): 77(ptr) Variable Function + 1540(r026): 77(ptr) Variable Function + 1544(r026a): 77(ptr) Variable Function + 1549(r027): 77(ptr) Variable Function + 1552(r028): 77(ptr) Variable Function + 1556(r029): 77(ptr) Variable Function + 1559(r030): 77(ptr) Variable Function + 1563(r031): 77(ptr) Variable Function + 1567(r032): 77(ptr) Variable Function + 1571(r033): 77(ptr) Variable Function + 1574(r034): 77(ptr) Variable Function + 1577(r035): 77(ptr) Variable Function + 1580(r036): 77(ptr) Variable Function + 1585(r037): 77(ptr) Variable Function + 1588(r038): 77(ptr) Variable Function + 1595(r039): 77(ptr) Variable Function + 1598(r049): 77(ptr) Variable Function + 1603(r041): 77(ptr) Variable Function + 1606(r042): 77(ptr) Variable Function + 1610(r043): 77(ptr) Variable Function + 1613(r044): 77(ptr) Variable Function + 1618(r046): 77(ptr) Variable Function 1437: 76 Load 79(inF0) - 1438: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 1437 - Store 1436(r001) 1438 - 1439: 76 Load 79(inF0) - 1440: 76 ExtInst 1(GLSL.std.450) 17(Acos) 1439 + 1438: 131(bool) All 1437 + Store 1436(r000) 1438 + 1440: 76 Load 79(inF0) + 1441: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 1440 + Store 1439(r001) 1441 1442: 76 Load 79(inF0) - 1443: 131(bool) Any 1442 - Store 1441(r003) 1443 + 1443: 76 ExtInst 1(GLSL.std.450) 17(Acos) 1442 1445: 76 Load 79(inF0) - 1446: 76 ExtInst 1(GLSL.std.450) 16(Asin) 1445 - Store 1444(r004) 1446 + 1446: 131(bool) Any 1445 + Store 1444(r003) 1446 1448: 76 Load 79(inF0) - 1449: 76 ExtInst 1(GLSL.std.450) 18(Atan) 1448 - Store 1447(r005) 1449 + 1449: 76 ExtInst 1(GLSL.std.450) 16(Asin) 1448 + Store 1447(r004) 1449 1451: 76 Load 79(inF0) - 1452: 76 Load 80(inF1) - 1453: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 1451 1452 - Store 1450(r006) 1453 - 1455: 76 Load 79(inF0) - 1456: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 1455 - Store 1454(r007) 1456 - 1457: 76 Load 79(inF0) - 1460: 1459 FOrdLessThan 1457 1458 - 1461: 131(bool) Any 1460 - SelectionMerge 1463 None - BranchConditional 1461 1462 1463 - 1462: Label + 1452: 76 ExtInst 1(GLSL.std.450) 18(Atan) 1451 + Store 1450(r005) 1452 + 1454: 76 Load 79(inF0) + 1455: 76 Load 80(inF1) + 1456: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 1454 1455 + Store 1453(r006) 1456 + 1458: 76 Load 79(inF0) + 1459: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 1458 + Store 1457(r007) 1459 + 1460: 76 Load 79(inF0) + 1463: 1462 FOrdLessThan 1460 1461 + 1464: 131(bool) Any 1463 + SelectionMerge 1466 None + BranchConditional 1464 1465 1466 + 1465: Label Kill - 1463: Label - 1466: 76 Load 79(inF0) - 1467: 76 Load 80(inF1) - 1468: 76 Load 81(inF2) - 1469: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1466 1467 1468 - Store 1465(r008) 1469 - 1471: 76 Load 79(inF0) - 1472: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1471 - Store 1470(r009) 1472 + 1466: Label + 1469: 76 Load 79(inF0) + 1470: 76 Load 80(inF1) + 1471: 76 Load 81(inF2) + 1472: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1469 1470 1471 + Store 1468(r008) 1472 1474: 76 Load 79(inF0) - 1475: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 1474 - Store 1473(r010) 1475 + 1475: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1474 + Store 1473(r009) 1475 1477: 76 Load 79(inF0) - 1478: 76 DPdx 1477 - Store 1476(r011) 1478 + 1478: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 1477 + Store 1476(r010) 1478 1480: 76 Load 79(inF0) - 1481: 76 DPdxCoarse 1480 - Store 1479(r012) 1481 + 1481: 76 DPdx 1480 + Store 1479(r011) 1481 1483: 76 Load 79(inF0) - 1484: 76 DPdxFine 1483 - Store 1482(r013) 1484 + 1484: 76 DPdxCoarse 1483 + Store 1482(r012) 1484 1486: 76 Load 79(inF0) - 1487: 76 DPdy 1486 - Store 1485(r014) 1487 + 1487: 76 DPdxFine 1486 + Store 1485(r013) 1487 1489: 76 Load 79(inF0) - 1490: 76 DPdyCoarse 1489 - Store 1488(r015) 1490 + 1490: 76 DPdy 1489 + Store 1488(r014) 1490 1492: 76 Load 79(inF0) - 1493: 76 DPdyFine 1492 - Store 1491(r016) 1493 + 1493: 76 DPdyCoarse 1492 + Store 1491(r015) 1493 1495: 76 Load 79(inF0) - 1496: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 1495 - Store 1494(r017) 1496 + 1496: 76 DPdyFine 1495 + Store 1494(r016) 1496 1498: 76 Load 79(inF0) - 1499: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1498 - Store 1497(r018) 1499 + 1499: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 1498 + Store 1497(r017) 1499 1501: 76 Load 79(inF0) - 1502: 76 ExtInst 1(GLSL.std.450) 27(Exp) 1501 - Store 1500(r019) 1502 + 1502: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1501 + Store 1500(r018) 1502 1504: 76 Load 79(inF0) - 1505: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 1504 - Store 1503(R020) 1505 + 1505: 76 ExtInst 1(GLSL.std.450) 27(Exp) 1504 + Store 1503(r019) 1505 1507: 76 Load 79(inF0) - 1508: 76 ExtInst 1(GLSL.std.450) 8(Floor) 1507 - Store 1506(r021) 1508 + 1508: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 1507 + Store 1506(R020) 1508 1510: 76 Load 79(inF0) - 1511: 76 Load 80(inF1) - 1512: 48(fvec4) CompositeExtract 1510 0 - 1513: 48(fvec4) CompositeExtract 1511 0 - 1514: 48(fvec4) FMod 1512 1513 - 1515: 48(fvec4) CompositeExtract 1510 1 - 1516: 48(fvec4) CompositeExtract 1511 1 + 1511: 76 ExtInst 1(GLSL.std.450) 8(Floor) 1510 + Store 1509(r021) 1511 + 1513: 76 Load 79(inF0) + 1514: 76 Load 80(inF1) + 1515: 48(fvec4) CompositeExtract 1513 0 + 1516: 48(fvec4) CompositeExtract 1514 0 1517: 48(fvec4) FMod 1515 1516 - 1518: 48(fvec4) CompositeExtract 1510 2 - 1519: 48(fvec4) CompositeExtract 1511 2 + 1518: 48(fvec4) CompositeExtract 1513 1 + 1519: 48(fvec4) CompositeExtract 1514 1 1520: 48(fvec4) FMod 1518 1519 - 1521: 48(fvec4) CompositeExtract 1510 3 - 1522: 48(fvec4) CompositeExtract 1511 3 + 1521: 48(fvec4) CompositeExtract 1513 2 + 1522: 48(fvec4) CompositeExtract 1514 2 1523: 48(fvec4) FMod 1521 1522 - 1524: 76 CompositeConstruct 1514 1517 1520 1523 - Store 1509(r022) 1524 - 1526: 76 Load 79(inF0) - 1527: 76 ExtInst 1(GLSL.std.450) 10(Fract) 1526 - Store 1525(r023) 1527 + 1524: 48(fvec4) CompositeExtract 1513 3 + 1525: 48(fvec4) CompositeExtract 1514 3 + 1526: 48(fvec4) FMod 1524 1525 + 1527: 76 CompositeConstruct 1517 1520 1523 1526 + Store 1512(r022) 1527 1529: 76 Load 79(inF0) - 1531:1530(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1529 - 1532: 833(ivec4) CompositeExtract 1531 1 - Store 80(inF1) 1532 - 1533: 76 CompositeExtract 1531 0 - Store 1528(r024) 1533 - 1535: 76 Load 79(inF0) - 1536: 76 Fwidth 1535 - Store 1534(r025) 1536 + 1530: 76 ExtInst 1(GLSL.std.450) 10(Fract) 1529 + Store 1528(r023) 1530 + 1532: 76 Load 79(inF0) + 1534:1533(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1532 + 1535: 836(ivec4) CompositeExtract 1534 1 + Store 80(inF1) 1535 + 1536: 76 CompositeExtract 1534 0 + Store 1531(r024) 1536 1538: 76 Load 79(inF0) - 1539: 76 Load 80(inF1) - 1540: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 1538 1539 - Store 1537(r026) 1540 - 1542: 76 Load 79(inF0) - 1543: 76 Load 80(inF1) - 1544: 76 Load 81(inF2) - 1545: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1542 1543 1544 - Store 1541(r026a) 1545 - 1547: 76 Load 79(inF0) - 1548: 76 ExtInst 1(GLSL.std.450) 28(Log) 1547 - Store 1546(r027) 1548 + 1539: 76 Fwidth 1538 + Store 1537(r025) 1539 + 1541: 76 Load 79(inF0) + 1542: 76 Load 80(inF1) + 1543: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 1541 1542 + Store 1540(r026) 1543 + 1545: 76 Load 79(inF0) + 1546: 76 Load 80(inF1) + 1547: 76 Load 81(inF2) + 1548: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1545 1546 1547 + Store 1544(r026a) 1548 1550: 76 Load 79(inF0) - 1551: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1550 - 1552: 76 MatrixTimesScalar 1551 263 - Store 1549(r028) 1552 - 1554: 76 Load 79(inF0) - 1555: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1554 - Store 1553(r029) 1555 + 1551: 76 ExtInst 1(GLSL.std.450) 28(Log) 1550 + Store 1549(r027) 1551 + 1553: 76 Load 79(inF0) + 1554: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1553 + 1555: 76 MatrixTimesScalar 1554 262 + Store 1552(r028) 1555 1557: 76 Load 79(inF0) - 1558: 76 Load 80(inF1) - 1559: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1557 1558 - Store 1556(r030) 1559 - 1561: 76 Load 79(inF0) - 1562: 76 Load 80(inF1) - 1563: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1561 1562 - Store 1560(r031) 1563 - 1565: 76 Load 79(inF0) - 1566: 76 Load 80(inF1) - 1567: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1565 1566 - Store 1564(r032) 1567 - 1569: 76 Load 79(inF0) - 1570: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1569 - Store 1568(r033) 1570 + 1558: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1557 + Store 1556(r029) 1558 + 1560: 76 Load 79(inF0) + 1561: 76 Load 80(inF1) + 1562: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1560 1561 + Store 1559(r030) 1562 + 1564: 76 Load 79(inF0) + 1565: 76 Load 80(inF1) + 1566: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1564 1565 + Store 1563(r031) 1566 + 1568: 76 Load 79(inF0) + 1569: 76 Load 80(inF1) + 1570: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1568 1569 + Store 1567(r032) 1570 1572: 76 Load 79(inF0) - 1573: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1572 - Store 1571(r034) 1573 + 1573: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1572 + Store 1571(r033) 1573 1575: 76 Load 79(inF0) - 1576: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1575 - Store 1574(r035) 1576 + 1576: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1575 + Store 1574(r034) 1576 1578: 76 Load 79(inF0) - 1579: 48(fvec4) CompositeConstruct 175 175 175 175 - 1580: 48(fvec4) CompositeConstruct 284 284 284 284 - 1581: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1578 1579 1580 - Store 1577(r036) 1581 - 1583: 76 Load 79(inF0) - 1584: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1583 - Store 1582(r037) 1584 + 1579: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1578 + Store 1577(r035) 1579 + 1581: 76 Load 79(inF0) + 1582: 48(fvec4) CompositeConstruct 175 175 175 175 + 1583: 48(fvec4) CompositeConstruct 283 283 283 283 + 1584: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1581 1582 1583 + Store 1580(r036) 1584 1586: 76 Load 79(inF0) - 1587: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1586 - Store 1585(r038) 1587 - 1588: 76 Load 79(inF0) - 1589: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1588 - Store 80(inF1) 1589 - 1590: 76 Load 79(inF0) - 1591: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1590 - Store 81(inF2) 1591 + 1587: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1586 + Store 1585(r037) 1587 + 1589: 76 Load 79(inF0) + 1590: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1589 + Store 1588(r038) 1590 + 1591: 76 Load 79(inF0) + 1592: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1591 + Store 80(inF1) 1592 1593: 76 Load 79(inF0) - 1594: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1593 - Store 1592(r039) 1594 + 1594: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1593 + Store 81(inF2) 1594 1596: 76 Load 79(inF0) - 1597: 76 Load 80(inF1) - 1598: 76 Load 81(inF2) - 1599: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1596 1597 1598 - Store 1595(r049) 1599 - 1601: 76 Load 79(inF0) - 1602: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1601 - Store 1600(r041) 1602 + 1597: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1596 + Store 1595(r039) 1597 + 1599: 76 Load 79(inF0) + 1600: 76 Load 80(inF1) + 1601: 76 Load 81(inF2) + 1602: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1599 1600 1601 + Store 1598(r049) 1602 1604: 76 Load 79(inF0) - 1605: 76 Load 80(inF1) - 1606: 76 ExtInst 1(GLSL.std.450) 48(Step) 1604 1605 - Store 1603(r042) 1606 - 1608: 76 Load 79(inF0) - 1609: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1608 - Store 1607(r043) 1609 + 1605: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1604 + Store 1603(r041) 1605 + 1607: 76 Load 79(inF0) + 1608: 76 Load 80(inF1) + 1609: 76 ExtInst 1(GLSL.std.450) 48(Step) 1607 1608 + Store 1606(r042) 1609 1611: 76 Load 79(inF0) - 1612: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1611 - Store 1610(r044) 1612 - 1613: 76 Load 79(inF0) - 1614: 76 Transpose 1613 + 1612: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1611 + Store 1610(r043) 1612 + 1614: 76 Load 79(inF0) + 1615: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1614 + Store 1613(r044) 1615 1616: 76 Load 79(inF0) - 1617: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1616 - Store 1615(r046) 1617 - ReturnValue 1619 + 1617: 76 Transpose 1616 + 1619: 76 Load 79(inF0) + 1620: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1619 + Store 1618(r046) 1620 + ReturnValue 1622 FunctionEnd 91(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 84 85(inF0): 7(ptr) FunctionParameter @@ -8177,51 +8182,51 @@ gl_FragCoord origin is upper left 89(inFM0): 61(ptr) FunctionParameter 90(inFM1): 61(ptr) FunctionParameter 92: Label - 1622(r0): 7(ptr) Variable Function - 1626(r1): 25(ptr) Variable Function - 1630(r2): 25(ptr) Variable Function - 1634(r3): 7(ptr) Variable Function - 1638(r4): 25(ptr) Variable Function - 1642(r5): 25(ptr) Variable Function - 1646(r6): 61(ptr) Variable Function - 1650(r7): 61(ptr) Variable Function - 1654(r8): 61(ptr) Variable Function - 1623: 6(float) Load 86(inF1) - 1624: 6(float) Load 85(inF0) - 1625: 6(float) FMul 1623 1624 - Store 1622(r0) 1625 + 1625(r0): 7(ptr) Variable Function + 1629(r1): 25(ptr) Variable Function + 1633(r2): 25(ptr) Variable Function + 1637(r3): 7(ptr) Variable Function + 1641(r4): 25(ptr) Variable Function + 1645(r5): 25(ptr) Variable Function + 1649(r6): 61(ptr) Variable Function + 1653(r7): 61(ptr) Variable Function + 1657(r8): 61(ptr) Variable Function + 1626: 6(float) Load 86(inF1) 1627: 6(float) Load 85(inF0) - 1628: 24(fvec2) Load 87(inFV0) - 1629: 24(fvec2) VectorTimesScalar 1628 1627 - Store 1626(r1) 1629 + 1628: 6(float) FMul 1626 1627 + Store 1625(r0) 1628 + 1630: 6(float) Load 85(inF0) 1631: 24(fvec2) Load 87(inFV0) - 1632: 6(float) Load 85(inF0) - 1633: 24(fvec2) VectorTimesScalar 1631 1632 - Store 1630(r2) 1633 - 1635: 24(fvec2) Load 87(inFV0) - 1636: 24(fvec2) Load 88(inFV1) - 1637: 6(float) Dot 1635 1636 - Store 1634(r3) 1637 - 1639: 24(fvec2) Load 87(inFV0) - 1640: 60 Load 89(inFM0) - 1641: 24(fvec2) VectorTimesMatrix 1639 1640 - Store 1638(r4) 1641 + 1632: 24(fvec2) VectorTimesScalar 1631 1630 + Store 1629(r1) 1632 + 1634: 24(fvec2) Load 87(inFV0) + 1635: 6(float) Load 85(inF0) + 1636: 24(fvec2) VectorTimesScalar 1634 1635 + Store 1633(r2) 1636 + 1638: 24(fvec2) Load 87(inFV0) + 1639: 24(fvec2) Load 88(inFV1) + 1640: 6(float) Dot 1638 1639 + Store 1637(r3) 1640 + 1642: 24(fvec2) Load 87(inFV0) 1643: 60 Load 89(inFM0) - 1644: 24(fvec2) Load 87(inFV0) - 1645: 24(fvec2) MatrixTimesVector 1643 1644 - Store 1642(r5) 1645 - 1647: 6(float) Load 85(inF0) - 1648: 60 Load 89(inFM0) - 1649: 60 MatrixTimesScalar 1648 1647 - Store 1646(r6) 1649 + 1644: 24(fvec2) VectorTimesMatrix 1642 1643 + Store 1641(r4) 1644 + 1646: 60 Load 89(inFM0) + 1647: 24(fvec2) Load 87(inFV0) + 1648: 24(fvec2) MatrixTimesVector 1646 1647 + Store 1645(r5) 1648 + 1650: 6(float) Load 85(inF0) 1651: 60 Load 89(inFM0) - 1652: 6(float) Load 85(inF0) - 1653: 60 MatrixTimesScalar 1651 1652 - Store 1650(r7) 1653 - 1655: 60 Load 90(inFM1) - 1656: 60 Load 89(inFM0) - 1657: 60 MatrixTimesMatrix 1655 1656 - Store 1654(r8) 1657 + 1652: 60 MatrixTimesScalar 1651 1650 + Store 1649(r6) 1652 + 1654: 60 Load 89(inFM0) + 1655: 6(float) Load 85(inF0) + 1656: 60 MatrixTimesScalar 1654 1655 + Store 1653(r7) 1656 + 1658: 60 Load 90(inFM1) + 1659: 60 Load 89(inFM0) + 1660: 60 MatrixTimesMatrix 1658 1659 + Store 1657(r8) 1660 Return FunctionEnd 100(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 93 @@ -8232,51 +8237,51 @@ gl_FragCoord origin is upper left 98(inFM0): 69(ptr) FunctionParameter 99(inFM1): 69(ptr) FunctionParameter 101: Label - 1658(r0): 7(ptr) Variable Function - 1662(r1): 37(ptr) Variable Function - 1666(r2): 37(ptr) Variable Function - 1670(r3): 7(ptr) Variable Function - 1674(r4): 37(ptr) Variable Function - 1678(r5): 37(ptr) Variable Function - 1682(r6): 69(ptr) Variable Function - 1686(r7): 69(ptr) Variable Function - 1690(r8): 69(ptr) Variable Function - 1659: 6(float) Load 95(inF1) - 1660: 6(float) Load 94(inF0) - 1661: 6(float) FMul 1659 1660 - Store 1658(r0) 1661 + 1661(r0): 7(ptr) Variable Function + 1665(r1): 37(ptr) Variable Function + 1669(r2): 37(ptr) Variable Function + 1673(r3): 7(ptr) Variable Function + 1677(r4): 37(ptr) Variable Function + 1681(r5): 37(ptr) Variable Function + 1685(r6): 69(ptr) Variable Function + 1689(r7): 69(ptr) Variable Function + 1693(r8): 69(ptr) Variable Function + 1662: 6(float) Load 95(inF1) 1663: 6(float) Load 94(inF0) - 1664: 36(fvec3) Load 96(inFV0) - 1665: 36(fvec3) VectorTimesScalar 1664 1663 - Store 1662(r1) 1665 + 1664: 6(float) FMul 1662 1663 + Store 1661(r0) 1664 + 1666: 6(float) Load 94(inF0) 1667: 36(fvec3) Load 96(inFV0) - 1668: 6(float) Load 94(inF0) - 1669: 36(fvec3) VectorTimesScalar 1667 1668 - Store 1666(r2) 1669 - 1671: 36(fvec3) Load 96(inFV0) - 1672: 36(fvec3) Load 97(inFV1) - 1673: 6(float) Dot 1671 1672 - Store 1670(r3) 1673 - 1675: 36(fvec3) Load 96(inFV0) - 1676: 68 Load 98(inFM0) - 1677: 36(fvec3) VectorTimesMatrix 1675 1676 - Store 1674(r4) 1677 + 1668: 36(fvec3) VectorTimesScalar 1667 1666 + Store 1665(r1) 1668 + 1670: 36(fvec3) Load 96(inFV0) + 1671: 6(float) Load 94(inF0) + 1672: 36(fvec3) VectorTimesScalar 1670 1671 + Store 1669(r2) 1672 + 1674: 36(fvec3) Load 96(inFV0) + 1675: 36(fvec3) Load 97(inFV1) + 1676: 6(float) Dot 1674 1675 + Store 1673(r3) 1676 + 1678: 36(fvec3) Load 96(inFV0) 1679: 68 Load 98(inFM0) - 1680: 36(fvec3) Load 96(inFV0) - 1681: 36(fvec3) MatrixTimesVector 1679 1680 - Store 1678(r5) 1681 - 1683: 6(float) Load 94(inF0) - 1684: 68 Load 98(inFM0) - 1685: 68 MatrixTimesScalar 1684 1683 - Store 1682(r6) 1685 + 1680: 36(fvec3) VectorTimesMatrix 1678 1679 + Store 1677(r4) 1680 + 1682: 68 Load 98(inFM0) + 1683: 36(fvec3) Load 96(inFV0) + 1684: 36(fvec3) MatrixTimesVector 1682 1683 + Store 1681(r5) 1684 + 1686: 6(float) Load 94(inF0) 1687: 68 Load 98(inFM0) - 1688: 6(float) Load 94(inF0) - 1689: 68 MatrixTimesScalar 1687 1688 - Store 1686(r7) 1689 - 1691: 68 Load 99(inFM1) - 1692: 68 Load 98(inFM0) - 1693: 68 MatrixTimesMatrix 1691 1692 - Store 1690(r8) 1693 + 1688: 68 MatrixTimesScalar 1687 1686 + Store 1685(r6) 1688 + 1690: 68 Load 98(inFM0) + 1691: 6(float) Load 94(inF0) + 1692: 68 MatrixTimesScalar 1690 1691 + Store 1689(r7) 1692 + 1694: 68 Load 99(inFM1) + 1695: 68 Load 98(inFM0) + 1696: 68 MatrixTimesMatrix 1694 1695 + Store 1693(r8) 1696 Return FunctionEnd 109(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 102 @@ -8287,51 +8292,51 @@ gl_FragCoord origin is upper left 107(inFM0): 77(ptr) FunctionParameter 108(inFM1): 77(ptr) FunctionParameter 110: Label - 1694(r0): 7(ptr) Variable Function - 1698(r1): 49(ptr) Variable Function - 1702(r2): 49(ptr) Variable Function - 1706(r3): 7(ptr) Variable Function - 1710(r4): 49(ptr) Variable Function - 1714(r5): 49(ptr) Variable Function - 1718(r6): 77(ptr) Variable Function - 1722(r7): 77(ptr) Variable Function - 1726(r8): 77(ptr) Variable Function - 1695: 6(float) Load 104(inF1) - 1696: 6(float) Load 103(inF0) - 1697: 6(float) FMul 1695 1696 - Store 1694(r0) 1697 + 1697(r0): 7(ptr) Variable Function + 1701(r1): 49(ptr) Variable Function + 1705(r2): 49(ptr) Variable Function + 1709(r3): 7(ptr) Variable Function + 1713(r4): 49(ptr) Variable Function + 1717(r5): 49(ptr) Variable Function + 1721(r6): 77(ptr) Variable Function + 1725(r7): 77(ptr) Variable Function + 1729(r8): 77(ptr) Variable Function + 1698: 6(float) Load 104(inF1) 1699: 6(float) Load 103(inF0) - 1700: 48(fvec4) Load 105(inFV0) - 1701: 48(fvec4) VectorTimesScalar 1700 1699 - Store 1698(r1) 1701 + 1700: 6(float) FMul 1698 1699 + Store 1697(r0) 1700 + 1702: 6(float) Load 103(inF0) 1703: 48(fvec4) Load 105(inFV0) - 1704: 6(float) Load 103(inF0) - 1705: 48(fvec4) VectorTimesScalar 1703 1704 - Store 1702(r2) 1705 - 1707: 48(fvec4) Load 105(inFV0) - 1708: 48(fvec4) Load 106(inFV1) - 1709: 6(float) Dot 1707 1708 - Store 1706(r3) 1709 - 1711: 48(fvec4) Load 105(inFV0) - 1712: 76 Load 107(inFM0) - 1713: 48(fvec4) VectorTimesMatrix 1711 1712 - Store 1710(r4) 1713 + 1704: 48(fvec4) VectorTimesScalar 1703 1702 + Store 1701(r1) 1704 + 1706: 48(fvec4) Load 105(inFV0) + 1707: 6(float) Load 103(inF0) + 1708: 48(fvec4) VectorTimesScalar 1706 1707 + Store 1705(r2) 1708 + 1710: 48(fvec4) Load 105(inFV0) + 1711: 48(fvec4) Load 106(inFV1) + 1712: 6(float) Dot 1710 1711 + Store 1709(r3) 1712 + 1714: 48(fvec4) Load 105(inFV0) 1715: 76 Load 107(inFM0) - 1716: 48(fvec4) Load 105(inFV0) - 1717: 48(fvec4) MatrixTimesVector 1715 1716 - Store 1714(r5) 1717 - 1719: 6(float) Load 103(inF0) - 1720: 76 Load 107(inFM0) - 1721: 76 MatrixTimesScalar 1720 1719 - Store 1718(r6) 1721 + 1716: 48(fvec4) VectorTimesMatrix 1714 1715 + Store 1713(r4) 1716 + 1718: 76 Load 107(inFM0) + 1719: 48(fvec4) Load 105(inFV0) + 1720: 48(fvec4) MatrixTimesVector 1718 1719 + Store 1717(r5) 1720 + 1722: 6(float) Load 103(inF0) 1723: 76 Load 107(inFM0) - 1724: 6(float) Load 103(inF0) - 1725: 76 MatrixTimesScalar 1723 1724 - Store 1722(r7) 1725 - 1727: 76 Load 108(inFM1) - 1728: 76 Load 107(inFM0) - 1729: 76 MatrixTimesMatrix 1727 1728 - Store 1726(r8) 1729 + 1724: 76 MatrixTimesScalar 1723 1722 + Store 1721(r6) 1724 + 1726: 76 Load 107(inFM0) + 1727: 6(float) Load 103(inF0) + 1728: 76 MatrixTimesScalar 1726 1727 + Store 1725(r7) 1728 + 1730: 76 Load 108(inFM1) + 1731: 76 Load 107(inFM0) + 1732: 76 MatrixTimesMatrix 1730 1731 + Store 1729(r8) 1732 Return FunctionEnd 129(TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;): 2 Function None 119 @@ -8345,90 +8350,90 @@ gl_FragCoord origin is upper left 127(inFM3x4): 116(ptr) FunctionParameter 128(inFM2x4): 118(ptr) FunctionParameter 130: Label - 1730(r00): 7(ptr) Variable Function - 1734(r01): 25(ptr) Variable Function - 1738(r02): 37(ptr) Variable Function - 1742(r03): 25(ptr) Variable Function - 1746(r04): 37(ptr) Variable Function - 1750(r05): 7(ptr) Variable Function - 1754(r06): 7(ptr) Variable Function - 1758(r07): 37(ptr) Variable Function - 1762(r08): 25(ptr) Variable Function - 1766(r09): 25(ptr) Variable Function - 1770(r10): 37(ptr) Variable Function - 1774(r11): 112(ptr) Variable Function - 1778(r12): 114(ptr) Variable Function - 1782(r13): 61(ptr) Variable Function - 1786(r14): 112(ptr) Variable Function - 1790(r15): 118(ptr) Variable Function - 1794(r16): 116(ptr) Variable Function - 1731: 6(float) Load 121(inF1) - 1732: 6(float) Load 120(inF0) - 1733: 6(float) FMul 1731 1732 - Store 1730(r00) 1733 + 1733(r00): 7(ptr) Variable Function + 1737(r01): 25(ptr) Variable Function + 1741(r02): 37(ptr) Variable Function + 1745(r03): 25(ptr) Variable Function + 1749(r04): 37(ptr) Variable Function + 1753(r05): 7(ptr) Variable Function + 1757(r06): 7(ptr) Variable Function + 1761(r07): 37(ptr) Variable Function + 1765(r08): 25(ptr) Variable Function + 1769(r09): 25(ptr) Variable Function + 1773(r10): 37(ptr) Variable Function + 1777(r11): 112(ptr) Variable Function + 1781(r12): 114(ptr) Variable Function + 1785(r13): 61(ptr) Variable Function + 1789(r14): 112(ptr) Variable Function + 1793(r15): 118(ptr) Variable Function + 1797(r16): 116(ptr) Variable Function + 1734: 6(float) Load 121(inF1) 1735: 6(float) Load 120(inF0) - 1736: 24(fvec2) Load 122(inFV2) - 1737: 24(fvec2) VectorTimesScalar 1736 1735 - Store 1734(r01) 1737 - 1739: 6(float) Load 120(inF0) - 1740: 36(fvec3) Load 123(inFV3) - 1741: 36(fvec3) VectorTimesScalar 1740 1739 - Store 1738(r02) 1741 - 1743: 24(fvec2) Load 122(inFV2) - 1744: 6(float) Load 120(inF0) - 1745: 24(fvec2) VectorTimesScalar 1743 1744 - Store 1742(r03) 1745 - 1747: 36(fvec3) Load 123(inFV3) - 1748: 6(float) Load 120(inF0) - 1749: 36(fvec3) VectorTimesScalar 1747 1748 - Store 1746(r04) 1749 - 1751: 24(fvec2) Load 122(inFV2) - 1752: 24(fvec2) Load 122(inFV2) - 1753: 6(float) Dot 1751 1752 - Store 1750(r05) 1753 - 1755: 36(fvec3) Load 123(inFV3) - 1756: 36(fvec3) Load 123(inFV3) - 1757: 6(float) Dot 1755 1756 - Store 1754(r06) 1757 - 1759: 111 Load 124(inFM2x3) - 1760: 24(fvec2) Load 122(inFV2) - 1761: 36(fvec3) MatrixTimesVector 1759 1760 - Store 1758(r07) 1761 - 1763: 113 Load 125(inFM3x2) - 1764: 36(fvec3) Load 123(inFV3) - 1765: 24(fvec2) MatrixTimesVector 1763 1764 - Store 1762(r08) 1765 + 1736: 6(float) FMul 1734 1735 + Store 1733(r00) 1736 + 1738: 6(float) Load 120(inF0) + 1739: 24(fvec2) Load 122(inFV2) + 1740: 24(fvec2) VectorTimesScalar 1739 1738 + Store 1737(r01) 1740 + 1742: 6(float) Load 120(inF0) + 1743: 36(fvec3) Load 123(inFV3) + 1744: 36(fvec3) VectorTimesScalar 1743 1742 + Store 1741(r02) 1744 + 1746: 24(fvec2) Load 122(inFV2) + 1747: 6(float) Load 120(inF0) + 1748: 24(fvec2) VectorTimesScalar 1746 1747 + Store 1745(r03) 1748 + 1750: 36(fvec3) Load 123(inFV3) + 1751: 6(float) Load 120(inF0) + 1752: 36(fvec3) VectorTimesScalar 1750 1751 + Store 1749(r04) 1752 + 1754: 24(fvec2) Load 122(inFV2) + 1755: 24(fvec2) Load 122(inFV2) + 1756: 6(float) Dot 1754 1755 + Store 1753(r05) 1756 + 1758: 36(fvec3) Load 123(inFV3) + 1759: 36(fvec3) Load 123(inFV3) + 1760: 6(float) Dot 1758 1759 + Store 1757(r06) 1760 + 1762: 111 Load 124(inFM2x3) + 1763: 24(fvec2) Load 122(inFV2) + 1764: 36(fvec3) MatrixTimesVector 1762 1763 + Store 1761(r07) 1764 + 1766: 113 Load 125(inFM3x2) 1767: 36(fvec3) Load 123(inFV3) - 1768: 111 Load 124(inFM2x3) - 1769: 24(fvec2) VectorTimesMatrix 1767 1768 - Store 1766(r09) 1769 - 1771: 24(fvec2) Load 122(inFV2) - 1772: 113 Load 125(inFM3x2) - 1773: 36(fvec3) VectorTimesMatrix 1771 1772 - Store 1770(r10) 1773 - 1775: 6(float) Load 120(inF0) - 1776: 111 Load 124(inFM2x3) - 1777: 111 MatrixTimesScalar 1776 1775 - Store 1774(r11) 1777 - 1779: 6(float) Load 120(inF0) - 1780: 113 Load 125(inFM3x2) - 1781: 113 MatrixTimesScalar 1780 1779 - Store 1778(r12) 1781 + 1768: 24(fvec2) MatrixTimesVector 1766 1767 + Store 1765(r08) 1768 + 1770: 36(fvec3) Load 123(inFV3) + 1771: 111 Load 124(inFM2x3) + 1772: 24(fvec2) VectorTimesMatrix 1770 1771 + Store 1769(r09) 1772 + 1774: 24(fvec2) Load 122(inFV2) + 1775: 113 Load 125(inFM3x2) + 1776: 36(fvec3) VectorTimesMatrix 1774 1775 + Store 1773(r10) 1776 + 1778: 6(float) Load 120(inF0) + 1779: 111 Load 124(inFM2x3) + 1780: 111 MatrixTimesScalar 1779 1778 + Store 1777(r11) 1780 + 1782: 6(float) Load 120(inF0) 1783: 113 Load 125(inFM3x2) - 1784: 111 Load 124(inFM2x3) - 1785: 60 MatrixTimesMatrix 1783 1784 - Store 1782(r13) 1785 - 1787: 68 Load 126(inFM3x3) - 1788: 111 Load 124(inFM2x3) - 1789: 111 MatrixTimesMatrix 1787 1788 - Store 1786(r14) 1789 - 1791: 115 Load 127(inFM3x4) - 1792: 111 Load 124(inFM2x3) - 1793: 117 MatrixTimesMatrix 1791 1792 - Store 1790(r15) 1793 - 1795: 117 Load 128(inFM2x4) - 1796: 113 Load 125(inFM3x2) - 1797: 115 MatrixTimesMatrix 1795 1796 - Store 1794(r16) 1797 + 1784: 113 MatrixTimesScalar 1783 1782 + Store 1781(r12) 1784 + 1786: 113 Load 125(inFM3x2) + 1787: 111 Load 124(inFM2x3) + 1788: 60 MatrixTimesMatrix 1786 1787 + Store 1785(r13) 1788 + 1790: 68 Load 126(inFM3x3) + 1791: 111 Load 124(inFM2x3) + 1792: 111 MatrixTimesMatrix 1790 1791 + Store 1789(r14) 1792 + 1794: 115 Load 127(inFM3x4) + 1795: 111 Load 124(inFM2x3) + 1796: 117 MatrixTimesMatrix 1794 1795 + Store 1793(r15) 1796 + 1798: 117 Load 128(inFM2x4) + 1799: 113 Load 125(inFM3x2) + 1800: 115 MatrixTimesMatrix 1798 1799 + Store 1797(r16) 1800 Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.promote.down.frag.out b/Test/baseResults/hlsl.intrinsics.promote.down.frag.out new file mode 100644 index 00000000..f5ba86b0 --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.promote.down.frag.out @@ -0,0 +1,184 @@ +hlsl.intrinsics.promote.down.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:15 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child (temp uint) +0:16 'r00' (temp uint) +0:16 bitCount (temp uint) +0:16 Convert float to uint (temp uint) +0:16 f: direct index for structure (layout(offset=8 ) uniform float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:16 Constant: +0:16 2 (const uint) +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of uint) +0:17 'r01' (temp 2-component vector of uint) +0:17 bitFieldReverse (temp 2-component vector of uint) +0:17 Convert float to uint (temp 2-component vector of uint) +0:17 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:17 Constant: +0:17 6 (const uint) +0:20 move second child to first child (temp 4-component vector of float) +0:20 color: direct index for structure (temp 4-component vector of float) +0:20 'ps_output' (temp structure{temp 4-component vector of float color}) +0:20 Constant: +0:20 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:21 Sequence +0:21 Sequence +0:21 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:21 color: direct index for structure (temp 4-component vector of float) +0:21 'ps_output' (temp structure{temp 4-component vector of float color}) +0:21 Constant: +0:21 0 (const int) +0:21 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:15 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child (temp uint) +0:16 'r00' (temp uint) +0:16 bitCount (temp uint) +0:16 Convert float to uint (temp uint) +0:16 f: direct index for structure (layout(offset=8 ) uniform float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:16 Constant: +0:16 2 (const uint) +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of uint) +0:17 'r01' (temp 2-component vector of uint) +0:17 bitFieldReverse (temp 2-component vector of uint) +0:17 Convert float to uint (temp 2-component vector of uint) +0:17 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:17 Constant: +0:17 6 (const uint) +0:20 move second child to first child (temp 4-component vector of float) +0:20 color: direct index for structure (temp 4-component vector of float) +0:20 'ps_output' (temp structure{temp 4-component vector of float color}) +0:20 Constant: +0:20 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:21 Sequence +0:21 Sequence +0:21 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:21 color: direct index for structure (temp 4-component vector of float) +0:21 'ps_output' (temp structure{temp 4-component vector of float color}) +0:21 Constant: +0:21 0 (const int) +0:21 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 45 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 41 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 14 "$Global" + MemberName 14($Global) 0 "i" + MemberName 14($Global) 1 "u" + MemberName 14($Global) 2 "f" + MemberName 14($Global) 3 "b" + MemberName 14($Global) 4 "i2" + MemberName 14($Global) 5 "u2" + MemberName 14($Global) 6 "f2" + MemberName 14($Global) 7 "b2" + Name 16 "" + Name 24 "r01" + Name 32 "PS_OUTPUT" + MemberName 32(PS_OUTPUT) 0 "color" + Name 34 "ps_output" + Name 41 "color" + MemberDecorate 14($Global) 0 Offset 0 + MemberDecorate 14($Global) 1 Offset 4 + MemberDecorate 14($Global) 2 Offset 8 + MemberDecorate 14($Global) 3 Offset 12 + MemberDecorate 14($Global) 4 Offset 16 + MemberDecorate 14($Global) 5 Offset 24 + MemberDecorate 14($Global) 6 Offset 32 + MemberDecorate 14($Global) 7 Offset 40 + Decorate 14($Global) Block + Decorate 16 DescriptorSet 0 + Decorate 41(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypeInt 32 1 + 10: TypeFloat 32 + 11: TypeVector 9(int) 2 + 12: TypeVector 6(int) 2 + 13: TypeVector 10(float) 2 + 14($Global): TypeStruct 9(int) 6(int) 10(float) 6(int) 11(ivec2) 12(ivec2) 13(fvec2) 12(ivec2) + 15: TypePointer Uniform 14($Global) + 16: 15(ptr) Variable Uniform + 17: 9(int) Constant 2 + 18: TypePointer Uniform 10(float) + 23: TypePointer Function 12(ivec2) + 25: 9(int) Constant 6 + 26: TypePointer Uniform 13(fvec2) + 31: TypeVector 10(float) 4 + 32(PS_OUTPUT): TypeStruct 31(fvec4) + 33: TypePointer Function 32(PS_OUTPUT) + 35: 9(int) Constant 0 + 36: 10(float) Constant 0 + 37: 31(fvec4) ConstantComposite 36 36 36 36 + 38: TypePointer Function 31(fvec4) + 40: TypePointer Output 31(fvec4) + 41(color): 40(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 24(r01): 23(ptr) Variable Function + 34(ps_output): 33(ptr) Variable Function + 19: 18(ptr) AccessChain 16 17 + 20: 10(float) Load 19 + 21: 6(int) ConvertFToU 20 + 22: 6(int) BitCount 21 + Store 8(r00) 22 + 27: 26(ptr) AccessChain 16 25 + 28: 13(fvec2) Load 27 + 29: 12(ivec2) ConvertFToU 28 + 30: 12(ivec2) BitReverse 29 + Store 24(r01) 30 + 39: 38(ptr) AccessChain 34(ps_output) 35 + Store 39 37 + 42: 38(ptr) AccessChain 34(ps_output) 35 + 43: 31(fvec4) Load 42 + Store 41(color) 43 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.promote.frag.out b/Test/baseResults/hlsl.intrinsics.promote.frag.out new file mode 100644 index 00000000..82b9e686 --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.promote.frag.out @@ -0,0 +1,1313 @@ +hlsl.intrinsics.promote.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp float) +0:23 'r00' (temp float) +0:23 max (temp float) +0:23 Convert bool to float (temp float) +0:23 b: direct index for structure (layout(offset=12 ) uniform bool) +0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 Constant: +0:23 3 (const uint) +0:23 f: direct index for structure (layout(offset=8 ) uniform float) +0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 Constant: +0:23 2 (const uint) +0:24 Sequence +0:24 move second child to first child (temp uint) +0:24 'r01' (temp uint) +0:24 max (temp uint) +0:24 Convert bool to uint (temp uint) +0:24 b: direct index for structure (layout(offset=12 ) uniform bool) +0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 Constant: +0:24 3 (const uint) +0:24 u: direct index for structure (layout(offset=4 ) uniform uint) +0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 Constant: +0:24 1 (const uint) +0:25 Sequence +0:25 move second child to first child (temp int) +0:25 'r02' (temp int) +0:25 max (temp int) +0:25 Convert bool to int (temp int) +0:25 b: direct index for structure (layout(offset=12 ) uniform bool) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 Constant: +0:25 3 (const uint) +0:25 i: direct index for structure (layout(offset=0 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 Constant: +0:25 0 (const uint) +0:26 Sequence +0:26 move second child to first child (temp float) +0:26 'r03' (temp float) +0:26 max (temp float) +0:26 Convert int to float (temp float) +0:26 i: direct index for structure (layout(offset=0 ) uniform int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 Constant: +0:26 0 (const uint) +0:26 f: direct index for structure (layout(offset=8 ) uniform float) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 Constant: +0:26 2 (const uint) +0:27 Sequence +0:27 move second child to first child (temp float) +0:27 'r04' (temp float) +0:27 max (temp float) +0:27 Convert uint to float (temp float) +0:27 u: direct index for structure (layout(offset=4 ) uniform uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 Constant: +0:27 1 (const uint) +0:27 f: direct index for structure (layout(offset=8 ) uniform float) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 Constant: +0:27 2 (const uint) +0:29 Sequence +0:29 move second child to first child (temp 2-component vector of float) +0:29 'r10' (temp 2-component vector of float) +0:29 max (temp 2-component vector of float) +0:29 Convert bool to float (temp 2-component vector of float) +0:29 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 Constant: +0:29 7 (const uint) +0:29 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 Constant: +0:29 6 (const uint) +0:30 Sequence +0:30 move second child to first child (temp 2-component vector of uint) +0:30 'r11' (temp 2-component vector of uint) +0:30 max (temp 2-component vector of uint) +0:30 Convert bool to uint (temp 2-component vector of uint) +0:30 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 Constant: +0:30 7 (const uint) +0:30 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 Constant: +0:30 5 (const uint) +0:31 Sequence +0:31 move second child to first child (temp 2-component vector of int) +0:31 'r12' (temp 2-component vector of int) +0:31 max (temp 2-component vector of int) +0:31 Convert bool to int (temp 2-component vector of int) +0:31 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 Constant: +0:31 7 (const uint) +0:31 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 Constant: +0:31 4 (const uint) +0:32 Sequence +0:32 move second child to first child (temp 2-component vector of float) +0:32 'r13' (temp 2-component vector of float) +0:32 max (temp 2-component vector of float) +0:32 Convert int to float (temp 2-component vector of float) +0:32 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 Constant: +0:32 4 (const uint) +0:32 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 Constant: +0:32 6 (const uint) +0:33 Sequence +0:33 move second child to first child (temp 2-component vector of float) +0:33 'r14' (temp 2-component vector of float) +0:33 max (temp 2-component vector of float) +0:33 Convert uint to float (temp 2-component vector of float) +0:33 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 Constant: +0:33 5 (const uint) +0:33 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 Constant: +0:33 6 (const uint) +0:35 Sequence +0:35 move second child to first child (temp 2-component vector of float) +0:35 'r20' (temp 2-component vector of float) +0:35 clamp (temp 2-component vector of float) +0:35 Convert int to float (temp 2-component vector of float) +0:35 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 4 (const uint) +0:35 Convert uint to float (temp 2-component vector of float) +0:35 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 5 (const uint) +0:35 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 6 (const uint) +0:36 Sequence +0:36 move second child to first child (temp 2-component vector of uint) +0:36 'r21' (temp 2-component vector of uint) +0:36 clamp (temp 2-component vector of uint) +0:36 Convert bool to uint (temp 2-component vector of uint) +0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:36 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 5 (const uint) +0:36 Convert bool to uint (temp 2-component vector of uint) +0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:37 Sequence +0:37 move second child to first child (temp 2-component vector of float) +0:37 'r22' (temp 2-component vector of float) +0:37 clamp (temp 2-component vector of float) +0:37 Convert bool to float (temp 2-component vector of float) +0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:37 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 6 (const uint) +0:37 Convert bool to float (temp 2-component vector of float) +0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:40 Sequence +0:40 move second child to first child (temp 2-component vector of float) +0:40 'r30' (temp 2-component vector of float) +0:40 max (temp 2-component vector of float) +0:40 Construct vec2 (in 2-component vector of float) +0:40 Convert bool to float (temp float) +0:40 b: direct index for structure (layout(offset=12 ) uniform bool) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 Constant: +0:40 3 (const uint) +0:40 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 Constant: +0:40 6 (const uint) +0:41 Sequence +0:41 move second child to first child (temp 2-component vector of uint) +0:41 'r31' (temp 2-component vector of uint) +0:41 max (temp 2-component vector of uint) +0:41 Construct uvec2 (in 2-component vector of uint) +0:41 Convert bool to uint (temp uint) +0:41 b: direct index for structure (layout(offset=12 ) uniform bool) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 Constant: +0:41 3 (const uint) +0:41 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 Constant: +0:41 5 (const uint) +0:42 Sequence +0:42 move second child to first child (temp 2-component vector of int) +0:42 'r32' (temp 2-component vector of int) +0:42 max (temp 2-component vector of int) +0:42 Construct ivec2 (in 2-component vector of int) +0:42 Convert bool to int (temp int) +0:42 b: direct index for structure (layout(offset=12 ) uniform bool) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 Constant: +0:42 3 (const uint) +0:42 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 Constant: +0:42 4 (const uint) +0:43 Sequence +0:43 move second child to first child (temp 2-component vector of float) +0:43 'r33' (temp 2-component vector of float) +0:43 max (temp 2-component vector of float) +0:43 Construct vec2 (in 2-component vector of float) +0:43 Convert int to float (temp float) +0:43 i: direct index for structure (layout(offset=0 ) uniform int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 Constant: +0:43 0 (const uint) +0:43 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 Constant: +0:43 6 (const uint) +0:44 Sequence +0:44 move second child to first child (temp 2-component vector of float) +0:44 'r34' (temp 2-component vector of float) +0:44 max (temp 2-component vector of float) +0:44 Construct vec2 (in 2-component vector of float) +0:44 Convert uint to float (temp float) +0:44 u: direct index for structure (layout(offset=4 ) uniform uint) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 Constant: +0:44 1 (const uint) +0:44 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 Constant: +0:44 6 (const uint) +0:46 Sequence +0:46 move second child to first child (temp 2-component vector of float) +0:46 'r40' (temp 2-component vector of float) +0:46 clamp (temp 2-component vector of float) +0:46 Construct vec2 (in 2-component vector of float) +0:46 Convert int to float (temp float) +0:46 i: direct index for structure (layout(offset=0 ) uniform int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 0 (const uint) +0:46 Convert uint to float (temp 2-component vector of float) +0:46 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 5 (const uint) +0:46 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 6 (const uint) +0:47 Sequence +0:47 move second child to first child (temp 2-component vector of uint) +0:47 'r41' (temp 2-component vector of uint) +0:47 clamp (temp 2-component vector of uint) +0:47 Convert bool to uint (temp 2-component vector of uint) +0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:47 Construct uvec2 (in 2-component vector of uint) +0:47 u: direct index for structure (layout(offset=4 ) uniform uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 1 (const uint) +0:47 Convert bool to uint (temp 2-component vector of uint) +0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:48 Sequence +0:48 move second child to first child (temp 2-component vector of float) +0:48 'r42' (temp 2-component vector of float) +0:48 clamp (temp 2-component vector of float) +0:48 Convert bool to float (temp 2-component vector of float) +0:48 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 7 (const uint) +0:48 Construct vec2 (in 2-component vector of float) +0:48 f: direct index for structure (layout(offset=8 ) uniform float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 2 (const uint) +0:48 Construct vec2 (in 2-component vector of float) +0:48 Convert bool to float (temp float) +0:48 b: direct index for structure (layout(offset=12 ) uniform bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 3 (const uint) +0:49 Sequence +0:49 move second child to first child (temp 2-component vector of int) +0:49 'r43' (temp 2-component vector of int) +0:49 Convert uint to int (temp 2-component vector of int) +0:49 clamp (temp 2-component vector of uint) +0:49 Construct uvec2 (in 2-component vector of uint) +0:49 Convert int to uint (temp uint) +0:49 i: direct index for structure (layout(offset=0 ) uniform int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 0 (const uint) +0:49 Convert int to uint (temp 2-component vector of uint) +0:49 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 4 (const uint) +0:49 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 5 (const uint) +0:51 Sequence +0:51 move second child to first child (temp float) +0:51 'r50' (temp float) +0:51 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:51 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:51 Convert uint to int (temp int) +0:51 upos: direct index for structure (layout(offset=48 ) uniform uint) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:51 Constant: +0:51 8 (const uint) +0:52 Sequence +0:52 move second child to first child (temp float) +0:52 'r51' (temp float) +0:52 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:52 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:52 Convert float to int (temp int) +0:52 fpos: direct index for structure (layout(offset=52 ) uniform float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:52 Constant: +0:52 9 (const uint) +0:70 Sequence +0:70 move second child to first child (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:70 textureSize (temp uint) +0:70 'g_tTex1df4' (uniform texture1D) +0:70 move second child to first child (temp int) +0:70 'WidthI' (temp int) +0:70 Convert uint to int (temp int) +0:70 'sizeQueryTemp' (temp uint) +0:71 Sequence +0:71 move second child to first child (temp uint) +0:71 'sizeQueryTemp' (temp uint) +0:71 textureSize (temp uint) +0:71 'g_tTex1df4' (uniform texture1D) +0:71 Constant: +0:71 6 (const uint) +0:71 move second child to first child (temp int) +0:71 'WidthI' (temp int) +0:71 Convert uint to int (temp int) +0:71 'sizeQueryTemp' (temp uint) +0:71 move second child to first child (temp uint) +0:71 'NumberOfLevelsU' (temp uint) +0:71 textureQueryLevels (temp uint) +0:71 'g_tTex1df4' (uniform texture1D) +0:72 Sequence +0:72 move second child to first child (temp uint) +0:72 'sizeQueryTemp' (temp uint) +0:72 textureSize (temp uint) +0:72 'g_tTex1df4' (uniform texture1D) +0:72 Constant: +0:72 6 (const uint) +0:72 move second child to first child (temp uint) +0:72 'WidthU' (temp uint) +0:72 'sizeQueryTemp' (temp uint) +0:72 move second child to first child (temp int) +0:72 'NumberOfLevelsI' (temp int) +0:72 Convert uint to int (temp int) +0:72 textureQueryLevels (temp uint) +0:72 'g_tTex1df4' (uniform texture1D) +0:73 Sequence +0:73 move second child to first child (temp uint) +0:73 'sizeQueryTemp' (temp uint) +0:73 textureSize (temp uint) +0:73 'g_tTex1df4' (uniform texture1D) +0:73 Constant: +0:73 6 (const uint) +0:73 move second child to first child (temp int) +0:73 'WidthI' (temp int) +0:73 Convert uint to int (temp int) +0:73 'sizeQueryTemp' (temp uint) +0:73 move second child to first child (temp int) +0:73 'NumberOfLevelsI' (temp int) +0:73 Convert uint to int (temp int) +0:73 textureQueryLevels (temp uint) +0:73 'g_tTex1df4' (uniform texture1D) +0:77 move second child to first child (temp 4-component vector of float) +0:77 color: direct index for structure (temp 4-component vector of float) +0:77 'ps_output' (temp structure{temp 4-component vector of float color}) +0:77 Constant: +0:77 0 (const int) +0:77 Construct vec4 (temp 4-component vector of float) +0:77 'r00' (temp float) +0:78 Sequence +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:78 color: direct index for structure (temp 4-component vector of float) +0:78 'ps_output' (temp structure{temp 4-component vector of float color}) +0:78 Constant: +0:78 0 (const int) +0:78 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp float) +0:23 'r00' (temp float) +0:23 max (temp float) +0:23 Convert bool to float (temp float) +0:23 b: direct index for structure (layout(offset=12 ) uniform bool) +0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 Constant: +0:23 3 (const uint) +0:23 f: direct index for structure (layout(offset=8 ) uniform float) +0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 Constant: +0:23 2 (const uint) +0:24 Sequence +0:24 move second child to first child (temp uint) +0:24 'r01' (temp uint) +0:24 max (temp uint) +0:24 Convert bool to uint (temp uint) +0:24 b: direct index for structure (layout(offset=12 ) uniform bool) +0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 Constant: +0:24 3 (const uint) +0:24 u: direct index for structure (layout(offset=4 ) uniform uint) +0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 Constant: +0:24 1 (const uint) +0:25 Sequence +0:25 move second child to first child (temp int) +0:25 'r02' (temp int) +0:25 max (temp int) +0:25 Convert bool to int (temp int) +0:25 b: direct index for structure (layout(offset=12 ) uniform bool) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 Constant: +0:25 3 (const uint) +0:25 i: direct index for structure (layout(offset=0 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 Constant: +0:25 0 (const uint) +0:26 Sequence +0:26 move second child to first child (temp float) +0:26 'r03' (temp float) +0:26 max (temp float) +0:26 Convert int to float (temp float) +0:26 i: direct index for structure (layout(offset=0 ) uniform int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 Constant: +0:26 0 (const uint) +0:26 f: direct index for structure (layout(offset=8 ) uniform float) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 Constant: +0:26 2 (const uint) +0:27 Sequence +0:27 move second child to first child (temp float) +0:27 'r04' (temp float) +0:27 max (temp float) +0:27 Convert uint to float (temp float) +0:27 u: direct index for structure (layout(offset=4 ) uniform uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 Constant: +0:27 1 (const uint) +0:27 f: direct index for structure (layout(offset=8 ) uniform float) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 Constant: +0:27 2 (const uint) +0:29 Sequence +0:29 move second child to first child (temp 2-component vector of float) +0:29 'r10' (temp 2-component vector of float) +0:29 max (temp 2-component vector of float) +0:29 Convert bool to float (temp 2-component vector of float) +0:29 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 Constant: +0:29 7 (const uint) +0:29 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 Constant: +0:29 6 (const uint) +0:30 Sequence +0:30 move second child to first child (temp 2-component vector of uint) +0:30 'r11' (temp 2-component vector of uint) +0:30 max (temp 2-component vector of uint) +0:30 Convert bool to uint (temp 2-component vector of uint) +0:30 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 Constant: +0:30 7 (const uint) +0:30 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 Constant: +0:30 5 (const uint) +0:31 Sequence +0:31 move second child to first child (temp 2-component vector of int) +0:31 'r12' (temp 2-component vector of int) +0:31 max (temp 2-component vector of int) +0:31 Convert bool to int (temp 2-component vector of int) +0:31 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 Constant: +0:31 7 (const uint) +0:31 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 Constant: +0:31 4 (const uint) +0:32 Sequence +0:32 move second child to first child (temp 2-component vector of float) +0:32 'r13' (temp 2-component vector of float) +0:32 max (temp 2-component vector of float) +0:32 Convert int to float (temp 2-component vector of float) +0:32 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 Constant: +0:32 4 (const uint) +0:32 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 Constant: +0:32 6 (const uint) +0:33 Sequence +0:33 move second child to first child (temp 2-component vector of float) +0:33 'r14' (temp 2-component vector of float) +0:33 max (temp 2-component vector of float) +0:33 Convert uint to float (temp 2-component vector of float) +0:33 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 Constant: +0:33 5 (const uint) +0:33 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 Constant: +0:33 6 (const uint) +0:35 Sequence +0:35 move second child to first child (temp 2-component vector of float) +0:35 'r20' (temp 2-component vector of float) +0:35 clamp (temp 2-component vector of float) +0:35 Convert int to float (temp 2-component vector of float) +0:35 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 4 (const uint) +0:35 Convert uint to float (temp 2-component vector of float) +0:35 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 5 (const uint) +0:35 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 6 (const uint) +0:36 Sequence +0:36 move second child to first child (temp 2-component vector of uint) +0:36 'r21' (temp 2-component vector of uint) +0:36 clamp (temp 2-component vector of uint) +0:36 Convert bool to uint (temp 2-component vector of uint) +0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:36 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 5 (const uint) +0:36 Convert bool to uint (temp 2-component vector of uint) +0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:37 Sequence +0:37 move second child to first child (temp 2-component vector of float) +0:37 'r22' (temp 2-component vector of float) +0:37 clamp (temp 2-component vector of float) +0:37 Convert bool to float (temp 2-component vector of float) +0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:37 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 6 (const uint) +0:37 Convert bool to float (temp 2-component vector of float) +0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:40 Sequence +0:40 move second child to first child (temp 2-component vector of float) +0:40 'r30' (temp 2-component vector of float) +0:40 max (temp 2-component vector of float) +0:40 Construct vec2 (in 2-component vector of float) +0:40 Convert bool to float (temp float) +0:40 b: direct index for structure (layout(offset=12 ) uniform bool) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 Constant: +0:40 3 (const uint) +0:40 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 Constant: +0:40 6 (const uint) +0:41 Sequence +0:41 move second child to first child (temp 2-component vector of uint) +0:41 'r31' (temp 2-component vector of uint) +0:41 max (temp 2-component vector of uint) +0:41 Construct uvec2 (in 2-component vector of uint) +0:41 Convert bool to uint (temp uint) +0:41 b: direct index for structure (layout(offset=12 ) uniform bool) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 Constant: +0:41 3 (const uint) +0:41 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 Constant: +0:41 5 (const uint) +0:42 Sequence +0:42 move second child to first child (temp 2-component vector of int) +0:42 'r32' (temp 2-component vector of int) +0:42 max (temp 2-component vector of int) +0:42 Construct ivec2 (in 2-component vector of int) +0:42 Convert bool to int (temp int) +0:42 b: direct index for structure (layout(offset=12 ) uniform bool) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 Constant: +0:42 3 (const uint) +0:42 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 Constant: +0:42 4 (const uint) +0:43 Sequence +0:43 move second child to first child (temp 2-component vector of float) +0:43 'r33' (temp 2-component vector of float) +0:43 max (temp 2-component vector of float) +0:43 Construct vec2 (in 2-component vector of float) +0:43 Convert int to float (temp float) +0:43 i: direct index for structure (layout(offset=0 ) uniform int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 Constant: +0:43 0 (const uint) +0:43 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 Constant: +0:43 6 (const uint) +0:44 Sequence +0:44 move second child to first child (temp 2-component vector of float) +0:44 'r34' (temp 2-component vector of float) +0:44 max (temp 2-component vector of float) +0:44 Construct vec2 (in 2-component vector of float) +0:44 Convert uint to float (temp float) +0:44 u: direct index for structure (layout(offset=4 ) uniform uint) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 Constant: +0:44 1 (const uint) +0:44 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 Constant: +0:44 6 (const uint) +0:46 Sequence +0:46 move second child to first child (temp 2-component vector of float) +0:46 'r40' (temp 2-component vector of float) +0:46 clamp (temp 2-component vector of float) +0:46 Construct vec2 (in 2-component vector of float) +0:46 Convert int to float (temp float) +0:46 i: direct index for structure (layout(offset=0 ) uniform int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 0 (const uint) +0:46 Convert uint to float (temp 2-component vector of float) +0:46 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 5 (const uint) +0:46 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 6 (const uint) +0:47 Sequence +0:47 move second child to first child (temp 2-component vector of uint) +0:47 'r41' (temp 2-component vector of uint) +0:47 clamp (temp 2-component vector of uint) +0:47 Convert bool to uint (temp 2-component vector of uint) +0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:47 Construct uvec2 (in 2-component vector of uint) +0:47 u: direct index for structure (layout(offset=4 ) uniform uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 1 (const uint) +0:47 Convert bool to uint (temp 2-component vector of uint) +0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:48 Sequence +0:48 move second child to first child (temp 2-component vector of float) +0:48 'r42' (temp 2-component vector of float) +0:48 clamp (temp 2-component vector of float) +0:48 Convert bool to float (temp 2-component vector of float) +0:48 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 7 (const uint) +0:48 Construct vec2 (in 2-component vector of float) +0:48 f: direct index for structure (layout(offset=8 ) uniform float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 2 (const uint) +0:48 Construct vec2 (in 2-component vector of float) +0:48 Convert bool to float (temp float) +0:48 b: direct index for structure (layout(offset=12 ) uniform bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 3 (const uint) +0:49 Sequence +0:49 move second child to first child (temp 2-component vector of int) +0:49 'r43' (temp 2-component vector of int) +0:49 Convert uint to int (temp 2-component vector of int) +0:49 clamp (temp 2-component vector of uint) +0:49 Construct uvec2 (in 2-component vector of uint) +0:49 Convert int to uint (temp uint) +0:49 i: direct index for structure (layout(offset=0 ) uniform int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 0 (const uint) +0:49 Convert int to uint (temp 2-component vector of uint) +0:49 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 4 (const uint) +0:49 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 5 (const uint) +0:51 Sequence +0:51 move second child to first child (temp float) +0:51 'r50' (temp float) +0:51 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:51 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:51 Convert uint to int (temp int) +0:51 upos: direct index for structure (layout(offset=48 ) uniform uint) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:51 Constant: +0:51 8 (const uint) +0:52 Sequence +0:52 move second child to first child (temp float) +0:52 'r51' (temp float) +0:52 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:52 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:52 Convert float to int (temp int) +0:52 fpos: direct index for structure (layout(offset=52 ) uniform float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:52 Constant: +0:52 9 (const uint) +0:70 Sequence +0:70 move second child to first child (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:70 textureSize (temp uint) +0:70 'g_tTex1df4' (uniform texture1D) +0:70 move second child to first child (temp int) +0:70 'WidthI' (temp int) +0:70 Convert uint to int (temp int) +0:70 'sizeQueryTemp' (temp uint) +0:71 Sequence +0:71 move second child to first child (temp uint) +0:71 'sizeQueryTemp' (temp uint) +0:71 textureSize (temp uint) +0:71 'g_tTex1df4' (uniform texture1D) +0:71 Constant: +0:71 6 (const uint) +0:71 move second child to first child (temp int) +0:71 'WidthI' (temp int) +0:71 Convert uint to int (temp int) +0:71 'sizeQueryTemp' (temp uint) +0:71 move second child to first child (temp uint) +0:71 'NumberOfLevelsU' (temp uint) +0:71 textureQueryLevels (temp uint) +0:71 'g_tTex1df4' (uniform texture1D) +0:72 Sequence +0:72 move second child to first child (temp uint) +0:72 'sizeQueryTemp' (temp uint) +0:72 textureSize (temp uint) +0:72 'g_tTex1df4' (uniform texture1D) +0:72 Constant: +0:72 6 (const uint) +0:72 move second child to first child (temp uint) +0:72 'WidthU' (temp uint) +0:72 'sizeQueryTemp' (temp uint) +0:72 move second child to first child (temp int) +0:72 'NumberOfLevelsI' (temp int) +0:72 Convert uint to int (temp int) +0:72 textureQueryLevels (temp uint) +0:72 'g_tTex1df4' (uniform texture1D) +0:73 Sequence +0:73 move second child to first child (temp uint) +0:73 'sizeQueryTemp' (temp uint) +0:73 textureSize (temp uint) +0:73 'g_tTex1df4' (uniform texture1D) +0:73 Constant: +0:73 6 (const uint) +0:73 move second child to first child (temp int) +0:73 'WidthI' (temp int) +0:73 Convert uint to int (temp int) +0:73 'sizeQueryTemp' (temp uint) +0:73 move second child to first child (temp int) +0:73 'NumberOfLevelsI' (temp int) +0:73 Convert uint to int (temp int) +0:73 textureQueryLevels (temp uint) +0:73 'g_tTex1df4' (uniform texture1D) +0:77 move second child to first child (temp 4-component vector of float) +0:77 color: direct index for structure (temp 4-component vector of float) +0:77 'ps_output' (temp structure{temp 4-component vector of float color}) +0:77 Constant: +0:77 0 (const int) +0:77 Construct vec4 (temp 4-component vector of float) +0:77 'r00' (temp float) +0:78 Sequence +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:78 color: direct index for structure (temp 4-component vector of float) +0:78 'ps_output' (temp structure{temp 4-component vector of float color}) +0:78 Constant: +0:78 0 (const int) +0:78 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 320 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 316 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 14 "$Global" + MemberName 14($Global) 0 "i" + MemberName 14($Global) 1 "u" + MemberName 14($Global) 2 "f" + MemberName 14($Global) 3 "b" + MemberName 14($Global) 4 "i2" + MemberName 14($Global) 5 "u2" + MemberName 14($Global) 6 "f2" + MemberName 14($Global) 7 "b2" + MemberName 14($Global) 8 "upos" + MemberName 14($Global) 9 "fpos" + Name 16 "" + Name 33 "r01" + Name 44 "r02" + Name 54 "r03" + Name 61 "r04" + Name 69 "r10" + Name 86 "r11" + Name 97 "r12" + Name 109 "r13" + Name 116 "r14" + Name 123 "r20" + Name 133 "r21" + Name 145 "r22" + Name 157 "r30" + Name 166 "r31" + Name 175 "r32" + Name 184 "r33" + Name 192 "r34" + Name 200 "r40" + Name 211 "r41" + Name 224 "r42" + Name 238 "r43" + Name 250 "r50" + Name 254 "g_tTexbfs" + Name 264 "r51" + Name 273 "sizeQueryTemp" + Name 276 "g_tTex1df4" + Name 279 "WidthI" + Name 282 "sizeQueryTemp" + Name 288 "NumberOfLevelsU" + Name 291 "sizeQueryTemp" + Name 294 "WidthU" + Name 296 "NumberOfLevelsI" + Name 300 "sizeQueryTemp" + Name 308 "PS_OUTPUT" + MemberName 308(PS_OUTPUT) 0 "color" + Name 310 "ps_output" + Name 316 "color" + MemberDecorate 14($Global) 0 Offset 0 + MemberDecorate 14($Global) 1 Offset 4 + MemberDecorate 14($Global) 2 Offset 8 + MemberDecorate 14($Global) 3 Offset 12 + MemberDecorate 14($Global) 4 Offset 16 + MemberDecorate 14($Global) 5 Offset 24 + MemberDecorate 14($Global) 6 Offset 32 + MemberDecorate 14($Global) 7 Offset 40 + MemberDecorate 14($Global) 8 Offset 48 + MemberDecorate 14($Global) 9 Offset 52 + Decorate 14($Global) Block + Decorate 16 DescriptorSet 0 + Decorate 254(g_tTexbfs) DescriptorSet 0 + Decorate 276(g_tTex1df4) DescriptorSet 0 + Decorate 316(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeInt 32 1 + 10: TypeInt 32 0 + 11: TypeVector 9(int) 2 + 12: TypeVector 10(int) 2 + 13: TypeVector 6(float) 2 + 14($Global): TypeStruct 9(int) 10(int) 6(float) 10(int) 11(ivec2) 12(ivec2) 13(fvec2) 12(ivec2) 10(int) 6(float) + 15: TypePointer Uniform 14($Global) + 16: 15(ptr) Variable Uniform + 17: 9(int) Constant 3 + 18: TypePointer Uniform 10(int) + 21: TypeBool + 22: 10(int) Constant 0 + 24: 6(float) Constant 0 + 25: 6(float) Constant 1065353216 + 27: 9(int) Constant 2 + 28: TypePointer Uniform 6(float) + 32: TypePointer Function 10(int) + 37: 10(int) Constant 1 + 39: 9(int) Constant 1 + 43: TypePointer Function 9(int) + 48: 9(int) Constant 0 + 50: TypePointer Uniform 9(int) + 68: TypePointer Function 13(fvec2) + 70: 9(int) Constant 7 + 71: TypePointer Uniform 12(ivec2) + 74: TypeVector 21(bool) 2 + 75: 12(ivec2) ConstantComposite 22 22 + 77: 13(fvec2) ConstantComposite 24 24 + 78: 13(fvec2) ConstantComposite 25 25 + 80: 9(int) Constant 6 + 81: TypePointer Uniform 13(fvec2) + 85: TypePointer Function 12(ivec2) + 90: 12(ivec2) ConstantComposite 37 37 + 92: 9(int) Constant 5 + 96: TypePointer Function 11(ivec2) + 101: 11(ivec2) ConstantComposite 48 48 + 102: 11(ivec2) ConstantComposite 39 39 + 104: 9(int) Constant 4 + 105: TypePointer Uniform 11(ivec2) + 251: TypeImage 6(float) Buffer sampled format:R32f + 252: TypeSampledImage 251 + 253: TypePointer UniformConstant 252 + 254(g_tTexbfs): 253(ptr) Variable UniformConstant + 256: 9(int) Constant 8 + 261: TypeVector 6(float) 4 + 266: 9(int) Constant 9 + 274: TypeImage 6(float) 1D sampled format:Unknown + 275: TypePointer UniformConstant 274 + 276(g_tTex1df4): 275(ptr) Variable UniformConstant + 284: 10(int) Constant 6 + 308(PS_OUTPUT): TypeStruct 261(fvec4) + 309: TypePointer Function 308(PS_OUTPUT) + 313: TypePointer Function 261(fvec4) + 315: TypePointer Output 261(fvec4) + 316(color): 315(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 33(r01): 32(ptr) Variable Function + 44(r02): 43(ptr) Variable Function + 54(r03): 7(ptr) Variable Function + 61(r04): 7(ptr) Variable Function + 69(r10): 68(ptr) Variable Function + 86(r11): 85(ptr) Variable Function + 97(r12): 96(ptr) Variable Function + 109(r13): 68(ptr) Variable Function + 116(r14): 68(ptr) Variable Function + 123(r20): 68(ptr) Variable Function + 133(r21): 85(ptr) Variable Function + 145(r22): 68(ptr) Variable Function + 157(r30): 68(ptr) Variable Function + 166(r31): 85(ptr) Variable Function + 175(r32): 96(ptr) Variable Function + 184(r33): 68(ptr) Variable Function + 192(r34): 68(ptr) Variable Function + 200(r40): 68(ptr) Variable Function + 211(r41): 85(ptr) Variable Function + 224(r42): 68(ptr) Variable Function + 238(r43): 96(ptr) Variable Function + 250(r50): 7(ptr) Variable Function + 264(r51): 7(ptr) Variable Function +273(sizeQueryTemp): 32(ptr) Variable Function + 279(WidthI): 43(ptr) Variable Function +282(sizeQueryTemp): 32(ptr) Variable Function +288(NumberOfLevelsU): 32(ptr) Variable Function +291(sizeQueryTemp): 32(ptr) Variable Function + 294(WidthU): 32(ptr) Variable Function +296(NumberOfLevelsI): 43(ptr) Variable Function +300(sizeQueryTemp): 32(ptr) Variable Function + 310(ps_output): 309(ptr) Variable Function + 19: 18(ptr) AccessChain 16 17 + 20: 10(int) Load 19 + 23: 21(bool) INotEqual 20 22 + 26: 6(float) Select 23 25 24 + 29: 28(ptr) AccessChain 16 27 + 30: 6(float) Load 29 + 31: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 26 30 + Store 8(r00) 31 + 34: 18(ptr) AccessChain 16 17 + 35: 10(int) Load 34 + 36: 21(bool) INotEqual 35 22 + 38: 10(int) Select 36 37 22 + 40: 18(ptr) AccessChain 16 39 + 41: 10(int) Load 40 + 42: 10(int) ExtInst 1(GLSL.std.450) 41(UMax) 38 41 + Store 33(r01) 42 + 45: 18(ptr) AccessChain 16 17 + 46: 10(int) Load 45 + 47: 21(bool) INotEqual 46 22 + 49: 9(int) Select 47 39 48 + 51: 50(ptr) AccessChain 16 48 + 52: 9(int) Load 51 + 53: 9(int) ExtInst 1(GLSL.std.450) 42(SMax) 49 52 + Store 44(r02) 53 + 55: 50(ptr) AccessChain 16 48 + 56: 9(int) Load 55 + 57: 6(float) ConvertSToF 56 + 58: 28(ptr) AccessChain 16 27 + 59: 6(float) Load 58 + 60: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 57 59 + Store 54(r03) 60 + 62: 18(ptr) AccessChain 16 39 + 63: 10(int) Load 62 + 64: 6(float) ConvertUToF 63 + 65: 28(ptr) AccessChain 16 27 + 66: 6(float) Load 65 + 67: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 64 66 + Store 61(r04) 67 + 72: 71(ptr) AccessChain 16 70 + 73: 12(ivec2) Load 72 + 76: 74(bvec2) INotEqual 73 75 + 79: 13(fvec2) Select 76 78 77 + 82: 81(ptr) AccessChain 16 80 + 83: 13(fvec2) Load 82 + 84: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 79 83 + Store 69(r10) 84 + 87: 71(ptr) AccessChain 16 70 + 88: 12(ivec2) Load 87 + 89: 74(bvec2) INotEqual 88 75 + 91: 12(ivec2) Select 89 90 75 + 93: 71(ptr) AccessChain 16 92 + 94: 12(ivec2) Load 93 + 95: 12(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 91 94 + Store 86(r11) 95 + 98: 71(ptr) AccessChain 16 70 + 99: 12(ivec2) Load 98 + 100: 74(bvec2) INotEqual 99 75 + 103: 11(ivec2) Select 100 102 101 + 106: 105(ptr) AccessChain 16 104 + 107: 11(ivec2) Load 106 + 108: 11(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 103 107 + Store 97(r12) 108 + 110: 105(ptr) AccessChain 16 104 + 111: 11(ivec2) Load 110 + 112: 13(fvec2) ConvertSToF 111 + 113: 81(ptr) AccessChain 16 80 + 114: 13(fvec2) Load 113 + 115: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 112 114 + Store 109(r13) 115 + 117: 71(ptr) AccessChain 16 92 + 118: 12(ivec2) Load 117 + 119: 13(fvec2) ConvertUToF 118 + 120: 81(ptr) AccessChain 16 80 + 121: 13(fvec2) Load 120 + 122: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 119 121 + Store 116(r14) 122 + 124: 105(ptr) AccessChain 16 104 + 125: 11(ivec2) Load 124 + 126: 13(fvec2) ConvertSToF 125 + 127: 71(ptr) AccessChain 16 92 + 128: 12(ivec2) Load 127 + 129: 13(fvec2) ConvertUToF 128 + 130: 81(ptr) AccessChain 16 80 + 131: 13(fvec2) Load 130 + 132: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 126 129 131 + Store 123(r20) 132 + 134: 71(ptr) AccessChain 16 70 + 135: 12(ivec2) Load 134 + 136: 74(bvec2) INotEqual 135 75 + 137: 12(ivec2) Select 136 90 75 + 138: 71(ptr) AccessChain 16 92 + 139: 12(ivec2) Load 138 + 140: 71(ptr) AccessChain 16 70 + 141: 12(ivec2) Load 140 + 142: 74(bvec2) INotEqual 141 75 + 143: 12(ivec2) Select 142 90 75 + 144: 12(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 137 139 143 + Store 133(r21) 144 + 146: 71(ptr) AccessChain 16 70 + 147: 12(ivec2) Load 146 + 148: 74(bvec2) INotEqual 147 75 + 149: 13(fvec2) Select 148 78 77 + 150: 81(ptr) AccessChain 16 80 + 151: 13(fvec2) Load 150 + 152: 71(ptr) AccessChain 16 70 + 153: 12(ivec2) Load 152 + 154: 74(bvec2) INotEqual 153 75 + 155: 13(fvec2) Select 154 78 77 + 156: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 149 151 155 + Store 145(r22) 156 + 158: 18(ptr) AccessChain 16 17 + 159: 10(int) Load 158 + 160: 21(bool) INotEqual 159 22 + 161: 6(float) Select 160 25 24 + 162: 13(fvec2) CompositeConstruct 161 161 + 163: 81(ptr) AccessChain 16 80 + 164: 13(fvec2) Load 163 + 165: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 162 164 + Store 157(r30) 165 + 167: 18(ptr) AccessChain 16 17 + 168: 10(int) Load 167 + 169: 21(bool) INotEqual 168 22 + 170: 10(int) Select 169 37 22 + 171: 12(ivec2) CompositeConstruct 170 170 + 172: 71(ptr) AccessChain 16 92 + 173: 12(ivec2) Load 172 + 174: 12(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 171 173 + Store 166(r31) 174 + 176: 18(ptr) AccessChain 16 17 + 177: 10(int) Load 176 + 178: 21(bool) INotEqual 177 22 + 179: 9(int) Select 178 39 48 + 180: 11(ivec2) CompositeConstruct 179 179 + 181: 105(ptr) AccessChain 16 104 + 182: 11(ivec2) Load 181 + 183: 11(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 180 182 + Store 175(r32) 183 + 185: 50(ptr) AccessChain 16 48 + 186: 9(int) Load 185 + 187: 6(float) ConvertSToF 186 + 188: 13(fvec2) CompositeConstruct 187 187 + 189: 81(ptr) AccessChain 16 80 + 190: 13(fvec2) Load 189 + 191: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 188 190 + Store 184(r33) 191 + 193: 18(ptr) AccessChain 16 39 + 194: 10(int) Load 193 + 195: 6(float) ConvertUToF 194 + 196: 13(fvec2) CompositeConstruct 195 195 + 197: 81(ptr) AccessChain 16 80 + 198: 13(fvec2) Load 197 + 199: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 196 198 + Store 192(r34) 199 + 201: 50(ptr) AccessChain 16 48 + 202: 9(int) Load 201 + 203: 6(float) ConvertSToF 202 + 204: 13(fvec2) CompositeConstruct 203 203 + 205: 71(ptr) AccessChain 16 92 + 206: 12(ivec2) Load 205 + 207: 13(fvec2) ConvertUToF 206 + 208: 81(ptr) AccessChain 16 80 + 209: 13(fvec2) Load 208 + 210: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 204 207 209 + Store 200(r40) 210 + 212: 71(ptr) AccessChain 16 70 + 213: 12(ivec2) Load 212 + 214: 74(bvec2) INotEqual 213 75 + 215: 12(ivec2) Select 214 90 75 + 216: 18(ptr) AccessChain 16 39 + 217: 10(int) Load 216 + 218: 12(ivec2) CompositeConstruct 217 217 + 219: 71(ptr) AccessChain 16 70 + 220: 12(ivec2) Load 219 + 221: 74(bvec2) INotEqual 220 75 + 222: 12(ivec2) Select 221 90 75 + 223: 12(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 215 218 222 + Store 211(r41) 223 + 225: 71(ptr) AccessChain 16 70 + 226: 12(ivec2) Load 225 + 227: 74(bvec2) INotEqual 226 75 + 228: 13(fvec2) Select 227 78 77 + 229: 28(ptr) AccessChain 16 27 + 230: 6(float) Load 229 + 231: 13(fvec2) CompositeConstruct 230 230 + 232: 18(ptr) AccessChain 16 17 + 233: 10(int) Load 232 + 234: 21(bool) INotEqual 233 22 + 235: 6(float) Select 234 25 24 + 236: 13(fvec2) CompositeConstruct 235 235 + 237: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 228 231 236 + Store 224(r42) 237 + 239: 50(ptr) AccessChain 16 48 + 240: 9(int) Load 239 + 241: 10(int) Bitcast 240 + 242: 12(ivec2) CompositeConstruct 241 241 + 243: 105(ptr) AccessChain 16 104 + 244: 11(ivec2) Load 243 + 245: 12(ivec2) Bitcast 244 + 246: 71(ptr) AccessChain 16 92 + 247: 12(ivec2) Load 246 + 248: 12(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 242 245 247 + 249: 11(ivec2) Bitcast 248 + Store 238(r43) 249 + 255: 252 Load 254(g_tTexbfs) + 257: 18(ptr) AccessChain 16 256 + 258: 10(int) Load 257 + 259: 9(int) Bitcast 258 + 260: 251 Image 255 + 262: 261(fvec4) ImageFetch 260 259 + 263: 6(float) CompositeExtract 262 0 + Store 250(r50) 263 + 265: 252 Load 254(g_tTexbfs) + 267: 28(ptr) AccessChain 16 266 + 268: 6(float) Load 267 + 269: 9(int) ConvertFToS 268 + 270: 251 Image 265 + 271: 261(fvec4) ImageFetch 270 269 + 272: 6(float) CompositeExtract 271 0 + Store 264(r51) 272 + 277: 274 Load 276(g_tTex1df4) + 278: 9(int) ImageQuerySize 277 + Store 273(sizeQueryTemp) 278 + 280: 10(int) Load 273(sizeQueryTemp) + 281: 9(int) Bitcast 280 + Store 279(WidthI) 281 + 283: 274 Load 276(g_tTex1df4) + 285: 9(int) ImageQuerySizeLod 283 284 + Store 282(sizeQueryTemp) 285 + 286: 10(int) Load 282(sizeQueryTemp) + 287: 9(int) Bitcast 286 + Store 279(WidthI) 287 + 289: 274 Load 276(g_tTex1df4) + 290: 9(int) ImageQueryLevels 289 + Store 288(NumberOfLevelsU) 290 + 292: 274 Load 276(g_tTex1df4) + 293: 9(int) ImageQuerySizeLod 292 284 + Store 291(sizeQueryTemp) 293 + 295: 10(int) Load 291(sizeQueryTemp) + Store 294(WidthU) 295 + 297: 274 Load 276(g_tTex1df4) + 298: 9(int) ImageQueryLevels 297 + 299: 9(int) Bitcast 298 + Store 296(NumberOfLevelsI) 299 + 301: 274 Load 276(g_tTex1df4) + 302: 9(int) ImageQuerySizeLod 301 284 + Store 300(sizeQueryTemp) 302 + 303: 10(int) Load 300(sizeQueryTemp) + 304: 9(int) Bitcast 303 + Store 279(WidthI) 304 + 305: 274 Load 276(g_tTex1df4) + 306: 9(int) ImageQueryLevels 305 + 307: 9(int) Bitcast 306 + Store 296(NumberOfLevelsI) 307 + 311: 6(float) Load 8(r00) + 312: 261(fvec4) CompositeConstruct 311 311 311 311 + 314: 313(ptr) AccessChain 310(ps_output) 48 + Store 314 312 + 317: 313(ptr) AccessChain 310(ps_output) 48 + 318: 261(fvec4) Load 317 + Store 316(color) 318 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out new file mode 100644 index 00000000..ebe6a24c --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out @@ -0,0 +1,337 @@ +hlsl.intrinsics.promote.outputs.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:37 clamp (temp float) +0:37 fpos: direct index for structure (layout(offset=52 ) uniform float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 9 (const uint) +0:37 Constant: +0:37 0.000000 +0:37 Constant: +0:37 1.000000 +0:40 Sequence +0:40 move second child to first child (temp uint) +0:40 'sizeQueryTemp' (temp uint) +0:40 textureSize (temp uint) +0:40 'g_tTex1df4' (uniform texture1D) +0:40 move second child to first child (temp int) +0:40 'WidthI' (temp int) +0:40 Convert uint to int (temp int) +0:40 'sizeQueryTemp' (temp uint) +0:41 Sequence +0:41 move second child to first child (temp uint) +0:41 'sizeQueryTemp' (temp uint) +0:41 textureSize (temp uint) +0:41 'g_tTex1df4' (uniform texture1D) +0:41 Constant: +0:41 6 (const uint) +0:41 move second child to first child (temp int) +0:41 'WidthI' (temp int) +0:41 Convert uint to int (temp int) +0:41 'sizeQueryTemp' (temp uint) +0:41 move second child to first child (temp uint) +0:41 'NumberOfLevelsU' (temp uint) +0:41 textureQueryLevels (temp uint) +0:41 'g_tTex1df4' (uniform texture1D) +0:42 Sequence +0:42 move second child to first child (temp uint) +0:42 'sizeQueryTemp' (temp uint) +0:42 textureSize (temp uint) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 Constant: +0:42 6 (const uint) +0:42 move second child to first child (temp uint) +0:42 'WidthU' (temp uint) +0:42 'sizeQueryTemp' (temp uint) +0:42 move second child to first child (temp int) +0:42 'NumberOfLevelsI' (temp int) +0:42 Convert uint to int (temp int) +0:42 textureQueryLevels (temp uint) +0:42 'g_tTex1df4' (uniform texture1D) +0:43 Sequence +0:43 move second child to first child (temp uint) +0:43 'sizeQueryTemp' (temp uint) +0:43 textureSize (temp uint) +0:43 'g_tTex1df4' (uniform texture1D) +0:43 Constant: +0:43 6 (const uint) +0:43 move second child to first child (temp int) +0:43 'WidthI' (temp int) +0:43 Convert uint to int (temp int) +0:43 'sizeQueryTemp' (temp uint) +0:43 move second child to first child (temp int) +0:43 'NumberOfLevelsI' (temp int) +0:43 Convert uint to int (temp int) +0:43 textureQueryLevels (temp uint) +0:43 'g_tTex1df4' (uniform texture1D) +0:47 move second child to first child (temp 4-component vector of float) +0:47 color: direct index for structure (temp 4-component vector of float) +0:47 'ps_output' (temp structure{temp 4-component vector of float color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:48 color: direct index for structure (temp 4-component vector of float) +0:48 'ps_output' (temp structure{temp 4-component vector of float color}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:37 clamp (temp float) +0:37 fpos: direct index for structure (layout(offset=52 ) uniform float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 9 (const uint) +0:37 Constant: +0:37 0.000000 +0:37 Constant: +0:37 1.000000 +0:40 Sequence +0:40 move second child to first child (temp uint) +0:40 'sizeQueryTemp' (temp uint) +0:40 textureSize (temp uint) +0:40 'g_tTex1df4' (uniform texture1D) +0:40 move second child to first child (temp int) +0:40 'WidthI' (temp int) +0:40 Convert uint to int (temp int) +0:40 'sizeQueryTemp' (temp uint) +0:41 Sequence +0:41 move second child to first child (temp uint) +0:41 'sizeQueryTemp' (temp uint) +0:41 textureSize (temp uint) +0:41 'g_tTex1df4' (uniform texture1D) +0:41 Constant: +0:41 6 (const uint) +0:41 move second child to first child (temp int) +0:41 'WidthI' (temp int) +0:41 Convert uint to int (temp int) +0:41 'sizeQueryTemp' (temp uint) +0:41 move second child to first child (temp uint) +0:41 'NumberOfLevelsU' (temp uint) +0:41 textureQueryLevels (temp uint) +0:41 'g_tTex1df4' (uniform texture1D) +0:42 Sequence +0:42 move second child to first child (temp uint) +0:42 'sizeQueryTemp' (temp uint) +0:42 textureSize (temp uint) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 Constant: +0:42 6 (const uint) +0:42 move second child to first child (temp uint) +0:42 'WidthU' (temp uint) +0:42 'sizeQueryTemp' (temp uint) +0:42 move second child to first child (temp int) +0:42 'NumberOfLevelsI' (temp int) +0:42 Convert uint to int (temp int) +0:42 textureQueryLevels (temp uint) +0:42 'g_tTex1df4' (uniform texture1D) +0:43 Sequence +0:43 move second child to first child (temp uint) +0:43 'sizeQueryTemp' (temp uint) +0:43 textureSize (temp uint) +0:43 'g_tTex1df4' (uniform texture1D) +0:43 Constant: +0:43 6 (const uint) +0:43 move second child to first child (temp int) +0:43 'WidthI' (temp int) +0:43 Convert uint to int (temp int) +0:43 'sizeQueryTemp' (temp uint) +0:43 move second child to first child (temp int) +0:43 'NumberOfLevelsI' (temp int) +0:43 Convert uint to int (temp int) +0:43 textureQueryLevels (temp uint) +0:43 'g_tTex1df4' (uniform texture1D) +0:47 move second child to first child (temp 4-component vector of float) +0:47 color: direct index for structure (temp 4-component vector of float) +0:47 'ps_output' (temp structure{temp 4-component vector of float color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:48 color: direct index for structure (temp 4-component vector of float) +0:48 'ps_output' (temp structure{temp 4-component vector of float color}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 76 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 68 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 12 "$Global" + MemberName 12($Global) 0 "i" + MemberName 12($Global) 1 "u" + MemberName 12($Global) 2 "f" + MemberName 12($Global) 3 "b" + MemberName 12($Global) 4 "i2" + MemberName 12($Global) 5 "u2" + MemberName 12($Global) 6 "f2" + MemberName 12($Global) 7 "b2" + MemberName 12($Global) 8 "upos" + MemberName 12($Global) 9 "fpos" + Name 14 "" + Name 23 "sizeQueryTemp" + Name 26 "g_tTex1df4" + Name 30 "WidthI" + Name 33 "sizeQueryTemp" + Name 39 "NumberOfLevelsU" + Name 42 "sizeQueryTemp" + Name 45 "WidthU" + Name 47 "NumberOfLevelsI" + Name 51 "sizeQueryTemp" + Name 60 "PS_OUTPUT" + MemberName 60(PS_OUTPUT) 0 "color" + Name 62 "ps_output" + Name 68 "color" + Name 75 "g_tTexbfs" + MemberDecorate 12($Global) 0 Offset 0 + MemberDecorate 12($Global) 1 Offset 4 + MemberDecorate 12($Global) 2 Offset 8 + MemberDecorate 12($Global) 3 Offset 12 + MemberDecorate 12($Global) 4 Offset 16 + MemberDecorate 12($Global) 5 Offset 24 + MemberDecorate 12($Global) 6 Offset 32 + MemberDecorate 12($Global) 7 Offset 40 + MemberDecorate 12($Global) 8 Offset 48 + MemberDecorate 12($Global) 9 Offset 52 + Decorate 12($Global) Block + Decorate 14 DescriptorSet 0 + Decorate 26(g_tTex1df4) DescriptorSet 0 + Decorate 68(color) Location 0 + Decorate 75(g_tTexbfs) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeInt 32 0 + 8: TypeFloat 32 + 9: TypeVector 6(int) 2 + 10: TypeVector 7(int) 2 + 11: TypeVector 8(float) 2 + 12($Global): TypeStruct 6(int) 7(int) 8(float) 7(int) 9(ivec2) 10(ivec2) 11(fvec2) 10(ivec2) 7(int) 8(float) + 13: TypePointer Uniform 12($Global) + 14: 13(ptr) Variable Uniform + 15: 6(int) Constant 9 + 16: TypePointer Uniform 8(float) + 19: 8(float) Constant 0 + 20: 8(float) Constant 1065353216 + 22: TypePointer Function 7(int) + 24: TypeImage 8(float) 1D sampled format:Unknown + 25: TypePointer UniformConstant 24 + 26(g_tTex1df4): 25(ptr) Variable UniformConstant + 29: TypePointer Function 6(int) + 35: 7(int) Constant 6 + 59: TypeVector 8(float) 4 + 60(PS_OUTPUT): TypeStruct 59(fvec4) + 61: TypePointer Function 60(PS_OUTPUT) + 63: 6(int) Constant 0 + 64: 59(fvec4) ConstantComposite 19 19 19 19 + 65: TypePointer Function 59(fvec4) + 67: TypePointer Output 59(fvec4) + 68(color): 67(ptr) Variable Output + 72: TypeImage 8(float) Buffer sampled format:R32f + 73: TypeSampledImage 72 + 74: TypePointer UniformConstant 73 + 75(g_tTexbfs): 74(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +23(sizeQueryTemp): 22(ptr) Variable Function + 30(WidthI): 29(ptr) Variable Function +33(sizeQueryTemp): 22(ptr) Variable Function +39(NumberOfLevelsU): 22(ptr) Variable Function +42(sizeQueryTemp): 22(ptr) Variable Function + 45(WidthU): 22(ptr) Variable Function +47(NumberOfLevelsI): 29(ptr) Variable Function +51(sizeQueryTemp): 22(ptr) Variable Function + 62(ps_output): 61(ptr) Variable Function + 17: 16(ptr) AccessChain 14 15 + 18: 8(float) Load 17 + 21: 8(float) ExtInst 1(GLSL.std.450) 43(FClamp) 18 19 20 + 27: 24 Load 26(g_tTex1df4) + 28: 6(int) ImageQuerySize 27 + Store 23(sizeQueryTemp) 28 + 31: 7(int) Load 23(sizeQueryTemp) + 32: 6(int) Bitcast 31 + Store 30(WidthI) 32 + 34: 24 Load 26(g_tTex1df4) + 36: 6(int) ImageQuerySizeLod 34 35 + Store 33(sizeQueryTemp) 36 + 37: 7(int) Load 33(sizeQueryTemp) + 38: 6(int) Bitcast 37 + Store 30(WidthI) 38 + 40: 24 Load 26(g_tTex1df4) + 41: 6(int) ImageQueryLevels 40 + Store 39(NumberOfLevelsU) 41 + 43: 24 Load 26(g_tTex1df4) + 44: 6(int) ImageQuerySizeLod 43 35 + Store 42(sizeQueryTemp) 44 + 46: 7(int) Load 42(sizeQueryTemp) + Store 45(WidthU) 46 + 48: 24 Load 26(g_tTex1df4) + 49: 6(int) ImageQueryLevels 48 + 50: 6(int) Bitcast 49 + Store 47(NumberOfLevelsI) 50 + 52: 24 Load 26(g_tTex1df4) + 53: 6(int) ImageQuerySizeLod 52 35 + Store 51(sizeQueryTemp) 53 + 54: 7(int) Load 51(sizeQueryTemp) + 55: 6(int) Bitcast 54 + Store 30(WidthI) 55 + 56: 24 Load 26(g_tTex1df4) + 57: 6(int) ImageQueryLevels 56 + 58: 6(int) Bitcast 57 + Store 47(NumberOfLevelsI) 58 + 66: 65(ptr) AccessChain 62(ps_output) 63 + Store 66 64 + 69: 65(ptr) AccessChain 62(ps_output) 63 + 70: 59(fvec4) Load 69 + Store 68(color) 70 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out index 7e7a5119..c3a55137 100644 --- a/Test/baseResults/hlsl.intrinsics.vert.out +++ b/Test/baseResults/hlsl.intrinsics.vert.out @@ -40,9 +40,9 @@ Shader version: 450 0:16 'inF0' (in float) 0:17 hyp. cosine (temp float) 0:17 'inF0' (in float) -0:18 bitCount (temp uint) +0:18 bitCount (temp int) 0:18 Constant: -0:18 7 (const uint) +0:18 7 (const int) 0:19 degrees (temp float) 0:19 'inF0' (in float) 0:23 exp (temp float) @@ -96,9 +96,9 @@ Shader version: 450 0:42 'inF1' (in float) 0:43 radians (temp float) 0:43 'inF0' (in float) -0:44 bitFieldReverse (temp uint) +0:44 bitFieldReverse (temp int) 0:44 Constant: -0:44 2 (const uint) +0:44 2 (const int) 0:45 roundEven (temp float) 0:45 'inF0' (in float) 0:46 inverse sqrt (temp float) @@ -190,10 +190,10 @@ Shader version: 450 0:84 'inF0' (in 2-component vector of float) 0:85 hyp. cosine (temp 2-component vector of float) 0:85 'inF0' (in 2-component vector of float) -0:? bitCount (temp 2-component vector of uint) +0:? bitCount (temp 2-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) +0:? 7 (const int) +0:? 3 (const int) 0:87 degrees (temp 2-component vector of float) 0:87 'inF0' (in 2-component vector of float) 0:88 distance (temp float) @@ -269,10 +269,10 @@ Shader version: 450 0:118 'inF1' (in 2-component vector of float) 0:118 Constant: 0:118 2.000000 -0:? bitFieldReverse (temp 2-component vector of uint) +0:? bitFieldReverse (temp 2-component vector of int) 0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) +0:? 1 (const int) +0:? 2 (const int) 0:120 roundEven (temp 2-component vector of float) 0:120 'inF0' (in 2-component vector of float) 0:121 inverse sqrt (temp 2-component vector of float) @@ -356,11 +356,11 @@ Shader version: 450 0:154 'inF0' (in 3-component vector of float) 0:155 hyp. cosine (temp 3-component vector of float) 0:155 'inF0' (in 3-component vector of float) -0:? bitCount (temp 3-component vector of uint) +0:? bitCount (temp 3-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:? 5 (const uint) +0:? 7 (const int) +0:? 3 (const int) +0:? 5 (const int) 0:157 cross-product (temp 3-component vector of float) 0:157 'inF0' (in 3-component vector of float) 0:157 'inF1' (in 3-component vector of float) @@ -439,11 +439,11 @@ Shader version: 450 0:189 'inF1' (in 3-component vector of float) 0:189 Constant: 0:189 2.000000 -0:? bitFieldReverse (temp 3-component vector of uint) +0:? bitFieldReverse (temp 3-component vector of int) 0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:? 3 (const uint) +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) 0:191 roundEven (temp 3-component vector of float) 0:191 'inF0' (in 3-component vector of float) 0:192 inverse sqrt (temp 3-component vector of float) @@ -528,12 +528,12 @@ Shader version: 450 0:225 'inF0' (in 4-component vector of float) 0:226 hyp. cosine (temp 4-component vector of float) 0:226 'inF0' (in 4-component vector of float) -0:? bitCount (temp 4-component vector of uint) +0:? bitCount (temp 4-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:? 5 (const uint) -0:? 2 (const uint) +0:? 7 (const int) +0:? 3 (const int) +0:? 5 (const int) +0:? 2 (const int) 0:228 degrees (temp 4-component vector of float) 0:228 'inF0' (in 4-component vector of float) 0:229 distance (temp float) @@ -629,12 +629,12 @@ Shader version: 450 0:260 'inF1' (in 4-component vector of float) 0:260 Constant: 0:260 2.000000 -0:? bitFieldReverse (temp 4-component vector of uint) +0:? bitFieldReverse (temp 4-component vector of int) 0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:? 3 (const uint) -0:? 4 (const uint) +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) 0:262 roundEven (temp 4-component vector of float) 0:262 'inF0' (in 4-component vector of float) 0:263 inverse sqrt (temp 4-component vector of float) @@ -1438,9 +1438,9 @@ Shader version: 450 0:16 'inF0' (in float) 0:17 hyp. cosine (temp float) 0:17 'inF0' (in float) -0:18 bitCount (temp uint) +0:18 bitCount (temp int) 0:18 Constant: -0:18 7 (const uint) +0:18 7 (const int) 0:19 degrees (temp float) 0:19 'inF0' (in float) 0:23 exp (temp float) @@ -1494,9 +1494,9 @@ Shader version: 450 0:42 'inF1' (in float) 0:43 radians (temp float) 0:43 'inF0' (in float) -0:44 bitFieldReverse (temp uint) +0:44 bitFieldReverse (temp int) 0:44 Constant: -0:44 2 (const uint) +0:44 2 (const int) 0:45 roundEven (temp float) 0:45 'inF0' (in float) 0:46 inverse sqrt (temp float) @@ -1588,10 +1588,10 @@ Shader version: 450 0:84 'inF0' (in 2-component vector of float) 0:85 hyp. cosine (temp 2-component vector of float) 0:85 'inF0' (in 2-component vector of float) -0:? bitCount (temp 2-component vector of uint) +0:? bitCount (temp 2-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) +0:? 7 (const int) +0:? 3 (const int) 0:87 degrees (temp 2-component vector of float) 0:87 'inF0' (in 2-component vector of float) 0:88 distance (temp float) @@ -1667,10 +1667,10 @@ Shader version: 450 0:118 'inF1' (in 2-component vector of float) 0:118 Constant: 0:118 2.000000 -0:? bitFieldReverse (temp 2-component vector of uint) +0:? bitFieldReverse (temp 2-component vector of int) 0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) +0:? 1 (const int) +0:? 2 (const int) 0:120 roundEven (temp 2-component vector of float) 0:120 'inF0' (in 2-component vector of float) 0:121 inverse sqrt (temp 2-component vector of float) @@ -1754,11 +1754,11 @@ Shader version: 450 0:154 'inF0' (in 3-component vector of float) 0:155 hyp. cosine (temp 3-component vector of float) 0:155 'inF0' (in 3-component vector of float) -0:? bitCount (temp 3-component vector of uint) +0:? bitCount (temp 3-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:? 5 (const uint) +0:? 7 (const int) +0:? 3 (const int) +0:? 5 (const int) 0:157 cross-product (temp 3-component vector of float) 0:157 'inF0' (in 3-component vector of float) 0:157 'inF1' (in 3-component vector of float) @@ -1837,11 +1837,11 @@ Shader version: 450 0:189 'inF1' (in 3-component vector of float) 0:189 Constant: 0:189 2.000000 -0:? bitFieldReverse (temp 3-component vector of uint) +0:? bitFieldReverse (temp 3-component vector of int) 0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:? 3 (const uint) +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) 0:191 roundEven (temp 3-component vector of float) 0:191 'inF0' (in 3-component vector of float) 0:192 inverse sqrt (temp 3-component vector of float) @@ -1926,12 +1926,12 @@ Shader version: 450 0:225 'inF0' (in 4-component vector of float) 0:226 hyp. cosine (temp 4-component vector of float) 0:226 'inF0' (in 4-component vector of float) -0:? bitCount (temp 4-component vector of uint) +0:? bitCount (temp 4-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:? 5 (const uint) -0:? 2 (const uint) +0:? 7 (const int) +0:? 3 (const int) +0:? 5 (const int) +0:? 2 (const int) 0:228 degrees (temp 4-component vector of float) 0:228 'inF0' (in 4-component vector of float) 0:229 distance (temp float) @@ -2027,12 +2027,12 @@ Shader version: 450 0:260 'inF1' (in 4-component vector of float) 0:260 Constant: 0:260 2.000000 -0:? bitFieldReverse (temp 4-component vector of uint) +0:? bitFieldReverse (temp 4-component vector of int) 0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:? 3 (const uint) -0:? 4 (const uint) +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) 0:262 roundEven (temp 4-component vector of float) 0:262 'inF0' (in 4-component vector of float) 0:263 inverse sqrt (temp 4-component vector of float) @@ -2793,7 +2793,7 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1238 +// Id's are bound by 1240 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -2871,57 +2871,57 @@ Shader version: 450 Name 126 "inFM3x3" Name 127 "inFM3x4" Name 128 "inFM2x4" - Name 183 "ResType" - Name 317 "ResType" - Name 465 "ResType" - Name 618 "ResType" - Name 751 "ResType" - Name 871 "ResType" - Name 994 "ResType" - Name 1062 "r0" - Name 1066 "r1" - Name 1070 "r2" - Name 1074 "r3" - Name 1078 "r4" - Name 1082 "r5" - Name 1086 "r6" - Name 1090 "r7" - Name 1094 "r8" - Name 1098 "r0" - Name 1102 "r1" - Name 1106 "r2" - Name 1110 "r3" - Name 1114 "r4" - Name 1118 "r5" - Name 1122 "r6" - Name 1126 "r7" - Name 1130 "r8" - Name 1134 "r0" - Name 1138 "r1" - Name 1142 "r2" - Name 1146 "r3" - Name 1150 "r4" - Name 1154 "r5" - Name 1158 "r6" - Name 1162 "r7" - Name 1166 "r8" - Name 1170 "r00" - Name 1174 "r01" - Name 1178 "r02" - Name 1182 "r03" - Name 1186 "r04" - Name 1190 "r05" - Name 1194 "r06" - Name 1198 "r07" - Name 1202 "r08" - Name 1206 "r09" - Name 1210 "r10" - Name 1214 "r11" - Name 1218 "r12" - Name 1222 "r13" - Name 1226 "r14" - Name 1230 "r15" - Name 1234 "r16" + Name 182 "ResType" + Name 316 "ResType" + Name 464 "ResType" + Name 620 "ResType" + Name 753 "ResType" + Name 873 "ResType" + Name 996 "ResType" + Name 1064 "r0" + Name 1068 "r1" + Name 1072 "r2" + Name 1076 "r3" + Name 1080 "r4" + Name 1084 "r5" + Name 1088 "r6" + Name 1092 "r7" + Name 1096 "r8" + Name 1100 "r0" + Name 1104 "r1" + Name 1108 "r2" + Name 1112 "r3" + Name 1116 "r4" + Name 1120 "r5" + Name 1124 "r6" + Name 1128 "r7" + Name 1132 "r8" + Name 1136 "r0" + Name 1140 "r1" + Name 1144 "r2" + Name 1148 "r3" + Name 1152 "r4" + Name 1156 "r5" + Name 1160 "r6" + Name 1164 "r7" + Name 1168 "r8" + Name 1172 "r00" + Name 1176 "r01" + Name 1180 "r02" + Name 1184 "r03" + Name 1188 "r04" + Name 1192 "r05" + Name 1196 "r06" + Name 1200 "r07" + Name 1204 "r08" + Name 1208 "r09" + Name 1212 "r10" + Name 1216 "r11" + Name 1220 "r12" + Name 1224 "r13" + Name 1228 "r14" + Name 1232 "r15" + Name 1236 "r16" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -2968,47 +2968,49 @@ Shader version: 450 119: TypeFunction 2 7(ptr) 7(ptr) 25(ptr) 37(ptr) 112(ptr) 114(ptr) 69(ptr) 116(ptr) 118(ptr) 132: TypeBool 143: TypeInt 32 1 - 164: 8(int) Constant 7 - 172: 143(int) Constant 7 - 183(ResType): TypeStruct 6(float) 143(int) - 202: 6(float) Constant 1050288283 - 217: 8(int) Constant 2 - 224: 6(float) Constant 0 - 225: 6(float) Constant 1065353216 - 267: TypeVector 143(int) 2 - 288: 8(int) Constant 3 - 289: 26(ivec2) ConstantComposite 164 288 - 317(ResType): TypeStruct 24(fvec2) 267(ivec2) - 322: TypeVector 132(bool) 2 - 360: 6(float) Constant 1073741824 - 362: 8(int) Constant 1 - 363: 26(ivec2) ConstantComposite 362 217 - 398: 24(fvec2) ConstantComposite 225 360 - 412: TypeVector 143(int) 3 - 433: 8(int) Constant 5 - 434: 38(ivec3) ConstantComposite 164 288 433 - 465(ResType): TypeStruct 36(fvec3) 412(ivec3) - 470: TypeVector 132(bool) 3 - 509: 38(ivec3) ConstantComposite 362 217 288 - 544: 6(float) Constant 1077936128 - 545: 36(fvec3) ConstantComposite 225 360 544 - 559: TypeVector 143(int) 4 - 580: 50(ivec4) ConstantComposite 164 288 433 217 - 618(ResType): TypeStruct 48(fvec4) 559(ivec4) - 623: TypeVector 132(bool) 4 - 662: 8(int) Constant 4 - 663: 50(ivec4) ConstantComposite 362 217 288 662 - 698: 6(float) Constant 1082130432 - 699: 48(fvec4) ConstantComposite 225 360 544 698 - 751(ResType): TypeStruct 60 267(ivec2) - 815: 24(fvec2) ConstantComposite 360 360 - 816: 60 ConstantComposite 815 815 - 871(ResType): TypeStruct 68 412(ivec3) - 935: 36(fvec3) ConstantComposite 544 544 544 - 936: 68 ConstantComposite 935 935 935 - 994(ResType): TypeStruct 76 559(ivec4) - 1058: 48(fvec4) ConstantComposite 698 698 698 698 - 1059: 76 ConstantComposite 1058 1058 1058 1058 + 164: 143(int) Constant 7 + 182(ResType): TypeStruct 6(float) 143(int) + 201: 6(float) Constant 1050288283 + 216: 143(int) Constant 2 + 223: 6(float) Constant 0 + 224: 6(float) Constant 1065353216 + 266: TypeVector 143(int) 2 + 287: 143(int) Constant 3 + 288: 266(ivec2) ConstantComposite 164 287 + 316(ResType): TypeStruct 24(fvec2) 266(ivec2) + 321: TypeVector 132(bool) 2 + 359: 6(float) Constant 1073741824 + 361: 143(int) Constant 1 + 362: 266(ivec2) ConstantComposite 361 216 + 397: 24(fvec2) ConstantComposite 224 359 + 411: TypeVector 143(int) 3 + 432: 143(int) Constant 5 + 433: 411(ivec3) ConstantComposite 164 287 432 + 464(ResType): TypeStruct 36(fvec3) 411(ivec3) + 469: TypeVector 132(bool) 3 + 508: 411(ivec3) ConstantComposite 361 216 287 + 543: 6(float) Constant 1077936128 + 544: 36(fvec3) ConstantComposite 224 359 543 + 558: TypeVector 143(int) 4 + 579: 558(ivec4) ConstantComposite 164 287 432 216 + 589: 8(int) Constant 1 + 595: 8(int) Constant 2 + 598: 8(int) Constant 3 + 620(ResType): TypeStruct 48(fvec4) 558(ivec4) + 625: TypeVector 132(bool) 4 + 664: 143(int) Constant 4 + 665: 558(ivec4) ConstantComposite 361 216 287 664 + 700: 6(float) Constant 1082130432 + 701: 48(fvec4) ConstantComposite 224 359 543 700 + 753(ResType): TypeStruct 60 266(ivec2) + 817: 24(fvec2) ConstantComposite 359 359 + 818: 60 ConstantComposite 817 817 + 873(ResType): TypeStruct 68 411(ivec3) + 937: 36(fvec3) ConstantComposite 543 543 543 + 938: 68 ConstantComposite 937 937 937 + 996(ResType): TypeStruct 76 558(ivec4) + 1060: 48(fvec4) ConstantComposite 700 700 700 700 + 1061: 76 ConstantComposite 1060 1060 1060 1060 4(VertexShaderFunction): 2 Function None 3 5: Label FunctionEnd @@ -3050,98 +3052,98 @@ Shader version: 450 161: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 160 162: 6(float) Load 11(inF0) 163: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 162 - 165: 8(int) BitCount 164 + 165: 143(int) BitCount 164 166: 6(float) Load 11(inF0) 167: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 166 168: 6(float) Load 11(inF0) 169: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 168 170: 6(float) Load 11(inF0) 171: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 170 - 173: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172 - 174: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172 - 175: 6(float) Load 11(inF0) - 176: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 175 - 177: 6(float) Load 11(inF0) - 178: 6(float) Load 12(inF1) - 179: 6(float) FMod 177 178 - 180: 6(float) Load 11(inF0) - 181: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 180 - 182: 6(float) Load 11(inF0) - 184:183(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 182 - 185: 143(int) CompositeExtract 184 1 - Store 12(inF1) 185 - 186: 6(float) CompositeExtract 184 0 - 187: 6(float) Load 11(inF0) - 188: 132(bool) IsInf 187 - 189: 6(float) Load 11(inF0) - 190: 132(bool) IsNan 189 - 191: 6(float) Load 11(inF0) - 192: 6(float) Load 12(inF1) - 193: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 191 192 - 194: 6(float) Load 11(inF0) - 195: 6(float) Load 12(inF1) - 196: 6(float) Load 13(inF2) - 197: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 194 195 196 - 198: 6(float) Load 11(inF0) - 199: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 198 - 200: 6(float) Load 11(inF0) - 201: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 200 - 203: 6(float) FMul 201 202 - 204: 6(float) Load 11(inF0) - 205: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 204 - 206: 6(float) Load 11(inF0) - 207: 6(float) Load 12(inF1) - 208: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 206 207 - 209: 6(float) Load 11(inF0) - 210: 6(float) Load 12(inF1) - 211: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 209 210 - 212: 6(float) Load 11(inF0) - 213: 6(float) Load 12(inF1) - 214: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 212 213 - 215: 6(float) Load 11(inF0) - 216: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 215 - 218: 8(int) BitReverse 217 - 219: 6(float) Load 11(inF0) - 220: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 219 - 221: 6(float) Load 11(inF0) - 222: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 221 - 223: 6(float) Load 11(inF0) - 226: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 223 224 225 - 227: 6(float) Load 11(inF0) - 228: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 227 - 229: 6(float) Load 11(inF0) - 230: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 229 - 231: 6(float) Load 11(inF0) - 232: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 231 - Store 12(inF1) 232 - 233: 6(float) Load 11(inF0) - 234: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 233 - Store 13(inF2) 234 - 235: 6(float) Load 11(inF0) - 236: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 235 - 237: 6(float) Load 11(inF0) - 238: 6(float) Load 12(inF1) - 239: 6(float) Load 13(inF2) - 240: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 237 238 239 - 241: 6(float) Load 11(inF0) - 242: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 241 - 243: 6(float) Load 11(inF0) - 244: 6(float) Load 12(inF1) - 245: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 243 244 - 246: 6(float) Load 11(inF0) - 247: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 246 - 248: 6(float) Load 11(inF0) - 249: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 248 - 250: 6(float) Load 11(inF0) - 251: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 250 - ReturnValue 224 + 172: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 173: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 + 174: 6(float) Load 11(inF0) + 175: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 174 + 176: 6(float) Load 11(inF0) + 177: 6(float) Load 12(inF1) + 178: 6(float) FMod 176 177 + 179: 6(float) Load 11(inF0) + 180: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 179 + 181: 6(float) Load 11(inF0) + 183:182(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 181 + 184: 143(int) CompositeExtract 183 1 + Store 12(inF1) 184 + 185: 6(float) CompositeExtract 183 0 + 186: 6(float) Load 11(inF0) + 187: 132(bool) IsInf 186 + 188: 6(float) Load 11(inF0) + 189: 132(bool) IsNan 188 + 190: 6(float) Load 11(inF0) + 191: 6(float) Load 12(inF1) + 192: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 190 191 + 193: 6(float) Load 11(inF0) + 194: 6(float) Load 12(inF1) + 195: 6(float) Load 13(inF2) + 196: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 193 194 195 + 197: 6(float) Load 11(inF0) + 198: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 197 + 199: 6(float) Load 11(inF0) + 200: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 199 + 202: 6(float) FMul 200 201 + 203: 6(float) Load 11(inF0) + 204: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 203 + 205: 6(float) Load 11(inF0) + 206: 6(float) Load 12(inF1) + 207: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 205 206 + 208: 6(float) Load 11(inF0) + 209: 6(float) Load 12(inF1) + 210: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 208 209 + 211: 6(float) Load 11(inF0) + 212: 6(float) Load 12(inF1) + 213: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 211 212 + 214: 6(float) Load 11(inF0) + 215: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 214 + 217: 143(int) BitReverse 216 + 218: 6(float) Load 11(inF0) + 219: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 218 + 220: 6(float) Load 11(inF0) + 221: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 220 + 222: 6(float) Load 11(inF0) + 225: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 222 223 224 + 226: 6(float) Load 11(inF0) + 227: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 226 + 228: 6(float) Load 11(inF0) + 229: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 228 + 230: 6(float) Load 11(inF0) + 231: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 230 + Store 12(inF1) 231 + 232: 6(float) Load 11(inF0) + 233: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 232 + Store 13(inF2) 233 + 234: 6(float) Load 11(inF0) + 235: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 234 + 236: 6(float) Load 11(inF0) + 237: 6(float) Load 12(inF1) + 238: 6(float) Load 13(inF2) + 239: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 236 237 238 + 240: 6(float) Load 11(inF0) + 241: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 240 + 242: 6(float) Load 11(inF0) + 243: 6(float) Load 12(inF1) + 244: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 242 243 + 245: 6(float) Load 11(inF0) + 246: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 245 + 247: 6(float) Load 11(inF0) + 248: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 247 + 249: 6(float) Load 11(inF0) + 250: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 249 + ReturnValue 223 FunctionEnd 22(VertexShaderFunction1(vf1;vf1;vf1;): 6(float) Function None 18 19(inF0): 7(ptr) FunctionParameter 20(inF1): 7(ptr) FunctionParameter 21(inF2): 7(ptr) FunctionParameter 23: Label - ReturnValue 224 + ReturnValue 223 FunctionEnd 34(VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28 29(inF0): 25(ptr) FunctionParameter @@ -3150,144 +3152,144 @@ Shader version: 450 32(inU0): 27(ptr) FunctionParameter 33(inU1): 27(ptr) FunctionParameter 35: Label - 256: 24(fvec2) Load 29(inF0) - 257: 132(bool) All 256 - 258: 24(fvec2) Load 29(inF0) - 259: 24(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 258 - 260: 24(fvec2) Load 29(inF0) - 261: 24(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 260 - 262: 24(fvec2) Load 29(inF0) - 263: 132(bool) Any 262 - 264: 24(fvec2) Load 29(inF0) - 265: 24(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 264 - 266: 24(fvec2) Load 29(inF0) - 268: 267(ivec2) Bitcast 266 - 269: 24(fvec2) Load 29(inF0) - 270: 26(ivec2) Bitcast 269 - 271: 26(ivec2) Load 32(inU0) - 272: 24(fvec2) Bitcast 271 - 273: 24(fvec2) Load 29(inF0) - 274: 24(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 273 - 275: 24(fvec2) Load 29(inF0) - 276: 24(fvec2) Load 30(inF1) - 277: 24(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 275 276 - 278: 24(fvec2) Load 29(inF0) - 279: 24(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 278 - 280: 24(fvec2) Load 29(inF0) - 281: 24(fvec2) Load 30(inF1) - 282: 24(fvec2) Load 31(inF2) - 283: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 280 281 282 - 284: 24(fvec2) Load 29(inF0) - 285: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 284 - 286: 24(fvec2) Load 29(inF0) - 287: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 286 - 290: 26(ivec2) BitCount 289 - 291: 24(fvec2) Load 29(inF0) - 292: 24(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 291 - 293: 24(fvec2) Load 29(inF0) - 294: 24(fvec2) Load 30(inF1) - 295: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 293 294 - 296: 24(fvec2) Load 29(inF0) - 297: 24(fvec2) Load 30(inF1) - 298: 6(float) Dot 296 297 - 299: 24(fvec2) Load 29(inF0) - 300: 24(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 299 - 301: 24(fvec2) Load 29(inF0) - 302: 24(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 301 - 303: 24(fvec2) Load 29(inF0) - 304: 24(fvec2) Load 30(inF1) - 305: 24(fvec2) Load 31(inF2) - 306: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 303 304 305 - 307: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172 - 308: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172 - 309: 24(fvec2) Load 29(inF0) - 310: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 309 - 311: 24(fvec2) Load 29(inF0) - 312: 24(fvec2) Load 30(inF1) - 313: 24(fvec2) FMod 311 312 - 314: 24(fvec2) Load 29(inF0) - 315: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 314 - 316: 24(fvec2) Load 29(inF0) - 318:317(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 316 - 319: 267(ivec2) CompositeExtract 318 1 - Store 30(inF1) 319 - 320: 24(fvec2) CompositeExtract 318 0 - 321: 24(fvec2) Load 29(inF0) - 323: 322(bvec2) IsInf 321 - 324: 24(fvec2) Load 29(inF0) - 325: 322(bvec2) IsNan 324 - 326: 24(fvec2) Load 29(inF0) - 327: 24(fvec2) Load 30(inF1) - 328: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 326 327 - 329: 24(fvec2) Load 29(inF0) - 330: 24(fvec2) Load 30(inF1) - 331: 24(fvec2) Load 31(inF2) - 332: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 329 330 331 - 333: 24(fvec2) Load 29(inF0) - 334: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 333 - 335: 24(fvec2) Load 29(inF0) - 336: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 335 - 337: 24(fvec2) Load 29(inF0) - 338: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 337 - 339: 24(fvec2) VectorTimesScalar 338 202 - 340: 24(fvec2) Load 29(inF0) - 341: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 340 - 342: 24(fvec2) Load 29(inF0) - 343: 24(fvec2) Load 30(inF1) - 344: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 342 343 - 345: 24(fvec2) Load 29(inF0) - 346: 24(fvec2) Load 30(inF1) - 347: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 345 346 - 348: 24(fvec2) Load 29(inF0) - 349: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 348 - 350: 24(fvec2) Load 29(inF0) - 351: 24(fvec2) Load 30(inF1) - 352: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 350 351 - 353: 24(fvec2) Load 29(inF0) - 354: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 353 - 355: 24(fvec2) Load 29(inF0) - 356: 24(fvec2) Load 30(inF1) - 357: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 355 356 - 358: 24(fvec2) Load 29(inF0) - 359: 24(fvec2) Load 30(inF1) - 361: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 358 359 360 - 364: 26(ivec2) BitReverse 363 - 365: 24(fvec2) Load 29(inF0) - 366: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 365 - 367: 24(fvec2) Load 29(inF0) - 368: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 367 - 369: 24(fvec2) Load 29(inF0) + 255: 24(fvec2) Load 29(inF0) + 256: 132(bool) All 255 + 257: 24(fvec2) Load 29(inF0) + 258: 24(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 257 + 259: 24(fvec2) Load 29(inF0) + 260: 24(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 259 + 261: 24(fvec2) Load 29(inF0) + 262: 132(bool) Any 261 + 263: 24(fvec2) Load 29(inF0) + 264: 24(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 263 + 265: 24(fvec2) Load 29(inF0) + 267: 266(ivec2) Bitcast 265 + 268: 24(fvec2) Load 29(inF0) + 269: 26(ivec2) Bitcast 268 + 270: 26(ivec2) Load 32(inU0) + 271: 24(fvec2) Bitcast 270 + 272: 24(fvec2) Load 29(inF0) + 273: 24(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 272 + 274: 24(fvec2) Load 29(inF0) + 275: 24(fvec2) Load 30(inF1) + 276: 24(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 274 275 + 277: 24(fvec2) Load 29(inF0) + 278: 24(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 277 + 279: 24(fvec2) Load 29(inF0) + 280: 24(fvec2) Load 30(inF1) + 281: 24(fvec2) Load 31(inF2) + 282: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 279 280 281 + 283: 24(fvec2) Load 29(inF0) + 284: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 283 + 285: 24(fvec2) Load 29(inF0) + 286: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 285 + 289: 266(ivec2) BitCount 288 + 290: 24(fvec2) Load 29(inF0) + 291: 24(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 290 + 292: 24(fvec2) Load 29(inF0) + 293: 24(fvec2) Load 30(inF1) + 294: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 292 293 + 295: 24(fvec2) Load 29(inF0) + 296: 24(fvec2) Load 30(inF1) + 297: 6(float) Dot 295 296 + 298: 24(fvec2) Load 29(inF0) + 299: 24(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 298 + 300: 24(fvec2) Load 29(inF0) + 301: 24(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 300 + 302: 24(fvec2) Load 29(inF0) + 303: 24(fvec2) Load 30(inF1) + 304: 24(fvec2) Load 31(inF2) + 305: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 302 303 304 + 306: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 307: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 + 308: 24(fvec2) Load 29(inF0) + 309: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 308 + 310: 24(fvec2) Load 29(inF0) + 311: 24(fvec2) Load 30(inF1) + 312: 24(fvec2) FMod 310 311 + 313: 24(fvec2) Load 29(inF0) + 314: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 313 + 315: 24(fvec2) Load 29(inF0) + 317:316(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 315 + 318: 266(ivec2) CompositeExtract 317 1 + Store 30(inF1) 318 + 319: 24(fvec2) CompositeExtract 317 0 + 320: 24(fvec2) Load 29(inF0) + 322: 321(bvec2) IsInf 320 + 323: 24(fvec2) Load 29(inF0) + 324: 321(bvec2) IsNan 323 + 325: 24(fvec2) Load 29(inF0) + 326: 24(fvec2) Load 30(inF1) + 327: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 325 326 + 328: 24(fvec2) Load 29(inF0) + 329: 24(fvec2) Load 30(inF1) + 330: 24(fvec2) Load 31(inF2) + 331: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 328 329 330 + 332: 24(fvec2) Load 29(inF0) + 333: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 332 + 334: 24(fvec2) Load 29(inF0) + 335: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 334 + 336: 24(fvec2) Load 29(inF0) + 337: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 336 + 338: 24(fvec2) VectorTimesScalar 337 201 + 339: 24(fvec2) Load 29(inF0) + 340: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 339 + 341: 24(fvec2) Load 29(inF0) + 342: 24(fvec2) Load 30(inF1) + 343: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 341 342 + 344: 24(fvec2) Load 29(inF0) + 345: 24(fvec2) Load 30(inF1) + 346: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 344 345 + 347: 24(fvec2) Load 29(inF0) + 348: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 347 + 349: 24(fvec2) Load 29(inF0) + 350: 24(fvec2) Load 30(inF1) + 351: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 349 350 + 352: 24(fvec2) Load 29(inF0) + 353: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 352 + 354: 24(fvec2) Load 29(inF0) + 355: 24(fvec2) Load 30(inF1) + 356: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 354 355 + 357: 24(fvec2) Load 29(inF0) + 358: 24(fvec2) Load 30(inF1) + 360: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 357 358 359 + 363: 266(ivec2) BitReverse 362 + 364: 24(fvec2) Load 29(inF0) + 365: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 364 + 366: 24(fvec2) Load 29(inF0) + 367: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 366 + 368: 24(fvec2) Load 29(inF0) + 369: 24(fvec2) CompositeConstruct 223 223 370: 24(fvec2) CompositeConstruct 224 224 - 371: 24(fvec2) CompositeConstruct 225 225 - 372: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 369 370 371 - 373: 24(fvec2) Load 29(inF0) - 374: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 373 - 375: 24(fvec2) Load 29(inF0) - 376: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 375 - 377: 24(fvec2) Load 29(inF0) - 378: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 377 - Store 30(inF1) 378 - 379: 24(fvec2) Load 29(inF0) - 380: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 379 - Store 31(inF2) 380 - 381: 24(fvec2) Load 29(inF0) - 382: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 381 - 383: 24(fvec2) Load 29(inF0) - 384: 24(fvec2) Load 30(inF1) - 385: 24(fvec2) Load 31(inF2) - 386: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 383 384 385 - 387: 24(fvec2) Load 29(inF0) - 388: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 387 - 389: 24(fvec2) Load 29(inF0) - 390: 24(fvec2) Load 30(inF1) - 391: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 389 390 - 392: 24(fvec2) Load 29(inF0) - 393: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 392 - 394: 24(fvec2) Load 29(inF0) - 395: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 394 - 396: 24(fvec2) Load 29(inF0) - 397: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 396 - ReturnValue 398 + 371: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 368 369 370 + 372: 24(fvec2) Load 29(inF0) + 373: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 372 + 374: 24(fvec2) Load 29(inF0) + 375: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 374 + 376: 24(fvec2) Load 29(inF0) + 377: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 376 + Store 30(inF1) 377 + 378: 24(fvec2) Load 29(inF0) + 379: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 378 + Store 31(inF2) 379 + 380: 24(fvec2) Load 29(inF0) + 381: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 380 + 382: 24(fvec2) Load 29(inF0) + 383: 24(fvec2) Load 30(inF1) + 384: 24(fvec2) Load 31(inF2) + 385: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 382 383 384 + 386: 24(fvec2) Load 29(inF0) + 387: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 386 + 388: 24(fvec2) Load 29(inF0) + 389: 24(fvec2) Load 30(inF1) + 390: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 388 389 + 391: 24(fvec2) Load 29(inF0) + 392: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 391 + 393: 24(fvec2) Load 29(inF0) + 394: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 393 + 395: 24(fvec2) Load 29(inF0) + 396: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 395 + ReturnValue 397 FunctionEnd 46(VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40 41(inF0): 37(ptr) FunctionParameter @@ -3296,147 +3298,147 @@ Shader version: 450 44(inU0): 39(ptr) FunctionParameter 45(inU1): 39(ptr) FunctionParameter 47: Label - 401: 36(fvec3) Load 41(inF0) - 402: 132(bool) All 401 - 403: 36(fvec3) Load 41(inF0) - 404: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 403 - 405: 36(fvec3) Load 41(inF0) - 406: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 405 - 407: 36(fvec3) Load 41(inF0) - 408: 132(bool) Any 407 - 409: 36(fvec3) Load 41(inF0) - 410: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 409 - 411: 36(fvec3) Load 41(inF0) - 413: 412(ivec3) Bitcast 411 - 414: 36(fvec3) Load 41(inF0) - 415: 38(ivec3) Bitcast 414 - 416: 38(ivec3) Load 44(inU0) - 417: 36(fvec3) Bitcast 416 - 418: 36(fvec3) Load 41(inF0) - 419: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 418 - 420: 36(fvec3) Load 41(inF0) - 421: 36(fvec3) Load 42(inF1) - 422: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 420 421 - 423: 36(fvec3) Load 41(inF0) - 424: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 423 - 425: 36(fvec3) Load 41(inF0) - 426: 36(fvec3) Load 42(inF1) - 427: 36(fvec3) Load 43(inF2) - 428: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 425 426 427 - 429: 36(fvec3) Load 41(inF0) - 430: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 429 - 431: 36(fvec3) Load 41(inF0) - 432: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 431 - 435: 38(ivec3) BitCount 434 - 436: 36(fvec3) Load 41(inF0) - 437: 36(fvec3) Load 42(inF1) - 438: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 436 437 - 439: 36(fvec3) Load 41(inF0) - 440: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 439 - 441: 36(fvec3) Load 41(inF0) - 442: 36(fvec3) Load 42(inF1) - 443: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 441 442 - 444: 36(fvec3) Load 41(inF0) - 445: 36(fvec3) Load 42(inF1) - 446: 6(float) Dot 444 445 - 447: 36(fvec3) Load 41(inF0) - 448: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 447 - 449: 36(fvec3) Load 41(inF0) - 450: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 449 - 451: 36(fvec3) Load 41(inF0) - 452: 36(fvec3) Load 42(inF1) - 453: 36(fvec3) Load 43(inF2) - 454: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 451 452 453 - 455: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172 - 456: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172 - 457: 36(fvec3) Load 41(inF0) - 458: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 457 - 459: 36(fvec3) Load 41(inF0) - 460: 36(fvec3) Load 42(inF1) - 461: 36(fvec3) FMod 459 460 - 462: 36(fvec3) Load 41(inF0) - 463: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 462 - 464: 36(fvec3) Load 41(inF0) - 466:465(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 464 - 467: 412(ivec3) CompositeExtract 466 1 - Store 42(inF1) 467 - 468: 36(fvec3) CompositeExtract 466 0 - 469: 36(fvec3) Load 41(inF0) - 471: 470(bvec3) IsInf 469 - 472: 36(fvec3) Load 41(inF0) - 473: 470(bvec3) IsNan 472 - 474: 36(fvec3) Load 41(inF0) - 475: 36(fvec3) Load 42(inF1) - 476: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 474 475 - 477: 36(fvec3) Load 41(inF0) - 478: 36(fvec3) Load 42(inF1) - 479: 36(fvec3) Load 43(inF2) - 480: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 477 478 479 - 481: 36(fvec3) Load 41(inF0) - 482: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 481 - 483: 36(fvec3) Load 41(inF0) - 484: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 483 - 485: 36(fvec3) Load 41(inF0) - 486: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 485 - 487: 36(fvec3) VectorTimesScalar 486 202 - 488: 36(fvec3) Load 41(inF0) - 489: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 488 - 490: 36(fvec3) Load 41(inF0) - 491: 36(fvec3) Load 42(inF1) - 492: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 490 491 - 493: 36(fvec3) Load 41(inF0) - 494: 36(fvec3) Load 42(inF1) - 495: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 493 494 - 496: 36(fvec3) Load 41(inF0) - 497: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 496 - 498: 36(fvec3) Load 41(inF0) - 499: 36(fvec3) Load 42(inF1) - 500: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 498 499 - 501: 36(fvec3) Load 41(inF0) - 502: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 501 - 503: 36(fvec3) Load 41(inF0) - 504: 36(fvec3) Load 42(inF1) - 505: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 503 504 - 506: 36(fvec3) Load 41(inF0) - 507: 36(fvec3) Load 42(inF1) - 508: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 506 507 360 - 510: 38(ivec3) BitReverse 509 - 511: 36(fvec3) Load 41(inF0) - 512: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 511 - 513: 36(fvec3) Load 41(inF0) - 514: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 513 - 515: 36(fvec3) Load 41(inF0) + 400: 36(fvec3) Load 41(inF0) + 401: 132(bool) All 400 + 402: 36(fvec3) Load 41(inF0) + 403: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 402 + 404: 36(fvec3) Load 41(inF0) + 405: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 404 + 406: 36(fvec3) Load 41(inF0) + 407: 132(bool) Any 406 + 408: 36(fvec3) Load 41(inF0) + 409: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 408 + 410: 36(fvec3) Load 41(inF0) + 412: 411(ivec3) Bitcast 410 + 413: 36(fvec3) Load 41(inF0) + 414: 38(ivec3) Bitcast 413 + 415: 38(ivec3) Load 44(inU0) + 416: 36(fvec3) Bitcast 415 + 417: 36(fvec3) Load 41(inF0) + 418: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 417 + 419: 36(fvec3) Load 41(inF0) + 420: 36(fvec3) Load 42(inF1) + 421: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 419 420 + 422: 36(fvec3) Load 41(inF0) + 423: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 422 + 424: 36(fvec3) Load 41(inF0) + 425: 36(fvec3) Load 42(inF1) + 426: 36(fvec3) Load 43(inF2) + 427: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 424 425 426 + 428: 36(fvec3) Load 41(inF0) + 429: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 428 + 430: 36(fvec3) Load 41(inF0) + 431: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 430 + 434: 411(ivec3) BitCount 433 + 435: 36(fvec3) Load 41(inF0) + 436: 36(fvec3) Load 42(inF1) + 437: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 435 436 + 438: 36(fvec3) Load 41(inF0) + 439: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 438 + 440: 36(fvec3) Load 41(inF0) + 441: 36(fvec3) Load 42(inF1) + 442: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 440 441 + 443: 36(fvec3) Load 41(inF0) + 444: 36(fvec3) Load 42(inF1) + 445: 6(float) Dot 443 444 + 446: 36(fvec3) Load 41(inF0) + 447: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 446 + 448: 36(fvec3) Load 41(inF0) + 449: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 448 + 450: 36(fvec3) Load 41(inF0) + 451: 36(fvec3) Load 42(inF1) + 452: 36(fvec3) Load 43(inF2) + 453: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 450 451 452 + 454: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 455: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 + 456: 36(fvec3) Load 41(inF0) + 457: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 456 + 458: 36(fvec3) Load 41(inF0) + 459: 36(fvec3) Load 42(inF1) + 460: 36(fvec3) FMod 458 459 + 461: 36(fvec3) Load 41(inF0) + 462: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 461 + 463: 36(fvec3) Load 41(inF0) + 465:464(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 463 + 466: 411(ivec3) CompositeExtract 465 1 + Store 42(inF1) 466 + 467: 36(fvec3) CompositeExtract 465 0 + 468: 36(fvec3) Load 41(inF0) + 470: 469(bvec3) IsInf 468 + 471: 36(fvec3) Load 41(inF0) + 472: 469(bvec3) IsNan 471 + 473: 36(fvec3) Load 41(inF0) + 474: 36(fvec3) Load 42(inF1) + 475: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 473 474 + 476: 36(fvec3) Load 41(inF0) + 477: 36(fvec3) Load 42(inF1) + 478: 36(fvec3) Load 43(inF2) + 479: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 476 477 478 + 480: 36(fvec3) Load 41(inF0) + 481: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 480 + 482: 36(fvec3) Load 41(inF0) + 483: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 482 + 484: 36(fvec3) Load 41(inF0) + 485: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 484 + 486: 36(fvec3) VectorTimesScalar 485 201 + 487: 36(fvec3) Load 41(inF0) + 488: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 487 + 489: 36(fvec3) Load 41(inF0) + 490: 36(fvec3) Load 42(inF1) + 491: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 489 490 + 492: 36(fvec3) Load 41(inF0) + 493: 36(fvec3) Load 42(inF1) + 494: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 492 493 + 495: 36(fvec3) Load 41(inF0) + 496: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 495 + 497: 36(fvec3) Load 41(inF0) + 498: 36(fvec3) Load 42(inF1) + 499: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 497 498 + 500: 36(fvec3) Load 41(inF0) + 501: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 500 + 502: 36(fvec3) Load 41(inF0) + 503: 36(fvec3) Load 42(inF1) + 504: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 502 503 + 505: 36(fvec3) Load 41(inF0) + 506: 36(fvec3) Load 42(inF1) + 507: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 505 506 359 + 509: 411(ivec3) BitReverse 508 + 510: 36(fvec3) Load 41(inF0) + 511: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 510 + 512: 36(fvec3) Load 41(inF0) + 513: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 512 + 514: 36(fvec3) Load 41(inF0) + 515: 36(fvec3) CompositeConstruct 223 223 223 516: 36(fvec3) CompositeConstruct 224 224 224 - 517: 36(fvec3) CompositeConstruct 225 225 225 - 518: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 515 516 517 - 519: 36(fvec3) Load 41(inF0) - 520: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 519 - 521: 36(fvec3) Load 41(inF0) - 522: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 521 - 523: 36(fvec3) Load 41(inF0) - 524: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 523 - Store 42(inF1) 524 - 525: 36(fvec3) Load 41(inF0) - 526: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 525 - Store 43(inF2) 526 - 527: 36(fvec3) Load 41(inF0) - 528: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 527 - 529: 36(fvec3) Load 41(inF0) - 530: 36(fvec3) Load 42(inF1) - 531: 36(fvec3) Load 43(inF2) - 532: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 529 530 531 - 533: 36(fvec3) Load 41(inF0) - 534: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 533 - 535: 36(fvec3) Load 41(inF0) - 536: 36(fvec3) Load 42(inF1) - 537: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 535 536 - 538: 36(fvec3) Load 41(inF0) - 539: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 538 - 540: 36(fvec3) Load 41(inF0) - 541: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 540 - 542: 36(fvec3) Load 41(inF0) - 543: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 542 - ReturnValue 545 + 517: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 514 515 516 + 518: 36(fvec3) Load 41(inF0) + 519: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 518 + 520: 36(fvec3) Load 41(inF0) + 521: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 520 + 522: 36(fvec3) Load 41(inF0) + 523: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 522 + Store 42(inF1) 523 + 524: 36(fvec3) Load 41(inF0) + 525: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 524 + Store 43(inF2) 525 + 526: 36(fvec3) Load 41(inF0) + 527: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 526 + 528: 36(fvec3) Load 41(inF0) + 529: 36(fvec3) Load 42(inF1) + 530: 36(fvec3) Load 43(inF2) + 531: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 528 529 530 + 532: 36(fvec3) Load 41(inF0) + 533: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 532 + 534: 36(fvec3) Load 41(inF0) + 535: 36(fvec3) Load 42(inF1) + 536: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 534 535 + 537: 36(fvec3) Load 41(inF0) + 538: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 537 + 539: 36(fvec3) Load 41(inF0) + 540: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 539 + 541: 36(fvec3) Load 41(inF0) + 542: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 541 + ReturnValue 544 FunctionEnd 58(VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4;): 48(fvec4) Function None 52 53(inF0): 49(ptr) FunctionParameter @@ -3445,529 +3447,529 @@ Shader version: 450 56(inU0): 51(ptr) FunctionParameter 57(inU1): 51(ptr) FunctionParameter 59: Label - 548: 48(fvec4) Load 53(inF0) - 549: 132(bool) All 548 - 550: 48(fvec4) Load 53(inF0) - 551: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 550 - 552: 48(fvec4) Load 53(inF0) - 553: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 552 - 554: 48(fvec4) Load 53(inF0) - 555: 132(bool) Any 554 - 556: 48(fvec4) Load 53(inF0) - 557: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 556 - 558: 48(fvec4) Load 53(inF0) - 560: 559(ivec4) Bitcast 558 - 561: 48(fvec4) Load 53(inF0) - 562: 50(ivec4) Bitcast 561 - 563: 50(ivec4) Load 56(inU0) - 564: 48(fvec4) Bitcast 563 - 565: 48(fvec4) Load 53(inF0) - 566: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 565 - 567: 48(fvec4) Load 53(inF0) - 568: 48(fvec4) Load 54(inF1) - 569: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 567 568 - 570: 48(fvec4) Load 53(inF0) - 571: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 570 - 572: 48(fvec4) Load 53(inF0) - 573: 48(fvec4) Load 54(inF1) - 574: 48(fvec4) Load 55(inF2) - 575: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 572 573 574 - 576: 48(fvec4) Load 53(inF0) - 577: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 576 - 578: 48(fvec4) Load 53(inF0) - 579: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 578 - 581: 50(ivec4) BitCount 580 - 582: 48(fvec4) Load 53(inF0) - 583: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 582 - 584: 48(fvec4) Load 53(inF0) - 585: 48(fvec4) Load 54(inF1) - 586: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 584 585 - 587: 48(fvec4) Load 53(inF0) - 588: 48(fvec4) Load 54(inF1) - 589: 6(float) Dot 587 588 - 590: 7(ptr) AccessChain 53(inF0) 362 + 547: 48(fvec4) Load 53(inF0) + 548: 132(bool) All 547 + 549: 48(fvec4) Load 53(inF0) + 550: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 549 + 551: 48(fvec4) Load 53(inF0) + 552: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 551 + 553: 48(fvec4) Load 53(inF0) + 554: 132(bool) Any 553 + 555: 48(fvec4) Load 53(inF0) + 556: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 555 + 557: 48(fvec4) Load 53(inF0) + 559: 558(ivec4) Bitcast 557 + 560: 48(fvec4) Load 53(inF0) + 561: 50(ivec4) Bitcast 560 + 562: 50(ivec4) Load 56(inU0) + 563: 48(fvec4) Bitcast 562 + 564: 48(fvec4) Load 53(inF0) + 565: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 564 + 566: 48(fvec4) Load 53(inF0) + 567: 48(fvec4) Load 54(inF1) + 568: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 566 567 + 569: 48(fvec4) Load 53(inF0) + 570: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 569 + 571: 48(fvec4) Load 53(inF0) + 572: 48(fvec4) Load 54(inF1) + 573: 48(fvec4) Load 55(inF2) + 574: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 571 572 573 + 575: 48(fvec4) Load 53(inF0) + 576: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 575 + 577: 48(fvec4) Load 53(inF0) + 578: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 577 + 580: 558(ivec4) BitCount 579 + 581: 48(fvec4) Load 53(inF0) + 582: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 581 + 583: 48(fvec4) Load 53(inF0) + 584: 48(fvec4) Load 54(inF1) + 585: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 583 584 + 586: 48(fvec4) Load 53(inF0) + 587: 48(fvec4) Load 54(inF1) + 588: 6(float) Dot 586 587 + 590: 7(ptr) AccessChain 53(inF0) 589 591: 6(float) Load 590 - 592: 7(ptr) AccessChain 54(inF1) 362 + 592: 7(ptr) AccessChain 54(inF1) 589 593: 6(float) Load 592 594: 6(float) FMul 591 593 - 595: 7(ptr) AccessChain 53(inF0) 217 - 596: 6(float) Load 595 - 597: 7(ptr) AccessChain 54(inF1) 288 - 598: 6(float) Load 597 - 599: 48(fvec4) CompositeConstruct 225 594 596 598 - 600: 48(fvec4) Load 53(inF0) - 601: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 600 + 596: 7(ptr) AccessChain 53(inF0) 595 + 597: 6(float) Load 596 + 599: 7(ptr) AccessChain 54(inF1) 598 + 600: 6(float) Load 599 + 601: 48(fvec4) CompositeConstruct 224 594 597 600 602: 48(fvec4) Load 53(inF0) - 603: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 602 + 603: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 602 604: 48(fvec4) Load 53(inF0) - 605: 48(fvec4) Load 54(inF1) - 606: 48(fvec4) Load 55(inF2) - 607: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 604 605 606 - 608: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172 - 609: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172 - 610: 48(fvec4) Load 53(inF0) - 611: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 610 + 605: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 604 + 606: 48(fvec4) Load 53(inF0) + 607: 48(fvec4) Load 54(inF1) + 608: 48(fvec4) Load 55(inF2) + 609: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 606 607 608 + 610: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 611: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 612: 48(fvec4) Load 53(inF0) - 613: 48(fvec4) Load 54(inF1) - 614: 48(fvec4) FMod 612 613 - 615: 48(fvec4) Load 53(inF0) - 616: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 615 + 613: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 612 + 614: 48(fvec4) Load 53(inF0) + 615: 48(fvec4) Load 54(inF1) + 616: 48(fvec4) FMod 614 615 617: 48(fvec4) Load 53(inF0) - 619:618(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 617 - 620: 559(ivec4) CompositeExtract 619 1 - Store 54(inF1) 620 - 621: 48(fvec4) CompositeExtract 619 0 - 622: 48(fvec4) Load 53(inF0) - 624: 623(bvec4) IsInf 622 - 625: 48(fvec4) Load 53(inF0) - 626: 623(bvec4) IsNan 625 + 618: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 617 + 619: 48(fvec4) Load 53(inF0) + 621:620(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 619 + 622: 558(ivec4) CompositeExtract 621 1 + Store 54(inF1) 622 + 623: 48(fvec4) CompositeExtract 621 0 + 624: 48(fvec4) Load 53(inF0) + 626: 625(bvec4) IsInf 624 627: 48(fvec4) Load 53(inF0) - 628: 48(fvec4) Load 54(inF1) - 629: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 627 628 - 630: 48(fvec4) Load 53(inF0) - 631: 48(fvec4) Load 54(inF1) - 632: 48(fvec4) Load 55(inF2) - 633: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 630 631 632 - 634: 48(fvec4) Load 53(inF0) - 635: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 634 + 628: 625(bvec4) IsNan 627 + 629: 48(fvec4) Load 53(inF0) + 630: 48(fvec4) Load 54(inF1) + 631: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 629 630 + 632: 48(fvec4) Load 53(inF0) + 633: 48(fvec4) Load 54(inF1) + 634: 48(fvec4) Load 55(inF2) + 635: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 632 633 634 636: 48(fvec4) Load 53(inF0) - 637: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 636 + 637: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 636 638: 48(fvec4) Load 53(inF0) - 639: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 638 - 640: 48(fvec4) VectorTimesScalar 639 202 - 641: 48(fvec4) Load 53(inF0) - 642: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 641 + 639: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 638 + 640: 48(fvec4) Load 53(inF0) + 641: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 640 + 642: 48(fvec4) VectorTimesScalar 641 201 643: 48(fvec4) Load 53(inF0) - 644: 48(fvec4) Load 54(inF1) - 645: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 643 644 - 646: 48(fvec4) Load 53(inF0) - 647: 48(fvec4) Load 54(inF1) - 648: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 646 647 - 649: 48(fvec4) Load 53(inF0) - 650: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 649 + 644: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 643 + 645: 48(fvec4) Load 53(inF0) + 646: 48(fvec4) Load 54(inF1) + 647: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 645 646 + 648: 48(fvec4) Load 53(inF0) + 649: 48(fvec4) Load 54(inF1) + 650: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 648 649 651: 48(fvec4) Load 53(inF0) - 652: 48(fvec4) Load 54(inF1) - 653: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 651 652 - 654: 48(fvec4) Load 53(inF0) - 655: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 654 + 652: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 651 + 653: 48(fvec4) Load 53(inF0) + 654: 48(fvec4) Load 54(inF1) + 655: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 653 654 656: 48(fvec4) Load 53(inF0) - 657: 48(fvec4) Load 54(inF1) - 658: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 656 657 - 659: 48(fvec4) Load 53(inF0) - 660: 48(fvec4) Load 54(inF1) - 661: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 659 660 360 - 664: 50(ivec4) BitReverse 663 - 665: 48(fvec4) Load 53(inF0) - 666: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 665 + 657: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 656 + 658: 48(fvec4) Load 53(inF0) + 659: 48(fvec4) Load 54(inF1) + 660: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 658 659 + 661: 48(fvec4) Load 53(inF0) + 662: 48(fvec4) Load 54(inF1) + 663: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 661 662 359 + 666: 558(ivec4) BitReverse 665 667: 48(fvec4) Load 53(inF0) - 668: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 667 + 668: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 667 669: 48(fvec4) Load 53(inF0) - 670: 48(fvec4) CompositeConstruct 224 224 224 224 - 671: 48(fvec4) CompositeConstruct 225 225 225 225 - 672: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 669 670 671 - 673: 48(fvec4) Load 53(inF0) - 674: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 673 + 670: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 669 + 671: 48(fvec4) Load 53(inF0) + 672: 48(fvec4) CompositeConstruct 223 223 223 223 + 673: 48(fvec4) CompositeConstruct 224 224 224 224 + 674: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 671 672 673 675: 48(fvec4) Load 53(inF0) - 676: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 675 + 676: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 675 677: 48(fvec4) Load 53(inF0) 678: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 677 - Store 54(inF1) 678 679: 48(fvec4) Load 53(inF0) - 680: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 679 - Store 55(inF2) 680 + 680: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 679 + Store 54(inF1) 680 681: 48(fvec4) Load 53(inF0) - 682: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 681 + 682: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 681 + Store 55(inF2) 682 683: 48(fvec4) Load 53(inF0) - 684: 48(fvec4) Load 54(inF1) - 685: 48(fvec4) Load 55(inF2) - 686: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 683 684 685 - 687: 48(fvec4) Load 53(inF0) - 688: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 687 + 684: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 683 + 685: 48(fvec4) Load 53(inF0) + 686: 48(fvec4) Load 54(inF1) + 687: 48(fvec4) Load 55(inF2) + 688: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 685 686 687 689: 48(fvec4) Load 53(inF0) - 690: 48(fvec4) Load 54(inF1) - 691: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 689 690 - 692: 48(fvec4) Load 53(inF0) - 693: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 692 + 690: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 689 + 691: 48(fvec4) Load 53(inF0) + 692: 48(fvec4) Load 54(inF1) + 693: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 691 692 694: 48(fvec4) Load 53(inF0) - 695: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 694 + 695: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 694 696: 48(fvec4) Load 53(inF0) - 697: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 696 - ReturnValue 699 + 697: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 696 + 698: 48(fvec4) Load 53(inF0) + 699: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 698 + ReturnValue 701 FunctionEnd 66(VertexShaderFunction2x2(mf22;mf22;mf22;): 60 Function None 62 63(inF0): 61(ptr) FunctionParameter 64(inF1): 61(ptr) FunctionParameter 65(inF2): 61(ptr) FunctionParameter 67: Label - 702: 60 Load 63(inF0) - 703: 132(bool) All 702 704: 60 Load 63(inF0) - 705: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 704 + 705: 132(bool) All 704 706: 60 Load 63(inF0) - 707: 60 ExtInst 1(GLSL.std.450) 17(Acos) 706 + 707: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 706 708: 60 Load 63(inF0) - 709: 132(bool) Any 708 + 709: 60 ExtInst 1(GLSL.std.450) 17(Acos) 708 710: 60 Load 63(inF0) - 711: 60 ExtInst 1(GLSL.std.450) 16(Asin) 710 + 711: 132(bool) Any 710 712: 60 Load 63(inF0) - 713: 60 ExtInst 1(GLSL.std.450) 18(Atan) 712 + 713: 60 ExtInst 1(GLSL.std.450) 16(Asin) 712 714: 60 Load 63(inF0) - 715: 60 Load 64(inF1) - 716: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 714 715 - 717: 60 Load 63(inF0) - 718: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 717 + 715: 60 ExtInst 1(GLSL.std.450) 18(Atan) 714 + 716: 60 Load 63(inF0) + 717: 60 Load 64(inF1) + 718: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 716 717 719: 60 Load 63(inF0) - 720: 60 Load 64(inF1) - 721: 60 Load 65(inF2) - 722: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 719 720 721 - 723: 60 Load 63(inF0) - 724: 60 ExtInst 1(GLSL.std.450) 14(Cos) 723 + 720: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 719 + 721: 60 Load 63(inF0) + 722: 60 Load 64(inF1) + 723: 60 Load 65(inF2) + 724: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 721 722 723 725: 60 Load 63(inF0) - 726: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 725 + 726: 60 ExtInst 1(GLSL.std.450) 14(Cos) 725 727: 60 Load 63(inF0) - 728: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 727 + 728: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 727 729: 60 Load 63(inF0) - 730: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 729 + 730: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 729 731: 60 Load 63(inF0) - 732: 60 ExtInst 1(GLSL.std.450) 27(Exp) 731 + 732: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 731 733: 60 Load 63(inF0) - 734: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 733 - 735: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172 - 736: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172 - 737: 60 Load 63(inF0) - 738: 60 ExtInst 1(GLSL.std.450) 8(Floor) 737 + 734: 60 ExtInst 1(GLSL.std.450) 27(Exp) 733 + 735: 60 Load 63(inF0) + 736: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 735 + 737: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 738: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 739: 60 Load 63(inF0) - 740: 60 Load 64(inF1) - 741: 24(fvec2) CompositeExtract 739 0 - 742: 24(fvec2) CompositeExtract 740 0 - 743: 24(fvec2) FMod 741 742 - 744: 24(fvec2) CompositeExtract 739 1 - 745: 24(fvec2) CompositeExtract 740 1 - 746: 24(fvec2) FMod 744 745 - 747: 60 CompositeConstruct 743 746 - 748: 60 Load 63(inF0) - 749: 60 ExtInst 1(GLSL.std.450) 10(Fract) 748 + 740: 60 ExtInst 1(GLSL.std.450) 8(Floor) 739 + 741: 60 Load 63(inF0) + 742: 60 Load 64(inF1) + 743: 24(fvec2) CompositeExtract 741 0 + 744: 24(fvec2) CompositeExtract 742 0 + 745: 24(fvec2) FMod 743 744 + 746: 24(fvec2) CompositeExtract 741 1 + 747: 24(fvec2) CompositeExtract 742 1 + 748: 24(fvec2) FMod 746 747 + 749: 60 CompositeConstruct 745 748 750: 60 Load 63(inF0) - 752:751(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 750 - 753: 267(ivec2) CompositeExtract 752 1 - Store 64(inF1) 753 - 754: 60 CompositeExtract 752 0 - 755: 60 Load 63(inF0) - 756: 60 Load 64(inF1) - 757: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 755 756 - 758: 60 Load 63(inF0) - 759: 60 Load 64(inF1) - 760: 60 Load 65(inF2) - 761: 60 ExtInst 1(GLSL.std.450) 46(FMix) 758 759 760 - 762: 60 Load 63(inF0) - 763: 60 ExtInst 1(GLSL.std.450) 28(Log) 762 + 751: 60 ExtInst 1(GLSL.std.450) 10(Fract) 750 + 752: 60 Load 63(inF0) + 754:753(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 752 + 755: 266(ivec2) CompositeExtract 754 1 + Store 64(inF1) 755 + 756: 60 CompositeExtract 754 0 + 757: 60 Load 63(inF0) + 758: 60 Load 64(inF1) + 759: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 757 758 + 760: 60 Load 63(inF0) + 761: 60 Load 64(inF1) + 762: 60 Load 65(inF2) + 763: 60 ExtInst 1(GLSL.std.450) 46(FMix) 760 761 762 764: 60 Load 63(inF0) - 765: 60 ExtInst 1(GLSL.std.450) 30(Log2) 764 - 766: 60 MatrixTimesScalar 765 202 - 767: 60 Load 63(inF0) - 768: 60 ExtInst 1(GLSL.std.450) 30(Log2) 767 + 765: 60 ExtInst 1(GLSL.std.450) 28(Log) 764 + 766: 60 Load 63(inF0) + 767: 60 ExtInst 1(GLSL.std.450) 30(Log2) 766 + 768: 60 MatrixTimesScalar 767 201 769: 60 Load 63(inF0) - 770: 60 Load 64(inF1) - 771: 60 ExtInst 1(GLSL.std.450) 40(FMax) 769 770 - 772: 60 Load 63(inF0) - 773: 60 Load 64(inF1) - 774: 60 ExtInst 1(GLSL.std.450) 37(FMin) 772 773 - 775: 60 Load 63(inF0) - 776: 60 Load 64(inF1) - 777: 60 ExtInst 1(GLSL.std.450) 26(Pow) 775 776 - 778: 60 Load 63(inF0) - 779: 60 ExtInst 1(GLSL.std.450) 11(Radians) 778 + 770: 60 ExtInst 1(GLSL.std.450) 30(Log2) 769 + 771: 60 Load 63(inF0) + 772: 60 Load 64(inF1) + 773: 60 ExtInst 1(GLSL.std.450) 40(FMax) 771 772 + 774: 60 Load 63(inF0) + 775: 60 Load 64(inF1) + 776: 60 ExtInst 1(GLSL.std.450) 37(FMin) 774 775 + 777: 60 Load 63(inF0) + 778: 60 Load 64(inF1) + 779: 60 ExtInst 1(GLSL.std.450) 26(Pow) 777 778 780: 60 Load 63(inF0) - 781: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 780 + 781: 60 ExtInst 1(GLSL.std.450) 11(Radians) 780 782: 60 Load 63(inF0) - 783: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 782 + 783: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 782 784: 60 Load 63(inF0) - 785: 24(fvec2) CompositeConstruct 224 224 - 786: 24(fvec2) CompositeConstruct 225 225 - 787: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 784 785 786 - 788: 60 Load 63(inF0) - 789: 60 ExtInst 1(GLSL.std.450) 6(FSign) 788 + 785: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 784 + 786: 60 Load 63(inF0) + 787: 24(fvec2) CompositeConstruct 223 223 + 788: 24(fvec2) CompositeConstruct 224 224 + 789: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 786 787 788 790: 60 Load 63(inF0) - 791: 60 ExtInst 1(GLSL.std.450) 13(Sin) 790 + 791: 60 ExtInst 1(GLSL.std.450) 6(FSign) 790 792: 60 Load 63(inF0) 793: 60 ExtInst 1(GLSL.std.450) 13(Sin) 792 - Store 64(inF1) 793 794: 60 Load 63(inF0) - 795: 60 ExtInst 1(GLSL.std.450) 14(Cos) 794 - Store 65(inF2) 795 + 795: 60 ExtInst 1(GLSL.std.450) 13(Sin) 794 + Store 64(inF1) 795 796: 60 Load 63(inF0) - 797: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 796 + 797: 60 ExtInst 1(GLSL.std.450) 14(Cos) 796 + Store 65(inF2) 797 798: 60 Load 63(inF0) - 799: 60 Load 64(inF1) - 800: 60 Load 65(inF2) - 801: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 798 799 800 - 802: 60 Load 63(inF0) - 803: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 802 + 799: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 798 + 800: 60 Load 63(inF0) + 801: 60 Load 64(inF1) + 802: 60 Load 65(inF2) + 803: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 800 801 802 804: 60 Load 63(inF0) - 805: 60 Load 64(inF1) - 806: 60 ExtInst 1(GLSL.std.450) 48(Step) 804 805 - 807: 60 Load 63(inF0) - 808: 60 ExtInst 1(GLSL.std.450) 15(Tan) 807 + 805: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 804 + 806: 60 Load 63(inF0) + 807: 60 Load 64(inF1) + 808: 60 ExtInst 1(GLSL.std.450) 48(Step) 806 807 809: 60 Load 63(inF0) - 810: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 809 + 810: 60 ExtInst 1(GLSL.std.450) 15(Tan) 809 811: 60 Load 63(inF0) - 812: 60 Transpose 811 + 812: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 811 813: 60 Load 63(inF0) - 814: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 813 - ReturnValue 816 + 814: 60 Transpose 813 + 815: 60 Load 63(inF0) + 816: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 815 + ReturnValue 818 FunctionEnd 74(VertexShaderFunction3x3(mf33;mf33;mf33;): 68 Function None 70 71(inF0): 69(ptr) FunctionParameter 72(inF1): 69(ptr) FunctionParameter 73(inF2): 69(ptr) FunctionParameter 75: Label - 819: 68 Load 71(inF0) - 820: 132(bool) All 819 821: 68 Load 71(inF0) - 822: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 821 + 822: 132(bool) All 821 823: 68 Load 71(inF0) - 824: 68 ExtInst 1(GLSL.std.450) 17(Acos) 823 + 824: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 823 825: 68 Load 71(inF0) - 826: 132(bool) Any 825 + 826: 68 ExtInst 1(GLSL.std.450) 17(Acos) 825 827: 68 Load 71(inF0) - 828: 68 ExtInst 1(GLSL.std.450) 16(Asin) 827 + 828: 132(bool) Any 827 829: 68 Load 71(inF0) - 830: 68 ExtInst 1(GLSL.std.450) 18(Atan) 829 + 830: 68 ExtInst 1(GLSL.std.450) 16(Asin) 829 831: 68 Load 71(inF0) - 832: 68 Load 72(inF1) - 833: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 831 832 - 834: 68 Load 71(inF0) - 835: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 834 + 832: 68 ExtInst 1(GLSL.std.450) 18(Atan) 831 + 833: 68 Load 71(inF0) + 834: 68 Load 72(inF1) + 835: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 833 834 836: 68 Load 71(inF0) - 837: 68 Load 72(inF1) - 838: 68 Load 73(inF2) - 839: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 836 837 838 - 840: 68 Load 71(inF0) - 841: 68 ExtInst 1(GLSL.std.450) 14(Cos) 840 + 837: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 836 + 838: 68 Load 71(inF0) + 839: 68 Load 72(inF1) + 840: 68 Load 73(inF2) + 841: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 838 839 840 842: 68 Load 71(inF0) - 843: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 842 + 843: 68 ExtInst 1(GLSL.std.450) 14(Cos) 842 844: 68 Load 71(inF0) - 845: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 844 + 845: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 844 846: 68 Load 71(inF0) - 847: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 846 + 847: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 846 848: 68 Load 71(inF0) - 849: 68 ExtInst 1(GLSL.std.450) 27(Exp) 848 + 849: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 848 850: 68 Load 71(inF0) - 851: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 850 - 852: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172 - 853: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172 - 854: 68 Load 71(inF0) - 855: 68 ExtInst 1(GLSL.std.450) 8(Floor) 854 + 851: 68 ExtInst 1(GLSL.std.450) 27(Exp) 850 + 852: 68 Load 71(inF0) + 853: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 852 + 854: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 855: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 856: 68 Load 71(inF0) - 857: 68 Load 72(inF1) - 858: 36(fvec3) CompositeExtract 856 0 - 859: 36(fvec3) CompositeExtract 857 0 - 860: 36(fvec3) FMod 858 859 - 861: 36(fvec3) CompositeExtract 856 1 - 862: 36(fvec3) CompositeExtract 857 1 - 863: 36(fvec3) FMod 861 862 - 864: 36(fvec3) CompositeExtract 856 2 - 865: 36(fvec3) CompositeExtract 857 2 - 866: 36(fvec3) FMod 864 865 - 867: 68 CompositeConstruct 860 863 866 - 868: 68 Load 71(inF0) - 869: 68 ExtInst 1(GLSL.std.450) 10(Fract) 868 + 857: 68 ExtInst 1(GLSL.std.450) 8(Floor) 856 + 858: 68 Load 71(inF0) + 859: 68 Load 72(inF1) + 860: 36(fvec3) CompositeExtract 858 0 + 861: 36(fvec3) CompositeExtract 859 0 + 862: 36(fvec3) FMod 860 861 + 863: 36(fvec3) CompositeExtract 858 1 + 864: 36(fvec3) CompositeExtract 859 1 + 865: 36(fvec3) FMod 863 864 + 866: 36(fvec3) CompositeExtract 858 2 + 867: 36(fvec3) CompositeExtract 859 2 + 868: 36(fvec3) FMod 866 867 + 869: 68 CompositeConstruct 862 865 868 870: 68 Load 71(inF0) - 872:871(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 870 - 873: 412(ivec3) CompositeExtract 872 1 - Store 72(inF1) 873 - 874: 68 CompositeExtract 872 0 - 875: 68 Load 71(inF0) - 876: 68 Load 72(inF1) - 877: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 875 876 - 878: 68 Load 71(inF0) - 879: 68 Load 72(inF1) - 880: 68 Load 73(inF2) - 881: 68 ExtInst 1(GLSL.std.450) 46(FMix) 878 879 880 - 882: 68 Load 71(inF0) - 883: 68 ExtInst 1(GLSL.std.450) 28(Log) 882 + 871: 68 ExtInst 1(GLSL.std.450) 10(Fract) 870 + 872: 68 Load 71(inF0) + 874:873(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 872 + 875: 411(ivec3) CompositeExtract 874 1 + Store 72(inF1) 875 + 876: 68 CompositeExtract 874 0 + 877: 68 Load 71(inF0) + 878: 68 Load 72(inF1) + 879: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 877 878 + 880: 68 Load 71(inF0) + 881: 68 Load 72(inF1) + 882: 68 Load 73(inF2) + 883: 68 ExtInst 1(GLSL.std.450) 46(FMix) 880 881 882 884: 68 Load 71(inF0) - 885: 68 ExtInst 1(GLSL.std.450) 30(Log2) 884 - 886: 68 MatrixTimesScalar 885 202 - 887: 68 Load 71(inF0) - 888: 68 ExtInst 1(GLSL.std.450) 30(Log2) 887 + 885: 68 ExtInst 1(GLSL.std.450) 28(Log) 884 + 886: 68 Load 71(inF0) + 887: 68 ExtInst 1(GLSL.std.450) 30(Log2) 886 + 888: 68 MatrixTimesScalar 887 201 889: 68 Load 71(inF0) - 890: 68 Load 72(inF1) - 891: 68 ExtInst 1(GLSL.std.450) 40(FMax) 889 890 - 892: 68 Load 71(inF0) - 893: 68 Load 72(inF1) - 894: 68 ExtInst 1(GLSL.std.450) 37(FMin) 892 893 - 895: 68 Load 71(inF0) - 896: 68 Load 72(inF1) - 897: 68 ExtInst 1(GLSL.std.450) 26(Pow) 895 896 - 898: 68 Load 71(inF0) - 899: 68 ExtInst 1(GLSL.std.450) 11(Radians) 898 + 890: 68 ExtInst 1(GLSL.std.450) 30(Log2) 889 + 891: 68 Load 71(inF0) + 892: 68 Load 72(inF1) + 893: 68 ExtInst 1(GLSL.std.450) 40(FMax) 891 892 + 894: 68 Load 71(inF0) + 895: 68 Load 72(inF1) + 896: 68 ExtInst 1(GLSL.std.450) 37(FMin) 894 895 + 897: 68 Load 71(inF0) + 898: 68 Load 72(inF1) + 899: 68 ExtInst 1(GLSL.std.450) 26(Pow) 897 898 900: 68 Load 71(inF0) - 901: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 900 + 901: 68 ExtInst 1(GLSL.std.450) 11(Radians) 900 902: 68 Load 71(inF0) - 903: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 902 + 903: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 902 904: 68 Load 71(inF0) - 905: 36(fvec3) CompositeConstruct 224 224 224 - 906: 36(fvec3) CompositeConstruct 225 225 225 - 907: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 904 905 906 - 908: 68 Load 71(inF0) - 909: 68 ExtInst 1(GLSL.std.450) 6(FSign) 908 + 905: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 904 + 906: 68 Load 71(inF0) + 907: 36(fvec3) CompositeConstruct 223 223 223 + 908: 36(fvec3) CompositeConstruct 224 224 224 + 909: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 906 907 908 910: 68 Load 71(inF0) - 911: 68 ExtInst 1(GLSL.std.450) 13(Sin) 910 + 911: 68 ExtInst 1(GLSL.std.450) 6(FSign) 910 912: 68 Load 71(inF0) 913: 68 ExtInst 1(GLSL.std.450) 13(Sin) 912 - Store 72(inF1) 913 914: 68 Load 71(inF0) - 915: 68 ExtInst 1(GLSL.std.450) 14(Cos) 914 - Store 73(inF2) 915 + 915: 68 ExtInst 1(GLSL.std.450) 13(Sin) 914 + Store 72(inF1) 915 916: 68 Load 71(inF0) - 917: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 916 + 917: 68 ExtInst 1(GLSL.std.450) 14(Cos) 916 + Store 73(inF2) 917 918: 68 Load 71(inF0) - 919: 68 Load 72(inF1) - 920: 68 Load 73(inF2) - 921: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 918 919 920 - 922: 68 Load 71(inF0) - 923: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 922 + 919: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 918 + 920: 68 Load 71(inF0) + 921: 68 Load 72(inF1) + 922: 68 Load 73(inF2) + 923: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 920 921 922 924: 68 Load 71(inF0) - 925: 68 Load 72(inF1) - 926: 68 ExtInst 1(GLSL.std.450) 48(Step) 924 925 - 927: 68 Load 71(inF0) - 928: 68 ExtInst 1(GLSL.std.450) 15(Tan) 927 + 925: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 924 + 926: 68 Load 71(inF0) + 927: 68 Load 72(inF1) + 928: 68 ExtInst 1(GLSL.std.450) 48(Step) 926 927 929: 68 Load 71(inF0) - 930: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 929 + 930: 68 ExtInst 1(GLSL.std.450) 15(Tan) 929 931: 68 Load 71(inF0) - 932: 68 Transpose 931 + 932: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 931 933: 68 Load 71(inF0) - 934: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 933 - ReturnValue 936 + 934: 68 Transpose 933 + 935: 68 Load 71(inF0) + 936: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 935 + ReturnValue 938 FunctionEnd 82(VertexShaderFunction4x4(mf44;mf44;mf44;): 76 Function None 78 79(inF0): 77(ptr) FunctionParameter 80(inF1): 77(ptr) FunctionParameter 81(inF2): 77(ptr) FunctionParameter 83: Label - 939: 76 Load 79(inF0) - 940: 132(bool) All 939 941: 76 Load 79(inF0) - 942: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 941 + 942: 132(bool) All 941 943: 76 Load 79(inF0) - 944: 76 ExtInst 1(GLSL.std.450) 17(Acos) 943 + 944: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 943 945: 76 Load 79(inF0) - 946: 132(bool) Any 945 + 946: 76 ExtInst 1(GLSL.std.450) 17(Acos) 945 947: 76 Load 79(inF0) - 948: 76 ExtInst 1(GLSL.std.450) 16(Asin) 947 + 948: 132(bool) Any 947 949: 76 Load 79(inF0) - 950: 76 ExtInst 1(GLSL.std.450) 18(Atan) 949 + 950: 76 ExtInst 1(GLSL.std.450) 16(Asin) 949 951: 76 Load 79(inF0) - 952: 76 Load 80(inF1) - 953: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 951 952 - 954: 76 Load 79(inF0) - 955: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 954 + 952: 76 ExtInst 1(GLSL.std.450) 18(Atan) 951 + 953: 76 Load 79(inF0) + 954: 76 Load 80(inF1) + 955: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 953 954 956: 76 Load 79(inF0) - 957: 76 Load 80(inF1) - 958: 76 Load 81(inF2) - 959: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 956 957 958 - 960: 76 Load 79(inF0) - 961: 76 ExtInst 1(GLSL.std.450) 14(Cos) 960 + 957: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 956 + 958: 76 Load 79(inF0) + 959: 76 Load 80(inF1) + 960: 76 Load 81(inF2) + 961: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 958 959 960 962: 76 Load 79(inF0) - 963: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 962 + 963: 76 ExtInst 1(GLSL.std.450) 14(Cos) 962 964: 76 Load 79(inF0) - 965: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 964 + 965: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 964 966: 76 Load 79(inF0) - 967: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 966 + 967: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 966 968: 76 Load 79(inF0) - 969: 76 ExtInst 1(GLSL.std.450) 27(Exp) 968 + 969: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 968 970: 76 Load 79(inF0) - 971: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 970 - 972: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172 - 973: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172 - 974: 76 Load 79(inF0) - 975: 76 ExtInst 1(GLSL.std.450) 8(Floor) 974 + 971: 76 ExtInst 1(GLSL.std.450) 27(Exp) 970 + 972: 76 Load 79(inF0) + 973: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 972 + 974: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 975: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 976: 76 Load 79(inF0) - 977: 76 Load 80(inF1) - 978: 48(fvec4) CompositeExtract 976 0 - 979: 48(fvec4) CompositeExtract 977 0 - 980: 48(fvec4) FMod 978 979 - 981: 48(fvec4) CompositeExtract 976 1 - 982: 48(fvec4) CompositeExtract 977 1 - 983: 48(fvec4) FMod 981 982 - 984: 48(fvec4) CompositeExtract 976 2 - 985: 48(fvec4) CompositeExtract 977 2 - 986: 48(fvec4) FMod 984 985 - 987: 48(fvec4) CompositeExtract 976 3 - 988: 48(fvec4) CompositeExtract 977 3 - 989: 48(fvec4) FMod 987 988 - 990: 76 CompositeConstruct 980 983 986 989 - 991: 76 Load 79(inF0) - 992: 76 ExtInst 1(GLSL.std.450) 10(Fract) 991 + 977: 76 ExtInst 1(GLSL.std.450) 8(Floor) 976 + 978: 76 Load 79(inF0) + 979: 76 Load 80(inF1) + 980: 48(fvec4) CompositeExtract 978 0 + 981: 48(fvec4) CompositeExtract 979 0 + 982: 48(fvec4) FMod 980 981 + 983: 48(fvec4) CompositeExtract 978 1 + 984: 48(fvec4) CompositeExtract 979 1 + 985: 48(fvec4) FMod 983 984 + 986: 48(fvec4) CompositeExtract 978 2 + 987: 48(fvec4) CompositeExtract 979 2 + 988: 48(fvec4) FMod 986 987 + 989: 48(fvec4) CompositeExtract 978 3 + 990: 48(fvec4) CompositeExtract 979 3 + 991: 48(fvec4) FMod 989 990 + 992: 76 CompositeConstruct 982 985 988 991 993: 76 Load 79(inF0) - 995:994(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 993 - 996: 559(ivec4) CompositeExtract 995 1 - Store 80(inF1) 996 - 997: 76 CompositeExtract 995 0 - 998: 76 Load 79(inF0) - 999: 76 Load 80(inF1) - 1000: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 998 999 - 1001: 76 Load 79(inF0) - 1002: 76 Load 80(inF1) - 1003: 76 Load 81(inF2) - 1004: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1001 1002 1003 - 1005: 76 Load 79(inF0) - 1006: 76 ExtInst 1(GLSL.std.450) 28(Log) 1005 + 994: 76 ExtInst 1(GLSL.std.450) 10(Fract) 993 + 995: 76 Load 79(inF0) + 997:996(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 995 + 998: 558(ivec4) CompositeExtract 997 1 + Store 80(inF1) 998 + 999: 76 CompositeExtract 997 0 + 1000: 76 Load 79(inF0) + 1001: 76 Load 80(inF1) + 1002: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 1000 1001 + 1003: 76 Load 79(inF0) + 1004: 76 Load 80(inF1) + 1005: 76 Load 81(inF2) + 1006: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1003 1004 1005 1007: 76 Load 79(inF0) - 1008: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1007 - 1009: 76 MatrixTimesScalar 1008 202 - 1010: 76 Load 79(inF0) - 1011: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1010 + 1008: 76 ExtInst 1(GLSL.std.450) 28(Log) 1007 + 1009: 76 Load 79(inF0) + 1010: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1009 + 1011: 76 MatrixTimesScalar 1010 201 1012: 76 Load 79(inF0) - 1013: 76 Load 80(inF1) - 1014: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1012 1013 - 1015: 76 Load 79(inF0) - 1016: 76 Load 80(inF1) - 1017: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1015 1016 - 1018: 76 Load 79(inF0) - 1019: 76 Load 80(inF1) - 1020: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1018 1019 - 1021: 76 Load 79(inF0) - 1022: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1021 + 1013: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1012 + 1014: 76 Load 79(inF0) + 1015: 76 Load 80(inF1) + 1016: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1014 1015 + 1017: 76 Load 79(inF0) + 1018: 76 Load 80(inF1) + 1019: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1017 1018 + 1020: 76 Load 79(inF0) + 1021: 76 Load 80(inF1) + 1022: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1020 1021 1023: 76 Load 79(inF0) - 1024: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1023 + 1024: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1023 1025: 76 Load 79(inF0) - 1026: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1025 + 1026: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1025 1027: 76 Load 79(inF0) - 1028: 48(fvec4) CompositeConstruct 224 224 224 224 - 1029: 48(fvec4) CompositeConstruct 225 225 225 225 - 1030: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1027 1028 1029 - 1031: 76 Load 79(inF0) - 1032: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1031 + 1028: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1027 + 1029: 76 Load 79(inF0) + 1030: 48(fvec4) CompositeConstruct 223 223 223 223 + 1031: 48(fvec4) CompositeConstruct 224 224 224 224 + 1032: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1029 1030 1031 1033: 76 Load 79(inF0) - 1034: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1033 + 1034: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1033 1035: 76 Load 79(inF0) 1036: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1035 - Store 80(inF1) 1036 1037: 76 Load 79(inF0) - 1038: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1037 - Store 81(inF2) 1038 + 1038: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1037 + Store 80(inF1) 1038 1039: 76 Load 79(inF0) - 1040: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1039 + 1040: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1039 + Store 81(inF2) 1040 1041: 76 Load 79(inF0) - 1042: 76 Load 80(inF1) - 1043: 76 Load 81(inF2) - 1044: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1041 1042 1043 - 1045: 76 Load 79(inF0) - 1046: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1045 + 1042: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1041 + 1043: 76 Load 79(inF0) + 1044: 76 Load 80(inF1) + 1045: 76 Load 81(inF2) + 1046: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1043 1044 1045 1047: 76 Load 79(inF0) - 1048: 76 Load 80(inF1) - 1049: 76 ExtInst 1(GLSL.std.450) 48(Step) 1047 1048 - 1050: 76 Load 79(inF0) - 1051: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1050 + 1048: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1047 + 1049: 76 Load 79(inF0) + 1050: 76 Load 80(inF1) + 1051: 76 ExtInst 1(GLSL.std.450) 48(Step) 1049 1050 1052: 76 Load 79(inF0) - 1053: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1052 + 1053: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1052 1054: 76 Load 79(inF0) - 1055: 76 Transpose 1054 + 1055: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1054 1056: 76 Load 79(inF0) - 1057: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1056 - ReturnValue 1059 + 1057: 76 Transpose 1056 + 1058: 76 Load 79(inF0) + 1059: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1058 + ReturnValue 1061 FunctionEnd 91(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 84 85(inF0): 7(ptr) FunctionParameter @@ -3977,51 +3979,51 @@ Shader version: 450 89(inFM0): 61(ptr) FunctionParameter 90(inFM1): 61(ptr) FunctionParameter 92: Label - 1062(r0): 7(ptr) Variable Function - 1066(r1): 25(ptr) Variable Function - 1070(r2): 25(ptr) Variable Function - 1074(r3): 7(ptr) Variable Function - 1078(r4): 25(ptr) Variable Function - 1082(r5): 25(ptr) Variable Function - 1086(r6): 61(ptr) Variable Function - 1090(r7): 61(ptr) Variable Function - 1094(r8): 61(ptr) Variable Function - 1063: 6(float) Load 86(inF1) - 1064: 6(float) Load 85(inF0) - 1065: 6(float) FMul 1063 1064 - Store 1062(r0) 1065 - 1067: 6(float) Load 85(inF0) - 1068: 24(fvec2) Load 87(inFV0) - 1069: 24(fvec2) VectorTimesScalar 1068 1067 - Store 1066(r1) 1069 - 1071: 24(fvec2) Load 87(inFV0) - 1072: 6(float) Load 85(inF0) - 1073: 24(fvec2) VectorTimesScalar 1071 1072 - Store 1070(r2) 1073 - 1075: 24(fvec2) Load 87(inFV0) - 1076: 24(fvec2) Load 88(inFV1) - 1077: 6(float) Dot 1075 1076 - Store 1074(r3) 1077 - 1079: 24(fvec2) Load 87(inFV0) - 1080: 60 Load 89(inFM0) - 1081: 24(fvec2) VectorTimesMatrix 1079 1080 - Store 1078(r4) 1081 - 1083: 60 Load 89(inFM0) - 1084: 24(fvec2) Load 87(inFV0) - 1085: 24(fvec2) MatrixTimesVector 1083 1084 - Store 1082(r5) 1085 - 1087: 6(float) Load 85(inF0) - 1088: 60 Load 89(inFM0) - 1089: 60 MatrixTimesScalar 1088 1087 - Store 1086(r6) 1089 - 1091: 60 Load 89(inFM0) - 1092: 6(float) Load 85(inF0) - 1093: 60 MatrixTimesScalar 1091 1092 - Store 1090(r7) 1093 - 1095: 60 Load 90(inFM1) - 1096: 60 Load 89(inFM0) - 1097: 60 MatrixTimesMatrix 1095 1096 - Store 1094(r8) 1097 + 1064(r0): 7(ptr) Variable Function + 1068(r1): 25(ptr) Variable Function + 1072(r2): 25(ptr) Variable Function + 1076(r3): 7(ptr) Variable Function + 1080(r4): 25(ptr) Variable Function + 1084(r5): 25(ptr) Variable Function + 1088(r6): 61(ptr) Variable Function + 1092(r7): 61(ptr) Variable Function + 1096(r8): 61(ptr) Variable Function + 1065: 6(float) Load 86(inF1) + 1066: 6(float) Load 85(inF0) + 1067: 6(float) FMul 1065 1066 + Store 1064(r0) 1067 + 1069: 6(float) Load 85(inF0) + 1070: 24(fvec2) Load 87(inFV0) + 1071: 24(fvec2) VectorTimesScalar 1070 1069 + Store 1068(r1) 1071 + 1073: 24(fvec2) Load 87(inFV0) + 1074: 6(float) Load 85(inF0) + 1075: 24(fvec2) VectorTimesScalar 1073 1074 + Store 1072(r2) 1075 + 1077: 24(fvec2) Load 87(inFV0) + 1078: 24(fvec2) Load 88(inFV1) + 1079: 6(float) Dot 1077 1078 + Store 1076(r3) 1079 + 1081: 24(fvec2) Load 87(inFV0) + 1082: 60 Load 89(inFM0) + 1083: 24(fvec2) VectorTimesMatrix 1081 1082 + Store 1080(r4) 1083 + 1085: 60 Load 89(inFM0) + 1086: 24(fvec2) Load 87(inFV0) + 1087: 24(fvec2) MatrixTimesVector 1085 1086 + Store 1084(r5) 1087 + 1089: 6(float) Load 85(inF0) + 1090: 60 Load 89(inFM0) + 1091: 60 MatrixTimesScalar 1090 1089 + Store 1088(r6) 1091 + 1093: 60 Load 89(inFM0) + 1094: 6(float) Load 85(inF0) + 1095: 60 MatrixTimesScalar 1093 1094 + Store 1092(r7) 1095 + 1097: 60 Load 90(inFM1) + 1098: 60 Load 89(inFM0) + 1099: 60 MatrixTimesMatrix 1097 1098 + Store 1096(r8) 1099 Return FunctionEnd 100(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 93 @@ -4032,51 +4034,51 @@ Shader version: 450 98(inFM0): 69(ptr) FunctionParameter 99(inFM1): 69(ptr) FunctionParameter 101: Label - 1098(r0): 7(ptr) Variable Function - 1102(r1): 37(ptr) Variable Function - 1106(r2): 37(ptr) Variable Function - 1110(r3): 7(ptr) Variable Function - 1114(r4): 37(ptr) Variable Function - 1118(r5): 37(ptr) Variable Function - 1122(r6): 69(ptr) Variable Function - 1126(r7): 69(ptr) Variable Function - 1130(r8): 69(ptr) Variable Function - 1099: 6(float) Load 95(inF1) - 1100: 6(float) Load 94(inF0) - 1101: 6(float) FMul 1099 1100 - Store 1098(r0) 1101 - 1103: 6(float) Load 94(inF0) - 1104: 36(fvec3) Load 96(inFV0) - 1105: 36(fvec3) VectorTimesScalar 1104 1103 - Store 1102(r1) 1105 - 1107: 36(fvec3) Load 96(inFV0) - 1108: 6(float) Load 94(inF0) - 1109: 36(fvec3) VectorTimesScalar 1107 1108 - Store 1106(r2) 1109 - 1111: 36(fvec3) Load 96(inFV0) - 1112: 36(fvec3) Load 97(inFV1) - 1113: 6(float) Dot 1111 1112 - Store 1110(r3) 1113 - 1115: 36(fvec3) Load 96(inFV0) - 1116: 68 Load 98(inFM0) - 1117: 36(fvec3) VectorTimesMatrix 1115 1116 - Store 1114(r4) 1117 - 1119: 68 Load 98(inFM0) - 1120: 36(fvec3) Load 96(inFV0) - 1121: 36(fvec3) MatrixTimesVector 1119 1120 - Store 1118(r5) 1121 - 1123: 6(float) Load 94(inF0) - 1124: 68 Load 98(inFM0) - 1125: 68 MatrixTimesScalar 1124 1123 - Store 1122(r6) 1125 - 1127: 68 Load 98(inFM0) - 1128: 6(float) Load 94(inF0) - 1129: 68 MatrixTimesScalar 1127 1128 - Store 1126(r7) 1129 - 1131: 68 Load 99(inFM1) - 1132: 68 Load 98(inFM0) - 1133: 68 MatrixTimesMatrix 1131 1132 - Store 1130(r8) 1133 + 1100(r0): 7(ptr) Variable Function + 1104(r1): 37(ptr) Variable Function + 1108(r2): 37(ptr) Variable Function + 1112(r3): 7(ptr) Variable Function + 1116(r4): 37(ptr) Variable Function + 1120(r5): 37(ptr) Variable Function + 1124(r6): 69(ptr) Variable Function + 1128(r7): 69(ptr) Variable Function + 1132(r8): 69(ptr) Variable Function + 1101: 6(float) Load 95(inF1) + 1102: 6(float) Load 94(inF0) + 1103: 6(float) FMul 1101 1102 + Store 1100(r0) 1103 + 1105: 6(float) Load 94(inF0) + 1106: 36(fvec3) Load 96(inFV0) + 1107: 36(fvec3) VectorTimesScalar 1106 1105 + Store 1104(r1) 1107 + 1109: 36(fvec3) Load 96(inFV0) + 1110: 6(float) Load 94(inF0) + 1111: 36(fvec3) VectorTimesScalar 1109 1110 + Store 1108(r2) 1111 + 1113: 36(fvec3) Load 96(inFV0) + 1114: 36(fvec3) Load 97(inFV1) + 1115: 6(float) Dot 1113 1114 + Store 1112(r3) 1115 + 1117: 36(fvec3) Load 96(inFV0) + 1118: 68 Load 98(inFM0) + 1119: 36(fvec3) VectorTimesMatrix 1117 1118 + Store 1116(r4) 1119 + 1121: 68 Load 98(inFM0) + 1122: 36(fvec3) Load 96(inFV0) + 1123: 36(fvec3) MatrixTimesVector 1121 1122 + Store 1120(r5) 1123 + 1125: 6(float) Load 94(inF0) + 1126: 68 Load 98(inFM0) + 1127: 68 MatrixTimesScalar 1126 1125 + Store 1124(r6) 1127 + 1129: 68 Load 98(inFM0) + 1130: 6(float) Load 94(inF0) + 1131: 68 MatrixTimesScalar 1129 1130 + Store 1128(r7) 1131 + 1133: 68 Load 99(inFM1) + 1134: 68 Load 98(inFM0) + 1135: 68 MatrixTimesMatrix 1133 1134 + Store 1132(r8) 1135 Return FunctionEnd 109(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 102 @@ -4087,51 +4089,51 @@ Shader version: 450 107(inFM0): 77(ptr) FunctionParameter 108(inFM1): 77(ptr) FunctionParameter 110: Label - 1134(r0): 7(ptr) Variable Function - 1138(r1): 49(ptr) Variable Function - 1142(r2): 49(ptr) Variable Function - 1146(r3): 7(ptr) Variable Function - 1150(r4): 49(ptr) Variable Function - 1154(r5): 49(ptr) Variable Function - 1158(r6): 77(ptr) Variable Function - 1162(r7): 77(ptr) Variable Function - 1166(r8): 77(ptr) Variable Function - 1135: 6(float) Load 104(inF1) - 1136: 6(float) Load 103(inF0) - 1137: 6(float) FMul 1135 1136 - Store 1134(r0) 1137 - 1139: 6(float) Load 103(inF0) - 1140: 48(fvec4) Load 105(inFV0) - 1141: 48(fvec4) VectorTimesScalar 1140 1139 - Store 1138(r1) 1141 - 1143: 48(fvec4) Load 105(inFV0) - 1144: 6(float) Load 103(inF0) - 1145: 48(fvec4) VectorTimesScalar 1143 1144 - Store 1142(r2) 1145 - 1147: 48(fvec4) Load 105(inFV0) - 1148: 48(fvec4) Load 106(inFV1) - 1149: 6(float) Dot 1147 1148 - Store 1146(r3) 1149 - 1151: 48(fvec4) Load 105(inFV0) - 1152: 76 Load 107(inFM0) - 1153: 48(fvec4) VectorTimesMatrix 1151 1152 - Store 1150(r4) 1153 - 1155: 76 Load 107(inFM0) - 1156: 48(fvec4) Load 105(inFV0) - 1157: 48(fvec4) MatrixTimesVector 1155 1156 - Store 1154(r5) 1157 - 1159: 6(float) Load 103(inF0) - 1160: 76 Load 107(inFM0) - 1161: 76 MatrixTimesScalar 1160 1159 - Store 1158(r6) 1161 - 1163: 76 Load 107(inFM0) - 1164: 6(float) Load 103(inF0) - 1165: 76 MatrixTimesScalar 1163 1164 - Store 1162(r7) 1165 - 1167: 76 Load 108(inFM1) - 1168: 76 Load 107(inFM0) - 1169: 76 MatrixTimesMatrix 1167 1168 - Store 1166(r8) 1169 + 1136(r0): 7(ptr) Variable Function + 1140(r1): 49(ptr) Variable Function + 1144(r2): 49(ptr) Variable Function + 1148(r3): 7(ptr) Variable Function + 1152(r4): 49(ptr) Variable Function + 1156(r5): 49(ptr) Variable Function + 1160(r6): 77(ptr) Variable Function + 1164(r7): 77(ptr) Variable Function + 1168(r8): 77(ptr) Variable Function + 1137: 6(float) Load 104(inF1) + 1138: 6(float) Load 103(inF0) + 1139: 6(float) FMul 1137 1138 + Store 1136(r0) 1139 + 1141: 6(float) Load 103(inF0) + 1142: 48(fvec4) Load 105(inFV0) + 1143: 48(fvec4) VectorTimesScalar 1142 1141 + Store 1140(r1) 1143 + 1145: 48(fvec4) Load 105(inFV0) + 1146: 6(float) Load 103(inF0) + 1147: 48(fvec4) VectorTimesScalar 1145 1146 + Store 1144(r2) 1147 + 1149: 48(fvec4) Load 105(inFV0) + 1150: 48(fvec4) Load 106(inFV1) + 1151: 6(float) Dot 1149 1150 + Store 1148(r3) 1151 + 1153: 48(fvec4) Load 105(inFV0) + 1154: 76 Load 107(inFM0) + 1155: 48(fvec4) VectorTimesMatrix 1153 1154 + Store 1152(r4) 1155 + 1157: 76 Load 107(inFM0) + 1158: 48(fvec4) Load 105(inFV0) + 1159: 48(fvec4) MatrixTimesVector 1157 1158 + Store 1156(r5) 1159 + 1161: 6(float) Load 103(inF0) + 1162: 76 Load 107(inFM0) + 1163: 76 MatrixTimesScalar 1162 1161 + Store 1160(r6) 1163 + 1165: 76 Load 107(inFM0) + 1166: 6(float) Load 103(inF0) + 1167: 76 MatrixTimesScalar 1165 1166 + Store 1164(r7) 1167 + 1169: 76 Load 108(inFM1) + 1170: 76 Load 107(inFM0) + 1171: 76 MatrixTimesMatrix 1169 1170 + Store 1168(r8) 1171 Return FunctionEnd 129(TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;): 2 Function None 119 @@ -4145,90 +4147,90 @@ Shader version: 450 127(inFM3x4): 116(ptr) FunctionParameter 128(inFM2x4): 118(ptr) FunctionParameter 130: Label - 1170(r00): 7(ptr) Variable Function - 1174(r01): 25(ptr) Variable Function - 1178(r02): 37(ptr) Variable Function - 1182(r03): 25(ptr) Variable Function - 1186(r04): 37(ptr) Variable Function - 1190(r05): 7(ptr) Variable Function - 1194(r06): 7(ptr) Variable Function - 1198(r07): 37(ptr) Variable Function - 1202(r08): 25(ptr) Variable Function - 1206(r09): 25(ptr) Variable Function - 1210(r10): 37(ptr) Variable Function - 1214(r11): 112(ptr) Variable Function - 1218(r12): 114(ptr) Variable Function - 1222(r13): 61(ptr) Variable Function - 1226(r14): 112(ptr) Variable Function - 1230(r15): 118(ptr) Variable Function - 1234(r16): 116(ptr) Variable Function - 1171: 6(float) Load 121(inF1) - 1172: 6(float) Load 120(inF0) - 1173: 6(float) FMul 1171 1172 - Store 1170(r00) 1173 - 1175: 6(float) Load 120(inF0) - 1176: 24(fvec2) Load 122(inFV2) - 1177: 24(fvec2) VectorTimesScalar 1176 1175 - Store 1174(r01) 1177 - 1179: 6(float) Load 120(inF0) - 1180: 36(fvec3) Load 123(inFV3) - 1181: 36(fvec3) VectorTimesScalar 1180 1179 - Store 1178(r02) 1181 - 1183: 24(fvec2) Load 122(inFV2) - 1184: 6(float) Load 120(inF0) - 1185: 24(fvec2) VectorTimesScalar 1183 1184 - Store 1182(r03) 1185 - 1187: 36(fvec3) Load 123(inFV3) - 1188: 6(float) Load 120(inF0) - 1189: 36(fvec3) VectorTimesScalar 1187 1188 - Store 1186(r04) 1189 - 1191: 24(fvec2) Load 122(inFV2) - 1192: 24(fvec2) Load 122(inFV2) - 1193: 6(float) Dot 1191 1192 - Store 1190(r05) 1193 - 1195: 36(fvec3) Load 123(inFV3) - 1196: 36(fvec3) Load 123(inFV3) - 1197: 6(float) Dot 1195 1196 - Store 1194(r06) 1197 - 1199: 111 Load 124(inFM2x3) - 1200: 24(fvec2) Load 122(inFV2) - 1201: 36(fvec3) MatrixTimesVector 1199 1200 - Store 1198(r07) 1201 - 1203: 113 Load 125(inFM3x2) - 1204: 36(fvec3) Load 123(inFV3) - 1205: 24(fvec2) MatrixTimesVector 1203 1204 - Store 1202(r08) 1205 - 1207: 36(fvec3) Load 123(inFV3) - 1208: 111 Load 124(inFM2x3) - 1209: 24(fvec2) VectorTimesMatrix 1207 1208 - Store 1206(r09) 1209 - 1211: 24(fvec2) Load 122(inFV2) - 1212: 113 Load 125(inFM3x2) - 1213: 36(fvec3) VectorTimesMatrix 1211 1212 - Store 1210(r10) 1213 - 1215: 6(float) Load 120(inF0) - 1216: 111 Load 124(inFM2x3) - 1217: 111 MatrixTimesScalar 1216 1215 - Store 1214(r11) 1217 - 1219: 6(float) Load 120(inF0) - 1220: 113 Load 125(inFM3x2) - 1221: 113 MatrixTimesScalar 1220 1219 - Store 1218(r12) 1221 - 1223: 113 Load 125(inFM3x2) - 1224: 111 Load 124(inFM2x3) - 1225: 60 MatrixTimesMatrix 1223 1224 - Store 1222(r13) 1225 - 1227: 68 Load 126(inFM3x3) - 1228: 111 Load 124(inFM2x3) - 1229: 111 MatrixTimesMatrix 1227 1228 - Store 1226(r14) 1229 - 1231: 115 Load 127(inFM3x4) - 1232: 111 Load 124(inFM2x3) - 1233: 117 MatrixTimesMatrix 1231 1232 - Store 1230(r15) 1233 - 1235: 117 Load 128(inFM2x4) - 1236: 113 Load 125(inFM3x2) - 1237: 115 MatrixTimesMatrix 1235 1236 - Store 1234(r16) 1237 + 1172(r00): 7(ptr) Variable Function + 1176(r01): 25(ptr) Variable Function + 1180(r02): 37(ptr) Variable Function + 1184(r03): 25(ptr) Variable Function + 1188(r04): 37(ptr) Variable Function + 1192(r05): 7(ptr) Variable Function + 1196(r06): 7(ptr) Variable Function + 1200(r07): 37(ptr) Variable Function + 1204(r08): 25(ptr) Variable Function + 1208(r09): 25(ptr) Variable Function + 1212(r10): 37(ptr) Variable Function + 1216(r11): 112(ptr) Variable Function + 1220(r12): 114(ptr) Variable Function + 1224(r13): 61(ptr) Variable Function + 1228(r14): 112(ptr) Variable Function + 1232(r15): 118(ptr) Variable Function + 1236(r16): 116(ptr) Variable Function + 1173: 6(float) Load 121(inF1) + 1174: 6(float) Load 120(inF0) + 1175: 6(float) FMul 1173 1174 + Store 1172(r00) 1175 + 1177: 6(float) Load 120(inF0) + 1178: 24(fvec2) Load 122(inFV2) + 1179: 24(fvec2) VectorTimesScalar 1178 1177 + Store 1176(r01) 1179 + 1181: 6(float) Load 120(inF0) + 1182: 36(fvec3) Load 123(inFV3) + 1183: 36(fvec3) VectorTimesScalar 1182 1181 + Store 1180(r02) 1183 + 1185: 24(fvec2) Load 122(inFV2) + 1186: 6(float) Load 120(inF0) + 1187: 24(fvec2) VectorTimesScalar 1185 1186 + Store 1184(r03) 1187 + 1189: 36(fvec3) Load 123(inFV3) + 1190: 6(float) Load 120(inF0) + 1191: 36(fvec3) VectorTimesScalar 1189 1190 + Store 1188(r04) 1191 + 1193: 24(fvec2) Load 122(inFV2) + 1194: 24(fvec2) Load 122(inFV2) + 1195: 6(float) Dot 1193 1194 + Store 1192(r05) 1195 + 1197: 36(fvec3) Load 123(inFV3) + 1198: 36(fvec3) Load 123(inFV3) + 1199: 6(float) Dot 1197 1198 + Store 1196(r06) 1199 + 1201: 111 Load 124(inFM2x3) + 1202: 24(fvec2) Load 122(inFV2) + 1203: 36(fvec3) MatrixTimesVector 1201 1202 + Store 1200(r07) 1203 + 1205: 113 Load 125(inFM3x2) + 1206: 36(fvec3) Load 123(inFV3) + 1207: 24(fvec2) MatrixTimesVector 1205 1206 + Store 1204(r08) 1207 + 1209: 36(fvec3) Load 123(inFV3) + 1210: 111 Load 124(inFM2x3) + 1211: 24(fvec2) VectorTimesMatrix 1209 1210 + Store 1208(r09) 1211 + 1213: 24(fvec2) Load 122(inFV2) + 1214: 113 Load 125(inFM3x2) + 1215: 36(fvec3) VectorTimesMatrix 1213 1214 + Store 1212(r10) 1215 + 1217: 6(float) Load 120(inF0) + 1218: 111 Load 124(inFM2x3) + 1219: 111 MatrixTimesScalar 1218 1217 + Store 1216(r11) 1219 + 1221: 6(float) Load 120(inF0) + 1222: 113 Load 125(inFM3x2) + 1223: 113 MatrixTimesScalar 1222 1221 + Store 1220(r12) 1223 + 1225: 113 Load 125(inFM3x2) + 1226: 111 Load 124(inFM2x3) + 1227: 60 MatrixTimesMatrix 1225 1226 + Store 1224(r13) 1227 + 1229: 68 Load 126(inFM3x3) + 1230: 111 Load 124(inFM2x3) + 1231: 111 MatrixTimesMatrix 1229 1230 + Store 1228(r14) 1231 + 1233: 115 Load 127(inFM3x4) + 1234: 111 Load 124(inFM2x3) + 1235: 117 MatrixTimesMatrix 1233 1234 + Store 1232(r15) 1235 + 1237: 117 Load 128(inFM2x4) + 1238: 113 Load 125(inFM3x2) + 1239: 115 MatrixTimesMatrix 1237 1238 + Store 1236(r16) 1239 Return FunctionEnd diff --git a/Test/baseResults/spv.register.autoassign-2.frag.out b/Test/baseResults/spv.register.autoassign-2.frag.out index 038c7f0e..24ce5719 100644 --- a/Test/baseResults/spv.register.autoassign-2.frag.out +++ b/Test/baseResults/spv.register.autoassign-2.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 30 +// Id's are bound by 31 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -16,14 +16,14 @@ Linked fragment stage: Name 9 "Color" Name 12 "g_tScene[0]" Name 16 "g_tSamp" - Name 24 "g_tScene[1]" + Name 25 "g_tScene[1]" Decorate 9(Color) Location 0 Decorate 12(g_tScene[0]) DescriptorSet 0 Decorate 12(g_tScene[0]) Binding 10 Decorate 16(g_tSamp) DescriptorSet 0 Decorate 16(g_tSamp) Binding 5 - Decorate 24(g_tScene[1]) DescriptorSet 0 - Decorate 24(g_tScene[1]) Binding 11 + Decorate 25(g_tScene[1]) DescriptorSet 0 + Decorate 25(g_tScene[1]) Binding 11 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -39,19 +39,20 @@ Linked fragment stage: 18: TypeSampledImage 10 20: TypeVector 6(float) 2 21: 6(float) Constant 1050253722 - 22: 20(fvec2) ConstantComposite 21 21 - 24(g_tScene[1]): 11(ptr) Variable UniformConstant + 22: 6(float) Constant 1053609165 + 23: 20(fvec2) ConstantComposite 21 22 + 25(g_tScene[1]): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 13: 10 Load 12(g_tScene[0]) 17: 14 Load 16(g_tSamp) 19: 18 SampledImage 13 17 - 23: 7(fvec4) ImageSampleImplicitLod 19 22 - 25: 10 Load 24(g_tScene[1]) - 26: 14 Load 16(g_tSamp) - 27: 18 SampledImage 25 26 - 28: 7(fvec4) ImageSampleImplicitLod 27 22 - 29: 7(fvec4) FAdd 23 28 - Store 9(Color) 29 + 24: 7(fvec4) ImageSampleImplicitLod 19 23 + 26: 10 Load 25(g_tScene[1]) + 27: 14 Load 16(g_tSamp) + 28: 18 SampledImage 26 27 + 29: 7(fvec4) ImageSampleImplicitLod 28 23 + 30: 7(fvec4) FAdd 24 29 + Store 9(Color) 30 Return FunctionEnd diff --git a/Test/hlsl.intrinsics.frag b/Test/hlsl.intrinsics.frag index 03e7ed38..15db6376 100644 --- a/Test/hlsl.intrinsics.frag +++ b/Test/hlsl.intrinsics.frag @@ -33,7 +33,7 @@ float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint i clip(inF0); float r014 = cos(inF0); float r015 = cosh(inF0); - uint r016 = countbits(7); + int r016 = countbits(7); float r017 = ddx(inF0); float r018 = ddx_coarse(inF0); float r019 = ddx_fine(inF0); @@ -111,7 +111,7 @@ float2 PixelShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, u clip(inF0); float2 r013 = cos(inF0); float2 r015 = cosh(inF0); - uint2 r016 = countbits(int2(7,3)); + int2 r016 = countbits(int2(7,3)); float2 r017 = ddx(inF0); float2 r018 = ddx_coarse(inF0); float2 r019 = ddx_fine(inF0); diff --git a/Test/hlsl.intrinsics.promote.down.frag b/Test/hlsl.intrinsics.promote.down.frag new file mode 100644 index 00000000..5f4882b2 --- /dev/null +++ b/Test/hlsl.intrinsics.promote.down.frag @@ -0,0 +1,22 @@ + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +int i; +uint u; +float f; +bool b; + +int2 i2; +uint2 u2; +float2 f2; +bool2 b2; + +PS_OUTPUT main() +{ + uint r00 = countbits(f); + uint2 r01 = reversebits(f2); + + PS_OUTPUT ps_output; + ps_output.color = float4(0,0,0,0); + return ps_output; +}; diff --git a/Test/hlsl.intrinsics.promote.frag b/Test/hlsl.intrinsics.promote.frag new file mode 100644 index 00000000..89d3e680 --- /dev/null +++ b/Test/hlsl.intrinsics.promote.frag @@ -0,0 +1,79 @@ + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +int i; +uint u; +float f; +bool b; + +int2 i2; +uint2 u2; +float2 f2; +bool2 b2; + +Buffer g_tTexbfs; +Texture1D g_tTex1df4; +uint upos; +float fpos; + +PS_OUTPUT main() +{ + // Same shapes: + + float r00 = max(b, f); + uint r01 = max(b, u); + int r02 = max(b, i); + float r03 = max(i, f); + float r04 = max(u, f); + + float2 r10 = max(b2, f2); + uint2 r11 = max(b2, u2); + int2 r12 = max(b2, i2); + float2 r13 = max(i2, f2); + float2 r14 = max(u2, f2); + + float2 r20 = clamp(i2, u2, f2); // 3 args, converts all to best type. + uint2 r21 = clamp(b2, u2, b2); + float2 r22 = clamp(b2, f2, b2); + + // Mixed shapes: + float2 r30 = max(b, f2); + uint2 r31 = max(b, u2); + int2 r32 = max(b, i2); + float2 r33 = max(i, f2); + float2 r34 = max(u, f2); + + float2 r40 = clamp(i, u2, f2); // 3 args, converts all to best type. + uint2 r41 = clamp(b2, u, b2); + float2 r42 = clamp(b2, f, b); + int2 r43 = clamp(i, i2, u2); + + float r50 = g_tTexbfs.Load(upos); + float r51 = g_tTexbfs.Load(fpos); + + int MipLevel; + + uint WidthU; + uint HeightU; + uint ElementsU; + uint DepthU; + uint NumberOfLevelsU; + uint NumberOfSamplesU; + + int WidthI; + int HeightI; + int ElementsI; + int DepthI; + int NumberOfLevelsI; + int NumberOfSamplesI; + + g_tTex1df4 . GetDimensions(WidthI); + g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsU); + g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsI); + g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsI); + + // max(i2, f2); + PS_OUTPUT ps_output; + ps_output.color = r00; + return ps_output; +}; diff --git a/Test/hlsl.intrinsics.promote.outputs.frag b/Test/hlsl.intrinsics.promote.outputs.frag new file mode 100644 index 00000000..42fa3e80 --- /dev/null +++ b/Test/hlsl.intrinsics.promote.outputs.frag @@ -0,0 +1,49 @@ + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +int i; +uint u; +float f; +bool b; + +int2 i2; +uint2 u2; +float2 f2; +bool2 b2; + +Buffer g_tTexbfs; +Texture1D g_tTex1df4; +uint upos; +float fpos; + +PS_OUTPUT main() +{ + int MipLevel; + + uint WidthU; + uint HeightU; + uint ElementsU; + uint DepthU; + uint NumberOfLevelsU; + uint NumberOfSamplesU; + + int WidthI; + int HeightI; + int ElementsI; + int DepthI; + int NumberOfLevelsI; + int NumberOfSamplesI; + + saturate(fpos); + + // Test output promotions + g_tTex1df4 . GetDimensions(WidthI); + g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsU); + g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsI); + g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsI); + + // max(i2, f2); + PS_OUTPUT ps_output; + ps_output.color = 0; + return ps_output; +}; diff --git a/Test/spv.register.autoassign-2.frag b/Test/spv.register.autoassign-2.frag index b943791f..05c49250 100644 --- a/Test/spv.register.autoassign-2.frag +++ b/Test/spv.register.autoassign-2.frag @@ -10,6 +10,6 @@ struct PS_OUTPUT void main(out PS_OUTPUT psout) { - psout.Color = g_tScene[0].Sample(g_tSamp, 0.3) + - g_tScene[1].Sample(g_tSamp, 0.3); + psout.Color = g_tScene[0].Sample(g_tSamp, float2(0.3,0.4)) + + g_tScene[1].Sample(g_tSamp, float2(0.3,0.4)); } diff --git a/Test/spv.register.autoassign.rangetest.frag b/Test/spv.register.autoassign.rangetest.frag index c81c3959..314c8e96 100644 --- a/Test/spv.register.autoassign.rangetest.frag +++ b/Test/spv.register.autoassign.rangetest.frag @@ -10,6 +10,6 @@ struct PS_OUTPUT void main(out PS_OUTPUT psout) { - psout.Color = g_tScene[0].Sample(g_tSamp, 0.3) + - g_tScene[1].Sample(g_tSamp, 0.3); + psout.Color = g_tScene[0].Sample(g_tSamp, float2(0.3, 0.3)) + + g_tScene[1].Sample(g_tSamp, float2(0.3, 0.3)); } diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 9c2590fd..b15a80a1 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -45,6 +45,7 @@ #include "propagateNoContraction.h" #include +#include namespace glslang { @@ -575,6 +576,27 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EOpDivAssign: case EOpModAssign: + case EOpAtan: + case EOpClamp: + case EOpCross: + case EOpDistance: + case EOpDot: + case EOpDst: + case EOpFaceForward: + case EOpFma: + case EOpFrexp: + case EOpLdexp: + case EOpMix: + case EOpLit: + case EOpMax: + case EOpMin: + case EOpModf: + case EOpPow: + case EOpReflect: + case EOpRefract: + case EOpSmoothStep: + case EOpStep: + case EOpSequence: case EOpConstructStruct: @@ -833,6 +855,9 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat if (profile == EEsProfile || version == 110) return false; + if (from == to) + return true; + // TODO: Move more policies into language-specific handlers. // Some languages allow more general (or potentially, more specific) conversions under some conditions. if (source == EShSourceHlsl) { @@ -901,6 +926,8 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat return version >= 400; case EbtUint: return true; + case EbtBool: + return (source == EShSourceHlsl); default: return false; } @@ -908,6 +935,8 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat switch (from) { case EbtInt: return true; + case EbtBool: + return (source == EShSourceHlsl); default: return false; } @@ -1747,6 +1776,9 @@ bool TIntermediate::promote(TIntermOperator* node) if (node->getAsBinaryNode()) return promoteBinary(*node->getAsBinaryNode()); + if (node->getAsAggregate()) + return promoteAggregate(*node->getAsAggregate()); + return false; } @@ -2190,6 +2222,77 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) return true; } +// +// See TIntermediate::promote +// +bool TIntermediate::promoteAggregate(TIntermAggregate& node) +{ + TOperator op = node.getOp(); + TIntermSequence& args = node.getSequence(); + const int numArgs = args.size(); + + // Presently, only hlsl does intrinsic promotions. + if (getSource() != EShSourceHlsl) + return true; + + // set of opcodes that can be promoted in this manner. + switch (op) { + case EOpAtan: + case EOpClamp: + case EOpCross: + case EOpDistance: + case EOpDot: + case EOpDst: + case EOpFaceForward: + // case EOpFindMSB: TODO: ?? + // case EOpFindLSB: TODO: ?? + case EOpFma: + case EOpMod: + case EOpFrexp: + case EOpLdexp: + case EOpMix: + case EOpLit: + case EOpMax: + case EOpMin: + case EOpModf: + // case EOpGenMul: TODO: ?? + case EOpPow: + case EOpReflect: + case EOpRefract: + // case EOpSinCos: TODO: ?? + case EOpSmoothStep: + case EOpStep: + break; + default: + return true; + } + + // TODO: array and struct behavior + + // Try converting all nodes to the given node's type + TIntermSequence convertedArgs(numArgs, nullptr); + + // Try to convert all types to the nonConvArg type. + for (int nonConvArg = 0; nonConvArg < numArgs; ++nonConvArg) { + // Try converting all args to this arg's type + for (int convArg = 0; convArg < numArgs; ++convArg) { + convertedArgs[convArg] = addConversion(op, args[nonConvArg]->getAsTyped()->getType(), + args[convArg]->getAsTyped()); + } + + // If we successfully converted all the args, use the result. + if (std::all_of(convertedArgs.begin(), convertedArgs.end(), + [](const TIntermNode* node) { return node != nullptr; })) { + + std::swap(args, convertedArgs); + return true; + } + } + + return false; +} + + void TIntermBinary::updatePrecision() { #ifdef AMD_EXTENSIONS diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index 2e101347..53a414d6 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -370,6 +370,9 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy // void TIntermediate::finalCheck(TInfoSink& infoSink) { + if (getTreeRoot() == nullptr) + return; + if (source == EShSourceGlsl && numEntryPoints < 1) error(infoSink, "Missing entry point: Each stage requires one entry point"); diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 6a4cfd08..80c24e07 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -381,6 +381,7 @@ public: int addXfbBufferOffset(const TType&); unsigned int computeTypeXfbSize(const TType&, bool& containsDouble) const; static int getBaseAlignment(const TType&, int& size, int& stride, bool std140, bool rowMajor); + bool promote(TIntermOperator*); protected: TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&); @@ -395,10 +396,10 @@ protected: bool userOutputUsed() const; static int getBaseAlignmentScalar(const TType&, int& size); bool isSpecializationOperation(const TIntermOperator&) const; - bool promote(TIntermOperator*); bool promoteUnary(TIntermUnary&); bool promoteBinary(TIntermBinary&); void addSymbolLinkageNode(TIntermAggregate*& linkage, TSymbolTable&, const TString&); + bool promoteAggregate(TIntermAggregate&); const EShLanguage language; // stage, known at construction time EShSource source; // source language, known a bit later diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 8c611f20..f470b87e 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -134,6 +134,9 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, + {"hlsl.intrinsics.promote.frag", "main"}, + {"hlsl.intrinsics.promote.down.frag", "main"}, + {"hlsl.intrinsics.promote.outputs.frag", "main"}, {"hlsl.layout.frag", "main"}, {"hlsl.load.2dms.dx10.frag", "main"}, {"hlsl.load.array.dx10.frag", "main"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 49577677..d2ad1341 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2555,7 +2555,7 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct // const TFunction* fnCandidate; bool builtIn; - fnCandidate = findFunction(loc, *function, builtIn); + fnCandidate = findFunction(loc, *function, builtIn, arguments); if (fnCandidate) { // This is a declared function that might map to // - a built-in operator, @@ -2597,21 +2597,27 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct } } + // for decompositions, since we want to operate on the function node, not the aggregate holding + // output conversions. + const TIntermTyped* fnNode = result; + + decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions + decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions + decomposeGeometryMethods(loc, result, arguments); // HLSL->AST geometry method decompositions + // Convert 'out' arguments. If it was a constant folded built-in, it won't be an aggregate anymore. // Built-ins with a single argument aren't called with an aggregate, but they also don't have an output. // Also, build the qualifier list for user function calls, which are always called with an aggregate. - if (result->getAsAggregate()) { + // We don't do this is if there has been a decomposition, which will have added its own conversions + // for output parameters. + if (result == fnNode && result->getAsAggregate()) { TQualifierList& qualifierList = result->getAsAggregate()->getQualifierList(); for (int i = 0; i < fnCandidate->getParamCount(); ++i) { TStorageQualifier qual = (*fnCandidate)[i].type->getQualifier().storage; qualifierList.push_back(qual); } - result = addOutputArgumentConversions(*fnCandidate, *result->getAsAggregate()); + result = addOutputArgumentConversions(*fnCandidate, *result->getAsOperator()); } - - decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions - decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions - decomposeGeometryMethods(loc, result, arguments); // HLSL->AST geometry method decompositions } } @@ -2724,9 +2730,19 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI // // Returns a node of a subtree that evaluates to the return value of the function. // -TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& function, TIntermAggregate& intermNode) +TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& function, TIntermOperator& intermNode) { - TIntermSequence& arguments = intermNode.getSequence(); + assert (intermNode.getAsAggregate() != nullptr || intermNode.getAsUnaryNode() != nullptr); + + const TSourceLoc& loc = intermNode.getLoc(); + + TIntermSequence argSequence; // temp sequence for unary node args + + if (intermNode.getAsUnaryNode()) + argSequence.push_back(intermNode.getAsUnaryNode()->getOperand()); + + TIntermSequence& arguments = argSequence.empty() ? intermNode.getAsAggregate()->getSequence() : argSequence; + const auto needsConversion = [&](int argNum) { return function[argNum].type->getQualifier().isParamOutput() && (*function[argNum].type != arguments[argNum]->getAsTyped()->getType() || @@ -2759,8 +2775,8 @@ TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& fu if (intermNode.getBasicType() != EbtVoid) { // do the "tempRet = function(...), " bit from above tempRet = makeInternalVariable("tempReturn", intermNode.getType()); - TIntermSymbol* tempRetNode = intermediate.addSymbol(*tempRet, intermNode.getLoc()); - conversionTree = intermediate.addAssign(EOpAssign, tempRetNode, &intermNode, intermNode.getLoc()); + TIntermSymbol* tempRetNode = intermediate.addSymbol(*tempRet, loc); + conversionTree = intermediate.addAssign(EOpAssign, tempRetNode, &intermNode, loc); } else conversionTree = &intermNode; @@ -2775,7 +2791,7 @@ TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& fu // Make a temporary for what the function expects the argument to look like. TVariable* tempArg = makeInternalVariable("tempArg", *function[i].type); tempArg->getWritableType().getQualifier().makeTemporary(); - TIntermSymbol* tempArgNode = intermediate.addSymbol(*tempArg, intermNode.getLoc()); + TIntermSymbol* tempArgNode = intermediate.addSymbol(*tempArg, loc); // This makes the deepest level, the member-wise copy TIntermTyped* tempAssign = handleAssign(arguments[i]->getLoc(), EOpAssign, arguments[i]->getAsTyped(), tempArgNode); @@ -2783,17 +2799,18 @@ TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& fu conversionTree = intermediate.growAggregate(conversionTree, tempAssign, arguments[i]->getLoc()); // replace the argument with another node for the same tempArg variable - arguments[i] = intermediate.addSymbol(*tempArg, intermNode.getLoc()); + arguments[i] = intermediate.addSymbol(*tempArg, loc); } } // Finalize the tree topology (see bigger comment above). if (tempRet) { // do the "..., tempRet" bit from above - TIntermSymbol* tempRetNode = intermediate.addSymbol(*tempRet, intermNode.getLoc()); - conversionTree = intermediate.growAggregate(conversionTree, tempRetNode, intermNode.getLoc()); + TIntermSymbol* tempRetNode = intermediate.addSymbol(*tempRet, loc); + conversionTree = intermediate.growAggregate(conversionTree, tempRetNode, loc); } - conversionTree = intermediate.setAggregateOperator(conversionTree, EOpComma, intermNode.getType(), intermNode.getLoc()); + + conversionTree = intermediate.setAggregateOperator(conversionTree, EOpComma, intermNode.getType(), loc); return conversionTree; } @@ -4339,7 +4356,8 @@ void HlslParseContext::mergeObjectLayoutQualifiers(TQualifier& dst, const TQuali // // Return the function symbol if found, otherwise nullptr. // -const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn) +const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn, + TIntermNode* args) { // const TFunction* function = nullptr; @@ -4445,9 +4463,81 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // send to the generic selector const TFunction* bestMatch = selectFunction(candidateList, call, convertible, better, tie); - if (bestMatch == nullptr) + if (bestMatch == nullptr) { error(loc, "no matching overloaded function found", call.getName().c_str(), ""); - else if (tie) + return nullptr; + } + + // For builtins, we can convert across the arguments. This will happen in several steps: + // Step 1: If there's an exact match, use it. + // Step 2a: Otherwise, get the operator from the best match and promote arguments: + // Step 2b: reconstruct the TFunction based on the new arg types + // Step 3: Re-select after type promotion is applied, to find proper candidate. + if (builtIn) { + // Step 1: If there's an exact match, use it. + if (call.getMangledName() == bestMatch->getMangledName()) + return bestMatch; + + // Step 2a: Otherwise, get the operator from the best match and promote arguments as if we + // are that kind of operator. + if (args != nullptr) { + // The arg list can be a unary node, or an aggregate. We have to handle both. + // We will use the normal promote() facilities, which require an interm node. + TIntermOperator* promote = nullptr; + + if (call.getParamCount() == 1) { + promote = new TIntermUnary(bestMatch->getBuiltInOp()); + promote->getAsUnaryNode()->setOperand(args->getAsTyped()); + } else { + promote = new TIntermAggregate(bestMatch->getBuiltInOp()); + promote->getAsAggregate()->getSequence().swap(args->getAsAggregate()->getSequence()); + } + + if (! intermediate.promote(promote)) + return nullptr; + + // Obtain the promoted arg list. + if (call.getParamCount() == 1) { + args = promote->getAsUnaryNode()->getOperand(); + } else { + promote->getAsAggregate()->getSequence().swap(args->getAsAggregate()->getSequence()); + } + } + + // Step 2b: reconstruct the TFunction based on the new arg types + TFunction convertedCall(&call.getName(), call.getType(), call.getBuiltInOp()); + + if (args->getAsAggregate()) { + // Handle aggregates: put all args into the new function call + for (int arg=0; arggetAsAggregate()->getSequence().size()); ++arg) { + // TODO: But for constness, we could avoid the new & shallowCopy, and use the pointer directly. + TParameter param = { 0, new TType }; + param.type->shallowCopy(args->getAsAggregate()->getSequence()[arg]->getAsTyped()->getType()); + convertedCall.addParameter(param); + } + } else if (args->getAsUnaryNode()) { + // Handle unaries: put all args into the new function call + TParameter param = { 0, new TType }; + param.type->shallowCopy(args->getAsUnaryNode()->getOperand()->getAsTyped()->getType()); + convertedCall.addParameter(param); + } else if (args->getAsTyped()) { + // Handle bare e.g, floats, not in an aggregate. + TParameter param = { 0, new TType }; + param.type->shallowCopy(args->getAsTyped()->getType()); + convertedCall.addParameter(param); + } else { + assert(0); // unknown argument list. + return nullptr; + } + + // Step 3: Re-select after type promotion, to find proper candidate + // send to the generic selector + bestMatch = selectFunction(candidateList, convertedCall, convertible, better, tie); + + // At this point, there should be no tie. + } + + if (tie) error(loc, "ambiguous best function under implicit type conversion", call.getName().c_str(), ""); return bestMatch; diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 3862c10f..0f436712 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -84,7 +84,7 @@ public: void decomposeGeometryMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*); void addInputArgumentConversions(const TFunction&, TIntermNode*&) const; - TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&); + TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermOperator&); void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&); TFunction* handleConstructorCall(const TSourceLoc&, const TType&); void handleSemantic(TSourceLoc, TQualifier&, const TString& semantic); @@ -125,7 +125,7 @@ public: void mergeObjectLayoutQualifiers(TQualifier& dest, const TQualifier& src, bool inheritOnly); void checkNoShaderLayouts(const TSourceLoc&, const TShaderQualifiers&); - const TFunction* findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn); + const TFunction* findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn, TIntermNode* args); void declareTypedef(const TSourceLoc&, TString& identifier, const TType&, TArraySizes* typeArray = 0); TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, TType&, TIntermTyped* initializer = 0); TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&); diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 05dc7cfb..8ecaec9d 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -558,8 +558,8 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS }, { "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS }, { "any", "S", "B", "SVM", "BFIU", EShLangAll }, - { "asdouble", "S", "D", "S,", "U,", EShLangAll }, - { "asdouble", "V2", "D", "V2,", "U,", EShLangAll }, + { "asdouble", "S", "D", "S,", "UI,", EShLangAll }, + { "asdouble", "V2", "D", "V2,", "UI,", EShLangAll }, { "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll }, { "asin", nullptr, nullptr, "SVM", "F", EShLangAll }, { "asint", nullptr, "I", "SVM", "FU", EShLangAll }, @@ -572,7 +572,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "clip", "-", "-", "SVM", "F", EShLangPS }, { "cos", nullptr, nullptr, "SVM", "F", EShLangAll }, { "cosh", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "countbits", nullptr, nullptr, "SV", "U", EShLangAll }, + { "countbits", nullptr, nullptr, "SV", "UI", EShLangAll }, { "cross", nullptr, nullptr, "V3,", "F,", EShLangAll }, { "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll }, { "ddx", nullptr, nullptr, "SVM", "F", EShLangPS }, @@ -636,9 +636,9 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "log10", nullptr, nullptr, "SVM", "F", EShLangAll }, { "log2", nullptr, nullptr, "SVM", "F", EShLangAll }, { "mad", nullptr, nullptr, "SVM,,", "DFUI,,", EShLangAll }, - { "max", nullptr, nullptr, "SVM,", "FI,", EShLangAll }, - { "min", nullptr, nullptr, "SVM,", "FI,", EShLangAll }, - { "modf", nullptr, nullptr, "SVM,>", "FI,", EShLangAll }, + { "max", nullptr, nullptr, "SVM,", "FIU,", EShLangAll }, + { "min", nullptr, nullptr, "SVM,", "FIU,", EShLangAll }, + { "modf", nullptr, nullptr, "SVM,>", "FIU,", EShLangAll }, { "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll }, { "mul", "S", nullptr, "S,S", "FI,", EShLangAll }, { "mul", "V", nullptr, "S,V", "FI,", EShLangAll }, @@ -665,7 +665,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll }, { "reflect", nullptr, nullptr, "V,", "F,", EShLangAll }, { "refract", nullptr, nullptr, "V,V,S", "F,,", EShLangAll }, - { "reversebits", nullptr, nullptr, "SV", "U", EShLangAll }, + { "reversebits", nullptr, nullptr, "SV", "UI", EShLangAll }, { "round", nullptr, nullptr, "SVM", "F", EShLangAll }, { "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll }, { "saturate", nullptr, nullptr , "SVM", "F", EShLangAll }, @@ -735,7 +735,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // RWTexture loads { "Load", "V4", nullptr, "!#,V", "FIU,I", EShLangAll }, // (RW)Buffer loads - { "Load", "V4", nullptr, "~*1,V", "FIU,I", EShLangAll }, + { "Load", "V4", nullptr, "~*1,V", "FIU,I", EShLangAll }, { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangAll },