From 2341f24ab486e2c5816bb82e60932b503fbe3796 Mon Sep 17 00:00:00 2001 From: Schell Carl Scivally Date: Mon, 10 Feb 2025 17:10:08 +1300 Subject: [PATCH] smooth shadows - PCF, better depth picking for shadow maps --- crates/example/src/lib.rs | 2 +- .../shaders/light-shadow_mapping_vertex.spv | Bin 32380 -> 32380 bytes .../shaders/light-shadow_mapping_vertex.wgsl | 178 +- .../shaders/stage-renderlet_fragment.spv | Bin 77756 -> 82072 bytes .../shaders/stage-renderlet_fragment.wgsl | 4654 +++++++++-------- crates/renderling/src/atlas.rs | 1 - crates/renderling/src/light.rs | 102 +- crates/renderling/src/light/cpu.rs | 169 +- crates/renderling/src/math.rs | 4 + crates/renderling/src/pbr.rs | 8 +- gltf/shadow_mapping_only_cuboid.bin | Bin 0 -> 1680 bytes gltf/shadow_mapping_only_cuboid.gltf | 281 + ...hadow_mapping_only_cuboid_red_and_blue.bin | Bin 0 -> 1680 bytes ...adow_mapping_only_cuboid_red_and_blue.gltf | 311 ++ 14 files changed, 3366 insertions(+), 2344 deletions(-) create mode 100644 gltf/shadow_mapping_only_cuboid.bin create mode 100644 gltf/shadow_mapping_only_cuboid.gltf create mode 100644 gltf/shadow_mapping_only_cuboid_red_and_blue.bin create mode 100644 gltf/shadow_mapping_only_cuboid_red_and_blue.gltf diff --git a/crates/example/src/lib.rs b/crates/example/src/lib.rs index f4c0b92..a54887e 100644 --- a/crates/example/src/lib.rs +++ b/crates/example/src/lib.rs @@ -10,7 +10,7 @@ use renderling::{ atlas::AtlasImage, bvol::{Aabb, BoundingSphere}, camera::Camera, - light::{AnalyticalLightBundle, DirectionalLightDescriptor, Light, Lighting}, + light::{AnalyticalLightBundle, DirectionalLightDescriptor}, math::{Mat4, UVec2, Vec2, Vec3, Vec4}, skybox::Skybox, stage::{Animator, GltfDocument, Renderlet, Stage, Vertex}, diff --git a/crates/renderling/shaders/light-shadow_mapping_vertex.spv b/crates/renderling/shaders/light-shadow_mapping_vertex.spv index a30dc66ad7d9cff88089568ae897f7e1b97a038f..d47c39009a02d7828c991cee7f21728167df20bc 100644 GIT binary patch delta 10252 zcmZvi4Rlr2mB;T5hLDgz!y^Pr)0B^B5hz8fKvR^EN{VO^FalbQlv+Ll3M2u-hZh7Y z;ltLRA_fGCiWUJ8o(L2{5belx&9rn4(^9KQJ2SOw7UObiM-e(R|KEFO<0-3m<-EK1 zfB*N#+2`EzKH$=&_|m1gs7+3B&6+m*HJUNT3PL>kt9QQN35vb(KaY0@CeR%uS-`xCvcy6=$A zwC1>q{A-GcTaxbZX4T4)O9gxlbQM^=^sZq(I&So|6)APZ7z5}Uf|ZX zuZ)}BNxd#~xrOuNMQ%yq1U2?_;akZo@))FkFHn?^6y=1E_=)mhJF0O+gQ(mu=ne-R z+rz4MntYE-wmAEQH3@r7*wc!QE%d|xFPe=woub#JKqS}_IUR9T9a8b@>DmrwbKGxI zg>HE9@VLn>E1v3BbuLVQSbS?7&v#X+4Vu`Q)D%r@Sm)82SWD*(nplsLsYNvQMor~Q zNkzh1|B&^07IdW0R?_JC1UybLuQRRb^ zKg+&T1#gxe-bLxg!}f{BhZ+>feT848k0fsr5#OaA`&ihM#L=AsiG?3ALLHofr}3m+ zlEU)_i2x*d!7qDWezprFqPPyyxtIjDe2sP*B;igHIOy1{n}w3;CULBrMZzw%tBxX! zp(6o&JEM-0Arg#kl7vE@3cA_R9sk1M_>#Nug#mi)(_^$=n|e&q>zRyP(Q|YzlWcTN zJ?k=3lRMM1CL_&r6}@W2oYl+4b6wnf!>BT4u-#9l-qN|4GPZJ!&ucJ6?oHL918U#r%hS1|FgIaWx9hc|O1Dw)p&bF4@Yt9T?XTdr;Yp5Xt~_%DrdI_IvH z%lnd-r_Wv8K8{zo^Vf8bSETd5*ei}#y8eC2^?F;M!+P-Yul;p0P{EnrDtVD)h;%Nd zm$6B|PJ`)iXL@kZ2kCCpyFs$Wu@xOGY=&ZE3;po-lkF4@l>(7q%=S7rr*A4AnqJvA zFD_}({O)WMMUymc*B-18VYS=VFO|PW7Obn?k$&a<(Z-9z!Fq@8W5wkiWQ6p|>ILrx z91k3|BV2xej)y+|e;$|I=m}SOLZ$Q@UH*Xaxi?9wbdv|9;+tI4fD@y}Q==whr|DhN zxo8x&T8%q2Xbg8I3o!a1_W3$?3OSU++h;xMPQ$}o|AO615tD^=f5D7-9 zB%zR(f>ImO@pb7qZgl$xjn?LizcMwRm!AHWHaW=(u}Ql|o_MX1&PDmyzNfKLgL1i3 z1{`#3R(^|Qi(}=l7It1$U<>{5zg+%WDG&)p`6Qu`_k;4+ri%w3p!}0VD8FRrX!mht zVS47!;k;?>{%TrpT9YeB>rHF7UKhFxmCwbGyKP@fB^wm&4~nE2W;W(>-JkH7_GSjF z*S%F3TrM^+*hY_;FW4rJg}zUEjDnYW-_61lGsy%taEm~KG7Q@)nV^i7-uY?CaNrxZ zT{0Z_hCM5p;z67Xqjs6u?U2mOuJbd+fh5a)5zk9*lntKw?38Ri zbPOM2C+u}`*S3!$3NZezL`vvD0g!Ij8{RBA?3PX<0`Jmj5N5&FiAQh?_JZUv7Rlk5 zea{tkx{`!5dQku~f@n^A11DNefwa{M+$WjD_`;~nF+wN0uM;05MpDeK-<6v^YvMR-Olx>)|HkYl1|$XY8dgS zlHoBM;~kdH?6Dc|70K|}{l+^Yog%Oq@2KR*HKN`c2EOV+k{EUj%#9sh>3Wa&Oztqf z6C85ehNns>GJM3UGM1CWuZa)44>GUas*tNPuhXjz52Fk&i(D%YurS*MkA;yZfw{>e z_QXeBadmn8svD@+W9hNgZE^(F-VD^F*JJ7RH)o*M8lXdZJ(fOGlY!nI1@u?F9&=^4 z%Cy>=T{7w>k>DF;Fyx`uxqeib4 zwRQ0xx3ac8-jm*5E5nQKPZMhNI&flLyw^Q8v9Df_Of1dar_6iYnTgf$K36uWE>628 zlgjnFdD4Vo*UR>gynXAUuWX+iJZ60b8|*RbE7%Y>@UB$y!-6Ox3YV>n^O!}bm+eO$ zvj|}8J;t$WzE23F0xrW^Jr>5>n8lL6*+iQ>F$}mx80Cinw|XoL_+yWS1#a_L81ETj zLoUbj$M1Fzh5?`TSQzj*j}g$$^BuxS1m6yp?<)bgoh#2vCN@Vog%StO%EX`Ly95w~ zLM+G+L;$xSyCqu?IzSLOR>&Ud1P^08COf#rcu{f~BcWsEtEyl}|6(h;Cgdh|G$$}h|&Mdgj(+T%gA z*QHxFqS1%fG%VU1l6n5%S+ouE2e*oTCfQ=}{8Awti}9v(&7{-cl=OrMZ@OjomS)PL zBOn&?=h7`CWzpG_8fO2ez|K(spE4}vFC^1ErekHdDn7Wy_@!j!$Syg(p_7n|@T)8# z`+-L?Mc`xsH;T)dWBh-SY(-|@vkCTo$pAt zI;o%W+l)OM`mDE?D-B$0>bsJ$k=n5Lq|@lu0{6guUGixo<2|?TzS4wk$oP{;mizOh4-cB)aZx_B?a;{{$L9uWS_=U>zI4gW0(qYcB=L>|G1+!RtVK~}W=p>now|0UQ zX%uR(6S(tb2o5?nb^)>XYbl7&_n?O~LSCmt2K#!Nk_;JVhy=ADFAK*`5DH^&F4mok zg0O#9dRGk!;7%eq=-5`N1NGu}m&_+lx|10AIS< zBb{AFT;mOt%=#18V@Whf3L7Q>qwA%!55QjW>vn@=a9fTB$z04HTdl@m4Q9*T_RkQ> zwtsjED2Pd9?fNV|G$2?~+GB~oDmy_e@p#ExB*s>wQK>;K1Wwp3y2e?;C-pld z!>5C4b7o`0ZIDc7d0HqgsTX;x5`X$g=m$a>ZGG*Lfn&4zv1FbU>(YdPkBvPQK0yp?&YqC(O1`pNQ-xW#uv@pLNv2yR5Uhadk|9lV@$}Nynus)4COLjQ;SZ|)vvvEIy0oRWBd+xr-?&*KTD(peIQ-Raa(#I>5K=SO zG5R8IJw51J>uchJ?p*!o$_J~$;V z`Lo!${F}TkYuJZw@9b3a7jFrFl=vTEA8Hu8UcyHnv-X00?6J`Ig2(tl!w%|Cgb|Zr z*hR^TnPdVRcu62Z8TM@RUj;~xgJC(s;J`PmjWCjv%&@CG7W(FT4Bx_NK=zmMwgT;h zv1BB%!!u7Z?^$i#y1AtZ^B^Rl?96&vGU@Eh%9m^r;gb%I9Zv<4iP}yBF7JL8>lx|9 zwpi^Y2eI-p$)9QO{&#MdGGa63u-YQ=skYGF)=-)-AF|UR%id8kQDJt_AiHJzjPxK| z#+R8{b=xHq%lO3s-*Un6_8C#9fMDgas@B|;WXgqS1$LH9Aq2-xfo$A*-AkmiZMp0x z=`O+wTybM|LsPz4y2`?IOEoM)H_1d`;~MX?!pMrvc-tO^7qjUjt!>Z)%9UyUFuX zCDhehm_1AVB$v6Cc_)(ZNV-Ym>lz#x_v_BZk%8^I8dEhmtGL^LahNW7jd=JjRqv-s zo*}tP0~==*vG5~CsDpEM$tM-fl)^_@NCcSL)?K?`WG?Um*R-G}BQ?9@3##v2APoEw z(W`V~&(pnGy8bf%EeAV4uT#rH$=DW4ua~|^GMLr6L^82fMeeTVY`R9by*Zn%$$ijV zUEAU*^VB>`w_2F~GU>2ex;2uqS-Q27!7SaQl1aD1wJgl$*yK(xtZ56@8o8c}M%=m4 zQ|1ThHVM;TCLMN5_oQTOmTt3TFiW>pGND@{_tQnz%-qG+%(06rCmD68r!EZA?h>ZI zOj_)gcDH0~mi7h7V0NUwB6+DhzBqOB3Q5-nmSd7vU4gwOeXYmryf`79jm*dH2i?FW zsiM~dq`{3{l1knPkol6os6l*-@w33rvSTNg*?$q(ACufqgS=+{Wnf?L?Ns6INpvb8 zw0Z(XS%6;!c2RL#3Vh$0Qy_?tfK>hiLpihuz%q delta 10283 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 var local_3: array; var phi_419_: u32; - var phi_2240_: bool; + var phi_2244_: bool; var phi_426_: u32; var phi_427_: u32; var phi_437_: u32; @@ -74,17 +74,17 @@ fn function() { var phi_607_: type_11; var phi_632_: type_11; var phi_649_: u32; - var phi_2270_: bool; + var phi_2274_: bool; var phi_667_: type_11; - var phi_2296_: u32; - var phi_2315_: bool; + var phi_2300_: u32; + var phi_2319_: bool; var phi_717_: type_23; var phi_727_: u32; - var phi_2337_: bool; + var phi_2341_: bool; var phi_735_: f32; var phi_610_: type_20; var phi_788_: bool; - var phi_2357_: bool; + var phi_2361_: bool; var phi_884_: type_24; var local_4: type_20; var phi_887_: type_11; @@ -93,16 +93,16 @@ fn function() { var phi_913_: type_11; var local_5: type_20; var phi_937_: u32; - var phi_2391_: bool; + var phi_2395_: bool; var phi_946_: u32; - var phi_2415_: bool; + var phi_2419_: bool; var phi_995_: type_17; var phi_1005_: u32; - var phi_2440_: bool; + var phi_2444_: bool; var phi_1078_: type_14; var phi_891_: type_14; var phi_1315_: bool; - var phi_2882_: bool; + var phi_2886_: bool; var local_6: type_14; var local_7: type_14; var local_8: type_14; @@ -145,24 +145,24 @@ fn function() { var phi_1473_: bool; var phi_1474_: bool; var phi_1482_: type_14; - var phi_2575_: bool; - var phi_2640_: vec4; - var phi_2670_: vec4; - var phi_2672_: vec4; - var phi_2681_: type_17; - var phi_2682_: type_17; - var phi_2687_: type_17; - var phi_2688_: type_17; - var phi_2689_: bool; - var phi_2693_: type_17; + var phi_2579_: bool; + var phi_2644_: vec4; + var phi_2674_: vec4; + var phi_2676_: vec4; + var phi_2685_: type_17; + var phi_2686_: type_17; + var phi_2691_: type_17; + var phi_2692_: type_17; + var phi_2693_: bool; + var phi_2697_: type_17; var phi_1484_: type_17; var phi_1486_: type_17; var phi_1487_: bool; - var phi_2787_: bool; + var phi_2791_: bool; var phi_1540_: type_17; var phi_1541_: type_17; var local_22: type_20; - var phi_1640_: u32; + var phi_1644_: u32; var local_23: type_14; switch bitcast(0u) { @@ -193,11 +193,11 @@ fn function() { } let _e119 = phi_419_; if (_e66 >= 1u) { - phi_2240_ = (_e119 <= (_e66 - 1u)); + phi_2244_ = (_e119 <= (_e66 - 1u)); } else { - phi_2240_ = false; + phi_2244_ = false; } - let _e124 = phi_2240_; + let _e124 = phi_2244_; if _e124 { let _e127 = global_3.member[_e119]; phi_426_ = _e127; @@ -337,11 +337,11 @@ fn function() { } let _e321 = phi_649_; if (_e66 >= 2u) { - phi_2270_ = (_e321 <= (_e66 - 2u)); + phi_2274_ = (_e321 <= (_e66 - 2u)); } else { - phi_2270_ = false; + phi_2274_ = false; } - let _e326 = phi_2270_; + let _e326 = phi_2274_; if _e326 { let _e329 = global_3.member[_e321]; let _e333 = global_3.member[(_e321 + 1u)]; @@ -351,17 +351,17 @@ fn function() { } let _e336 = phi_667_; if (_e131 >= _e336.member_1) { - phi_2296_ = 4294967295u; + phi_2300_ = 4294967295u; } else { - phi_2296_ = (_e336.member + (9u * _e131)); + phi_2300_ = (_e336.member + (9u * _e131)); } - let _e343 = phi_2296_; + let _e343 = phi_2300_; if (_e66 >= 9u) { - phi_2315_ = (_e343 <= (_e66 - 9u)); + phi_2319_ = (_e343 <= (_e66 - 9u)); } else { - phi_2315_ = false; + phi_2319_ = false; } - let _e348 = phi_2315_; + let _e348 = phi_2319_; if _e348 { let _e351 = global_3.member[_e343]; let _e356 = global_3.member[(_e343 + 1u)]; @@ -384,11 +384,11 @@ fn function() { } let _e402 = phi_727_; if (_e66 >= 1u) { - phi_2337_ = (_e402 <= (_e66 - 1u)); + phi_2341_ = (_e402 <= (_e66 - 1u)); } else { - phi_2337_ = false; + phi_2341_ = false; } - let _e407 = phi_2337_; + let _e407 = phi_2341_; if _e407 { let _e410 = global_3.member[_e402]; phi_735_ = bitcast(_e410); @@ -422,11 +422,11 @@ fn function() { let _e496 = ((_e94 == 4294967295u) != true); if _e496 { if (_e66 >= 4u) { - phi_2357_ = (_e94 <= (_e66 - 4u)); + phi_2361_ = (_e94 <= (_e66 - 4u)); } else { - phi_2357_ = false; + phi_2361_ = false; } - let _e501 = phi_2357_; + let _e501 = phi_2361_; if _e501 { let _e504 = global_3.member[_e94]; let _e508 = global_3.member[(_e94 + 1u)]; @@ -482,7 +482,7 @@ fn function() { let _e550 = (_e543.member_1 < 4u); if _e550 { } else { - phi_2882_ = true; + phi_2886_ = true; break; } let _e552 = local_1[_e543.member_1]; @@ -493,11 +493,11 @@ fn function() { } let _e560 = phi_937_; if (_e66 >= 1u) { - phi_2391_ = (_e560 <= (_e66 - 1u)); + phi_2395_ = (_e560 <= (_e66 - 1u)); } else { - phi_2391_ = false; + phi_2395_ = false; } - let _e565 = phi_2391_; + let _e565 = phi_2395_; if _e565 { let _e568 = global_3.member[_e560]; phi_946_ = _e568; @@ -506,11 +506,11 @@ fn function() { } let _e570 = phi_946_; if (_e66 >= 10u) { - phi_2415_ = (_e570 <= (_e66 - 10u)); + phi_2419_ = (_e570 <= (_e66 - 10u)); } else { - phi_2415_ = false; + phi_2419_ = false; } - let _e575 = phi_2415_; + let _e575 = phi_2419_; if _e575 { let _e578 = global_3.member[_e570]; let _e583 = global_3.member[(_e570 + 1u)]; @@ -534,11 +534,11 @@ fn function() { } let _e639 = phi_1005_; if (_e66 >= 16u) { - phi_2440_ = (_e639 <= (_e66 - 16u)); + phi_2444_ = (_e639 <= (_e66 - 16u)); } else { - phi_2440_ = false; + phi_2444_ = false; } - let _e644 = phi_2440_; + let _e644 = phi_2444_; if _e644 { let _e647 = global_3.member[_e639]; let _e652 = global_3.member[(_e639 + 1u)]; @@ -573,7 +573,7 @@ fn function() { let _e769 = (vec4(fma(_e630.member_1.x, _e740, _e744), fma(_e630.member_1.y, _e740, -(_e743)), (1f - fma(_e630.member_1.x, _e738, (_e630.member_1.y * _e739))), 0f) * _e630.member_2.z); if _e550 { } else { - phi_2882_ = true; + phi_2886_ = true; break; } let _e874 = local[_e543.member_1]; @@ -593,11 +593,11 @@ fn function() { continuing { phi_887_ = _e541; phi_890_ = _e889; - phi_2882_ = false; + phi_2886_ = false; break if !(_e891); } } - let _e894 = phi_2882_; + let _e894 = phi_2886_; if _e894 { break; } @@ -773,19 +773,19 @@ fn function() { let _e1122 = fma(_e1084.member_2.x, _e1084.member_3.y, -((_e1084.member_2.y * _e1084.member_3.x))); let _e1144 = fma(-(_e1084.member.w), fma(_e1084.member_1.z, _e1122, fma(_e1084.member_1.x, _e1113, -((_e1084.member_1.y * _e1119)))), fma(_e1084.member.z, fma(_e1084.member_1.w, _e1122, fma(_e1084.member_1.x, _e1110, -((_e1084.member_1.y * _e1116)))), fma(_e1084.member.x, fma(_e1084.member_1.w, _e1113, fma(_e1084.member_1.y, _e1107, -((_e1084.member_1.z * _e1110)))), -((_e1084.member.y * fma(_e1084.member_1.w, _e1119, fma(_e1084.member_1.x, _e1107, -((_e1084.member_1.z * _e1116))))))))); if (_e1144 == 0f) { - phi_2687_ = type_17(vec3(1f, 1f, 1f), vec4(0f, 0f, 0f, 1f), vec3(0f, 0f, 0f)); - phi_2688_ = type_17(); - phi_2689_ = true; + phi_2691_ = type_17(vec3(1f, 1f, 1f), vec4(0f, 0f, 0f, 1f), vec3(0f, 0f, 0f)); + phi_2692_ = type_17(); + phi_2693_ = true; } else { let _e1153 = (sqrt(fma(_e1084.member.w, _e1084.member.w, fma(_e1084.member.z, _e1084.member.z, fma(_e1084.member.x, _e1084.member.x, (_e1084.member.y * _e1084.member.y))))) * select(-1f, 1f, (_e1144 >= 0f))); let _e1158 = sqrt(fma(_e1084.member_1.w, _e1084.member_1.w, fma(_e1084.member_1.z, _e1084.member_1.z, fma(_e1084.member_1.x, _e1084.member_1.x, (_e1084.member_1.y * _e1084.member_1.y))))); let _e1163 = sqrt(fma(_e1084.member_2.w, _e1084.member_2.w, fma(_e1084.member_2.z, _e1084.member_2.z, fma(_e1084.member_2.x, _e1084.member_2.x, (_e1084.member_2.y * _e1084.member_2.y))))); if (_e1153 != 0f) { - phi_2575_ = select(true, false, (_e1158 != 0f)); + phi_2579_ = select(true, false, (_e1158 != 0f)); } else { - phi_2575_ = true; + phi_2579_ = true; } - let _e1170 = phi_2575_; + let _e1170 = phi_2579_; let _e1171 = select((_e1163 != 0f), false, _e1170); if _e1171 { let _e1172 = (1f / _e1153); @@ -802,51 +802,51 @@ fn function() { if (_e1214 <= 0f) { let _e1230 = (_e1216 - _e1214); let _e1232 = (0.5f / sqrt(_e1230)); - phi_2670_ = vec4((_e1230 * _e1232), (fma(_e1084.member.y, _e1172, _e1177) * _e1232), (fma(_e1084.member.z, _e1172, _e1178) * _e1232), (fma(_e1084.member_1.z, _e1173, -(_e1179)) * _e1232)); + phi_2674_ = vec4((_e1230 * _e1232), (fma(_e1084.member.y, _e1172, _e1177) * _e1232), (fma(_e1084.member.z, _e1172, _e1178) * _e1232), (fma(_e1084.member_1.z, _e1173, -(_e1179)) * _e1232)); } else { let _e1218 = (_e1216 + _e1214); let _e1220 = (0.5f / sqrt(_e1218)); - phi_2670_ = vec4((fma(_e1084.member.y, _e1172, _e1177) * _e1220), (_e1218 * _e1220), (fma(_e1084.member_1.z, _e1173, _e1179) * _e1220), (fma(_e1084.member_2.x, _e1174, -(_e1176)) * _e1220)); + phi_2674_ = vec4((fma(_e1084.member.y, _e1172, _e1177) * _e1220), (_e1218 * _e1220), (fma(_e1084.member_1.z, _e1173, _e1179) * _e1220), (fma(_e1084.member_2.x, _e1174, -(_e1176)) * _e1220)); } - let _e1243 = phi_2670_; - phi_2672_ = _e1243; + let _e1243 = phi_2674_; + phi_2676_ = _e1243; } else { let _e1182 = fma(_e1084.member_1.y, _e1173, _e1175); let _e1183 = fma(_e1084.member_2.z, _e1174, 1f); if (_e1182 <= 0f) { let _e1199 = (_e1183 - _e1182); let _e1201 = (0.5f / sqrt(_e1199)); - phi_2640_ = vec4((fma(_e1084.member.z, _e1172, _e1178) * _e1201), (fma(_e1084.member_1.z, _e1173, _e1179) * _e1201), (_e1199 * _e1201), (fma(_e1084.member.y, _e1172, -(_e1177)) * _e1201)); + phi_2644_ = vec4((fma(_e1084.member.z, _e1172, _e1178) * _e1201), (fma(_e1084.member_1.z, _e1173, _e1179) * _e1201), (_e1199 * _e1201), (fma(_e1084.member.y, _e1172, -(_e1177)) * _e1201)); } else { let _e1185 = (_e1183 + _e1182); let _e1187 = (0.5f / sqrt(_e1185)); - phi_2640_ = vec4((fma(_e1084.member_1.z, _e1173, -(_e1179)) * _e1187), (fma(_e1084.member_2.x, _e1174, -(_e1176)) * _e1187), (fma(_e1084.member.y, _e1172, -(_e1177)) * _e1187), (_e1185 * _e1187)); + phi_2644_ = vec4((fma(_e1084.member_1.z, _e1173, -(_e1179)) * _e1187), (fma(_e1084.member_2.x, _e1174, -(_e1176)) * _e1187), (fma(_e1084.member.y, _e1172, -(_e1177)) * _e1187), (_e1185 * _e1187)); } - let _e1212 = phi_2640_; - phi_2672_ = _e1212; + let _e1212 = phi_2644_; + phi_2676_ = _e1212; } - let _e1245 = phi_2672_; - phi_2681_ = type_17(vec3(_e1153, _e1158, _e1163), _e1245, vec3(_e1084.member_3.x, _e1084.member_3.y, _e1084.member_3.z)); - phi_2682_ = type_17(); + let _e1245 = phi_2676_; + phi_2685_ = type_17(vec3(_e1153, _e1158, _e1163), _e1245, vec3(_e1084.member_3.x, _e1084.member_3.y, _e1084.member_3.z)); + phi_2686_ = type_17(); } else { - phi_2681_ = type_17(); - phi_2682_ = type_17(vec3(1f, 1f, 1f), vec4(0f, 0f, 0f, 1f), vec3(0f, 0f, 0f)); + phi_2685_ = type_17(); + phi_2686_ = type_17(vec3(1f, 1f, 1f), vec4(0f, 0f, 0f, 1f), vec3(0f, 0f, 0f)); } - let _e1249 = phi_2681_; - let _e1251 = phi_2682_; - phi_2687_ = _e1251; - phi_2688_ = _e1249; - phi_2689_ = select(true, false, _e1171); + let _e1249 = phi_2685_; + let _e1251 = phi_2686_; + phi_2691_ = _e1251; + phi_2692_ = _e1249; + phi_2693_ = select(true, false, _e1171); } - let _e1254 = phi_2687_; - let _e1256 = phi_2688_; - let _e1258 = phi_2689_; + let _e1254 = phi_2691_; + let _e1256 = phi_2692_; + let _e1258 = phi_2693_; if _e1258 { - phi_2693_ = _e1254; + phi_2697_ = _e1254; } else { - phi_2693_ = _e1256; + phi_2697_ = _e1256; } - let _e1260 = phi_2693_; + let _e1260 = phi_2697_; phi_1484_ = type_17(_e1260.member_2, _e1260.member_1, _e1260.member); } else { phi_1484_ = type_17(); @@ -862,11 +862,11 @@ fn function() { let _e1271 = phi_1487_; if _e1271 { if (_e66 >= 10u) { - phi_2787_ = (_e90 <= (_e66 - 10u)); + phi_2791_ = (_e90 <= (_e66 - 10u)); } else { - phi_2787_ = false; + phi_2791_ = false; } - let _e1276 = phi_2787_; + let _e1276 = phi_2791_; if _e1276 { let _e1279 = global_3.member[_e90]; let _e1284 = global_3.member[(_e90 + 1u)]; @@ -907,11 +907,11 @@ fn function() { let _e1411 = global_4.member[_e1405]; let _e1415 = global_4.member[(_e1405 + 1u)]; if (_e1408 >= _e1415) { - phi_1640_ = 4294967295u; + phi_1644_ = 4294967295u; } else { - phi_1640_ = (_e1411 + (16u * _e1408)); + phi_1644_ = (_e1411 + (16u * _e1408)); } - let _e1420 = phi_1640_; + let _e1420 = phi_1644_; let _e1423 = global_4.member[_e1420]; let _e1428 = global_4.member[(_e1420 + 1u)]; let _e1433 = global_4.member[(_e1420 + 2u)]; diff --git a/crates/renderling/shaders/stage-renderlet_fragment.spv b/crates/renderling/shaders/stage-renderlet_fragment.spv index 365b45da544404153aa873415a3ab3096f901537..b1f9d02ad88ca28a07965d030c8772575dde7eaf 100644 GIT binary patch literal 82072 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 od(eNY(urMvzehT#cc9Myp{dQdO, member_1: vec3, member_2: f32, @@ -120,2318 +131,2599 @@ var global_20: vec4; fn function() { var local: array, 8>; var local_1: array, 6>; - var phi_680_: u32; - var phi_4342_: bool; - var phi_808_: type_33; - var phi_812_: type_33; - var phi_4379_: bool; - var phi_852_: u32; + var phi_689_: u32; + var phi_4542_: bool; + var phi_817_: type_33; + var phi_821_: type_33; + var phi_4579_: bool; var phi_861_: u32; - var phi_874_: type_15; - var phi_4401_: f32; - var phi_4414_: bool; - var phi_928_: f32; - var phi_923_: f32; - var phi_929_: f32; - var phi_4431_: bool; - var phi_894_: f32; - var phi_931_: f32; - var phi_4449_: f32; - var phi_4462_: bool; - var phi_986_: f32; - var phi_981_: f32; - var phi_987_: f32; - var phi_4479_: bool; - var phi_952_: f32; - var phi_989_: f32; - var phi_4515_: bool; - var phi_1072_: u32; - var phi_1081_: u32; - var phi_1094_: type_15; - var phi_4536_: f32; - var phi_4549_: bool; - var phi_1148_: f32; - var phi_1143_: f32; - var phi_1149_: f32; - var phi_4566_: bool; - var phi_1114_: f32; - var phi_1151_: f32; - var phi_4584_: f32; - var phi_4597_: bool; - var phi_1206_: f32; - var phi_1201_: f32; - var phi_1207_: f32; + var phi_870_: u32; + var phi_883_: type_15; + var phi_4601_: f32; var phi_4614_: bool; - var phi_1172_: f32; - var phi_1209_: f32; - var phi_4650_: bool; - var phi_1292_: u32; - var phi_1301_: u32; - var phi_1314_: type_15; - var phi_4671_: f32; - var phi_4684_: bool; - var phi_1368_: f32; - var phi_1363_: f32; - var phi_1369_: f32; - var phi_4701_: bool; - var phi_1334_: f32; - var phi_1371_: f32; - var phi_4719_: f32; - var phi_4732_: bool; - var phi_1426_: f32; - var phi_1421_: f32; - var phi_1427_: f32; + var phi_937_: f32; + var phi_932_: f32; + var phi_938_: f32; + var phi_4631_: bool; + var phi_903_: f32; + var phi_940_: f32; + var phi_4649_: f32; + var phi_4662_: bool; + var phi_995_: f32; + var phi_990_: f32; + var phi_996_: f32; + var phi_4679_: bool; + var phi_961_: f32; + var phi_998_: f32; + var phi_4715_: bool; + var phi_1081_: u32; + var phi_1090_: u32; + var phi_1103_: type_15; + var phi_4736_: f32; var phi_4749_: bool; - var phi_1392_: f32; - var phi_1429_: f32; - var phi_4785_: bool; - var phi_1512_: u32; - var phi_1521_: u32; - var phi_1534_: type_15; - var phi_4806_: f32; - var phi_4819_: bool; - var phi_1588_: f32; - var phi_1583_: f32; - var phi_1589_: f32; - var phi_4836_: bool; - var phi_1554_: f32; - var phi_1591_: f32; - var phi_4854_: f32; - var phi_4867_: bool; - var phi_1646_: f32; - var phi_1641_: f32; - var phi_1647_: f32; + var phi_1157_: f32; + var phi_1152_: f32; + var phi_1158_: f32; + var phi_4766_: bool; + var phi_1123_: f32; + var phi_1160_: f32; + var phi_4784_: f32; + var phi_4797_: bool; + var phi_1215_: f32; + var phi_1210_: f32; + var phi_1216_: f32; + var phi_4814_: bool; + var phi_1181_: f32; + var phi_1218_: f32; + var phi_4850_: bool; + var phi_1301_: u32; + var phi_1310_: u32; + var phi_1323_: type_15; + var phi_4871_: f32; var phi_4884_: bool; - var phi_1612_: f32; - var phi_1649_: f32; - var phi_4920_: bool; - var phi_1732_: u32; - var phi_1741_: u32; - var phi_1754_: type_15; - var phi_4941_: f32; - var phi_4954_: bool; - var phi_1808_: f32; - var phi_1803_: f32; - var phi_1809_: f32; - var phi_4971_: bool; - var phi_1774_: f32; - var phi_1811_: f32; - var phi_4989_: f32; - var phi_5002_: bool; - var phi_1866_: f32; - var phi_1861_: f32; - var phi_1867_: f32; + var phi_1377_: f32; + var phi_1372_: f32; + var phi_1378_: f32; + var phi_4901_: bool; + var phi_1343_: f32; + var phi_1380_: f32; + var phi_4919_: f32; + var phi_4932_: bool; + var phi_1435_: f32; + var phi_1430_: f32; + var phi_1436_: f32; + var phi_4949_: bool; + var phi_1401_: f32; + var phi_1438_: f32; + var phi_4985_: bool; + var phi_1521_: u32; + var phi_1530_: u32; + var phi_1543_: type_15; + var phi_5006_: f32; var phi_5019_: bool; - var phi_1832_: f32; - var phi_1869_: f32; - var phi_5077_: vec3; - var phi_5112_: vec3; - var phi_5147_: vec3; - var phi_5182_: vec3; - var phi_5217_: vec3; - var phi_1963_: vec3; - var phi_1964_: vec3; - var phi_5249_: bool; - var phi_2171_: type_14; - var phi_2172_: type_14; - var phi_2195_: type_14; - var phi_2222_: bool; - var phi_2228_: type_14; - var phi_2229_: type_14; - var phi_2252_: type_14; - var phi_2275_: bool; - var phi_2296_: type_25; - var phi_5321_: vec3; - var phi_5380_: vec3; - var phi_5454_: vec3; - var phi_5514_: vec3; - var phi_5563_: vec3; - var phi_5612_: vec3; - var phi_5661_: vec3; - var phi_5710_: vec3; - var phi_5759_: vec3; - var phi_5808_: vec3; - var phi_5847_: vec3; - var phi_5882_: vec3; - var phi_2363_: type_14; - var phi_2366_: vec3; - var phi_2364_: type_14; - var phi_2389_: type_14; - var phi_5908_: u32; - var phi_5927_: bool; - var phi_2406_: u32; - var phi_5959_: bool; - var phi_2423_: u32; - var phi_2437_: type_30; - var phi_5991_: bool; - var phi_2487_: type_31; - var phi_6071_: bool; - var phi_3413_: type_35; - var phi_6121_: vec3; - var phi_6156_: vec3; - var phi_6191_: vec3; - var phi_3668_: vec3; - var phi_6283_: bool; - var phi_3160_: type_34; - var phi_6330_: vec3; - var phi_6365_: vec3; - var phi_3350_: vec3; - var phi_6457_: bool; - var phi_2535_: type_34; - var phi_6504_: vec3; - var phi_6539_: vec3; - var phi_2772_: u32; - var phi_2781_: u32; - var phi_6645_: f32; - var phi_6658_: bool; - var phi_2987_: f32; - var phi_2982_: f32; - var phi_2988_: f32; - var phi_6675_: bool; - var phi_2953_: f32; - var phi_2990_: f32; - var phi_6693_: f32; - var phi_6706_: bool; - var phi_3043_: f32; - var phi_3038_: f32; - var phi_3044_: f32; - var phi_6723_: bool; - var phi_3009_: f32; - var phi_3046_: f32; - var phi_3106_: f32; - var phi_3670_: vec3; - var phi_3671_: bool; - var phi_3680_: vec3; - var phi_2367_: vec3; - var phi_3682_: bool; - var local_2: vec3; + var phi_1597_: f32; + var phi_1592_: f32; + var phi_1598_: f32; + var phi_5036_: bool; + var phi_1563_: f32; + var phi_1600_: f32; + var phi_5054_: f32; + var phi_5067_: bool; + var phi_1655_: f32; + var phi_1650_: f32; + var phi_1656_: f32; + var phi_5084_: bool; + var phi_1621_: f32; + var phi_1658_: f32; + var phi_5120_: bool; + var phi_1741_: u32; + var phi_1750_: u32; + var phi_1763_: type_15; + var phi_5141_: f32; + var phi_5154_: bool; + var phi_1817_: f32; + var phi_1812_: f32; + var phi_1818_: f32; + var phi_5171_: bool; + var phi_1783_: f32; + var phi_1820_: f32; + var phi_5189_: f32; + var phi_5202_: bool; + var phi_1875_: f32; + var phi_1870_: f32; + var phi_1876_: f32; + var phi_5219_: bool; + var phi_1841_: f32; + var phi_1878_: f32; + var phi_5277_: vec3; + var phi_5312_: vec3; + var phi_5347_: vec3; + var phi_5382_: vec3; + var phi_5417_: vec3; + var phi_1972_: vec3; + var phi_1973_: vec3; + var phi_5449_: bool; + var phi_2180_: type_14; + var phi_2181_: type_14; + var phi_2204_: type_14; + var phi_2231_: bool; + var phi_2237_: type_14; + var phi_2238_: type_14; + var phi_2261_: type_14; + var phi_2284_: bool; + var phi_2305_: type_25; + var phi_5521_: vec3; + var phi_5580_: vec3; + var phi_5654_: vec3; + var phi_5714_: vec3; + var phi_5763_: vec3; + var phi_5812_: vec3; + var phi_5861_: vec3; + var phi_5910_: vec3; + var phi_5959_: vec3; + var phi_6008_: vec3; + var phi_6047_: vec3; + var phi_6082_: vec3; + var phi_7183_: bool; + var phi_2372_: type_14; + var phi_2375_: vec3; + var phi_2373_: type_14; + var phi_2398_: type_14; + var phi_6108_: u32; + var phi_6127_: bool; + var phi_2415_: u32; + var phi_6151_: bool; + var phi_2427_: u32; + var phi_2441_: type_30; + var phi_6183_: bool; + var phi_2491_: type_31; + var phi_6263_: bool; + var phi_3595_: type_37; + var phi_6313_: vec3; + var phi_6348_: vec3; + var phi_6383_: vec3; + var phi_3850_: vec3; + var phi_6475_: bool; + var phi_3342_: type_34; + var phi_6522_: vec3; + var phi_6557_: vec3; + var phi_3532_: vec3; + var phi_6649_: bool; + var phi_2539_: type_34; + var phi_6696_: vec3; + var phi_6731_: vec3; + var phi_2780_: u32; + var phi_2789_: u32; + var phi_6840_: bool; + var phi_6843_: bool; + var phi_6844_: bool; + var phi_7161_: bool; + var phi_2968_: type_35; + var phi_2971_: f32; + var phi_2983_: bool; + var phi_3011_: type_36; + var phi_3023_: type_35; + var phi_2969_: type_35; + var phi_3026_: type_36; + var phi_3037_: type_35; + var phi_3040_: f32; + var phi_3052_: bool; + var phi_3080_: type_36; + var phi_3092_: type_35; + var phi_3038_: type_35; + var phi_3095_: type_36; + var phi_6862_: f32; + var phi_6875_: bool; + var phi_3161_: f32; + var phi_3156_: f32; + var phi_3162_: f32; + var phi_6892_: bool; + var phi_3127_: f32; + var phi_3164_: f32; + var phi_6910_: f32; + var phi_6923_: bool; + var phi_3217_: f32; + var phi_3212_: f32; + var phi_3218_: f32; + var phi_6940_: bool; + var phi_3183_: f32; + var phi_3220_: f32; + var phi_3041_: f32; + var phi_3281_: bool; + var phi_7145_: bool; + var phi_7237_: bool; + var phi_2972_: f32; + var phi_3282_: bool; + var phi_7236_: bool; + var local_2: f32; + var phi_7264_: bool; + var phi_3287_: f32; + var phi_7263_: bool; + var phi_3288_: f32; + var phi_7242_: bool; + var phi_3852_: vec3; + var phi_3853_: bool; + var phi_7239_: bool; + var phi_2376_: vec3; + var phi_3862_: bool; + var phi_7238_: bool; var local_3: vec3; var local_4: vec3; - var phi_3799_: vec4; + var local_5: vec3; + var phi_7273_: bool; + var phi_3979_: vec4; + var phi_7265_: bool; + var local_6: f32; - let _e116 = arrayLength((&global.member)); - let _e118 = arrayLength((&global_1.member)); - let _e119 = global_2; - let _e120 = global_3; - let _e121 = global_4; - let _e122 = global_5; - let _e123 = global_6; - let _e124 = global_7; - let _e125 = global_8; - let _e126 = global_9; - let _e130 = global.member[(_e119 + 9u)]; - let _e134 = global.member[(_e119 + 11u)]; - let _e138 = global.member[(_e119 + 17u)]; - let _e141 = global.member[_e138]; - let _e145 = global.member[(_e138 + 1u)]; - let _e149 = global.member[(_e138 + 4u)]; - switch bitcast(_e149) { - case 0: { - phi_680_ = 0u; - break; - } - case 1: { - phi_680_ = 1u; - break; - } - case 2: { - phi_680_ = 2u; - break; - } - case 3: { - phi_680_ = 3u; - break; - } - case 4: { - phi_680_ = 4u; - break; - } - case 5: { - phi_680_ = 5u; - break; - } - case 6: { - phi_680_ = 6u; - break; - } - case 7: { - phi_680_ = 7u; - break; - } - case 8: { - phi_680_ = 8u; - break; - } - case 9: { - phi_680_ = 9u; - break; - } - case 10: { - phi_680_ = 10u; - break; - } - case 11: { - phi_680_ = 11u; - break; - } - case 12: { - phi_680_ = 12u; - break; - } - case 13: { - phi_680_ = 13u; - break; - } - case 14: { - phi_680_ = 14u; - break; - } - case 15: { - phi_680_ = 15u; - break; - } - case 16: { - phi_680_ = 16u; - break; - } - case 17: { - phi_680_ = 17u; - break; - } - case 18: { - phi_680_ = 18u; - break; - } - case 19: { - phi_680_ = 19u; - break; - } + switch bitcast(0u) { default: { - phi_680_ = 0u; - break; - } - } - let _e152 = phi_680_; - let _e156 = global.member[(_e138 + 5u)]; - if (_e134 == 4294967295u) { - phi_812_ = type_33(vec3(0f, 0f, 0f), 1f, vec4(1f, 1f, 1f, 1f), 1f, 1f, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 0u, 0u, 0u, 0u, 0u, false, 0f); - } else { - if (_e116 >= 22u) { - phi_4342_ = (_e134 <= (_e116 - 22u)); - } else { - phi_4342_ = false; - } - let _e163 = phi_4342_; - if _e163 { - let _e166 = global.member[_e134]; - let _e171 = global.member[(_e134 + 1u)]; - let _e176 = global.member[(_e134 + 2u)]; - let _e182 = global.member[(_e134 + 3u)]; - let _e187 = global.member[(_e134 + 4u)]; - let _e192 = global.member[(_e134 + 5u)]; - let _e197 = global.member[(_e134 + 6u)]; - let _e202 = global.member[(_e134 + 7u)]; - let _e208 = global.member[(_e134 + 8u)]; - let _e213 = global.member[(_e134 + 9u)]; - let _e218 = global.member[(_e134 + 10u)]; - let _e222 = global.member[(_e134 + 11u)]; - let _e226 = global.member[(_e134 + 12u)]; - let _e230 = global.member[(_e134 + 13u)]; - let _e234 = global.member[(_e134 + 14u)]; - let _e238 = global.member[(_e134 + 15u)]; - let _e242 = global.member[(_e134 + 16u)]; - let _e246 = global.member[(_e134 + 17u)]; - let _e250 = global.member[(_e134 + 18u)]; - let _e254 = global.member[(_e134 + 19u)]; - let _e258 = global.member[(_e134 + 20u)]; - let _e263 = global.member[(_e134 + 21u)]; - phi_808_ = type_33(vec3(bitcast(_e166), bitcast(_e171), bitcast(_e176)), bitcast(_e182), vec4(bitcast(_e187), bitcast(_e192), bitcast(_e197), bitcast(_e202)), bitcast(_e208), bitcast(_e213), _e218, _e222, _e226, _e230, _e234, _e238, _e242, _e246, _e250, _e254, (_e258 == 1u), bitcast(_e263)); - } else { - phi_808_ = type_33(vec3(0f, 0f, 0f), 1f, vec4(1f, 1f, 1f, 1f), 1f, 1f, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 0u, 0u, 0u, 0u, 0u, true, 0f); - } - let _e267 = phi_808_; - phi_812_ = type_33(_e267.member, _e267.member_1, _e267.member_2, _e267.member_3, _e267.member_4, _e267.member_5, _e267.member_6, _e267.member_7, _e267.member_8, _e267.member_9, _e267.member_10, _e267.member_11, _e267.member_12, _e267.member_13, _e267.member_14, (_e267.member_15 && (_e156 == 1u)), _e267.member_16); - } - let _e289 = phi_812_; - let _e293 = select(_e122, _e121, vec2((_e289.member_10 == 0u))); - let _e295 = (_e116 >= 8u); - if _e295 { - phi_4379_ = (_e289.member_5 <= (_e116 - 8u)); - } else { - phi_4379_ = false; - } - let _e299 = phi_4379_; - if _e299 { - let _e302 = global.member[_e289.member_5]; - let _e306 = global.member[(_e289.member_5 + 1u)]; - let _e311 = global.member[(_e289.member_5 + 2u)]; - let _e315 = global.member[(_e289.member_5 + 3u)]; - let _e320 = global.member[(_e289.member_5 + 4u)]; - let _e324 = global.member[(_e289.member_5 + 5u)]; - let _e328 = global.member[(_e289.member_5 + 6u)]; - switch bitcast(_e328) { - case 0: { - phi_852_ = 0u; - break; - } - case 1: { - phi_852_ = 1u; - break; - } - case 2: { - phi_852_ = 2u; - break; - } - default: { - phi_852_ = 0u; - break; - } - } - let _e331 = phi_852_; - let _e335 = global.member[(_e289.member_5 + 7u)]; - switch bitcast(_e335) { - case 0: { - phi_861_ = 0u; - break; - } - case 1: { - phi_861_ = 1u; - break; - } - case 2: { - phi_861_ = 2u; - break; - } - default: { - phi_861_ = 0u; - break; - } - } - let _e338 = phi_861_; - phi_874_ = type_15(type_14(_e331, _e338), vec2(_e302, _e306), vec2(_e311, _e315), _e320, _e324); - } else { - phi_874_ = type_15(type_14(0u, 0u), vec2(0u, 0u), vec2(0u, 0u), 0u, 0u); - } - let _e342 = phi_874_; - switch bitcast(_e342.member.member) { - case 1: { - let _e380 = abs(_e293.x); - let _e382 = (_e380 % 1f); - if (_e380 >= 1f) { - phi_4431_ = select(true, false, (_e382 == 0f)); - } else { - phi_4431_ = true; - } - let _e386 = phi_4431_; - let _e387 = select(1f, _e382, _e386); - if (select(-1f, 1f, (_e293.x >= 0f)) > 0f) { - phi_894_ = _e387; - } else { - phi_894_ = (1f - _e387); + let _e121 = arrayLength((&global.member)); + let _e123 = arrayLength((&global_1.member)); + let _e124 = global_2; + let _e125 = global_3; + let _e126 = global_4; + let _e127 = global_5; + let _e128 = global_6; + let _e129 = global_7; + let _e130 = global_8; + let _e131 = global_9; + let _e135 = global.member[(_e124 + 9u)]; + let _e139 = global.member[(_e124 + 11u)]; + let _e143 = global.member[(_e124 + 17u)]; + let _e146 = global.member[_e143]; + let _e150 = global.member[(_e143 + 1u)]; + let _e154 = global.member[(_e143 + 4u)]; + switch bitcast(_e154) { + case 0: { + phi_689_ = 0u; + break; + } + case 1: { + phi_689_ = 1u; + break; + } + case 2: { + phi_689_ = 2u; + break; + } + case 3: { + phi_689_ = 3u; + break; + } + case 4: { + phi_689_ = 4u; + break; + } + case 5: { + phi_689_ = 5u; + break; + } + case 6: { + phi_689_ = 6u; + break; + } + case 7: { + phi_689_ = 7u; + break; + } + case 8: { + phi_689_ = 8u; + break; + } + case 9: { + phi_689_ = 9u; + break; + } + case 10: { + phi_689_ = 10u; + break; + } + case 11: { + phi_689_ = 11u; + break; + } + case 12: { + phi_689_ = 12u; + break; + } + case 13: { + phi_689_ = 13u; + break; + } + case 14: { + phi_689_ = 14u; + break; + } + case 15: { + phi_689_ = 15u; + break; + } + case 16: { + phi_689_ = 16u; + break; + } + case 17: { + phi_689_ = 17u; + break; + } + case 18: { + phi_689_ = 18u; + break; + } + case 19: { + phi_689_ = 19u; + break; + } + default: { + phi_689_ = 0u; + break; + } } - let _e391 = phi_894_; - phi_931_ = _e391; - break; - } - case 2: { - let _e354 = abs(_e293.x); - let _e361 = ((select(select(u32(_e354), 0u, (_e354 < 0f)), 4294967295u, (_e354 > 4294967000f)) % 2u) == 0u); - let _e363 = (_e354 % 1f); - if (_e354 >= 1f) { - phi_4414_ = select(true, false, (_e363 == 0f)); + let _e157 = phi_689_; + let _e161 = global.member[(_e143 + 5u)]; + if (_e139 == 4294967295u) { + phi_821_ = type_33(vec3(0f, 0f, 0f), 1f, vec4(1f, 1f, 1f, 1f), 1f, 1f, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 0u, 0u, 0u, 0u, 0u, false, 0f); } else { - phi_4414_ = true; - } - let _e367 = phi_4414_; - let _e368 = select(1f, _e363, _e367); - if (select(-1f, 1f, (_e293.x >= 0f)) > 0f) { - if _e361 { - phi_923_ = _e368; + if (_e121 >= 22u) { + phi_4542_ = (_e139 <= (_e121 - 22u)); } else { - phi_923_ = (1f - _e368); + phi_4542_ = false; } - let _e375 = phi_923_; - phi_929_ = _e375; - } else { - if _e361 { - phi_928_ = (1f - _e368); + let _e168 = phi_4542_; + if _e168 { + let _e171 = global.member[_e139]; + let _e176 = global.member[(_e139 + 1u)]; + let _e181 = global.member[(_e139 + 2u)]; + let _e187 = global.member[(_e139 + 3u)]; + let _e192 = global.member[(_e139 + 4u)]; + let _e197 = global.member[(_e139 + 5u)]; + let _e202 = global.member[(_e139 + 6u)]; + let _e207 = global.member[(_e139 + 7u)]; + let _e213 = global.member[(_e139 + 8u)]; + let _e218 = global.member[(_e139 + 9u)]; + let _e223 = global.member[(_e139 + 10u)]; + let _e227 = global.member[(_e139 + 11u)]; + let _e231 = global.member[(_e139 + 12u)]; + let _e235 = global.member[(_e139 + 13u)]; + let _e239 = global.member[(_e139 + 14u)]; + let _e243 = global.member[(_e139 + 15u)]; + let _e247 = global.member[(_e139 + 16u)]; + let _e251 = global.member[(_e139 + 17u)]; + let _e255 = global.member[(_e139 + 18u)]; + let _e259 = global.member[(_e139 + 19u)]; + let _e263 = global.member[(_e139 + 20u)]; + let _e268 = global.member[(_e139 + 21u)]; + phi_817_ = type_33(vec3(bitcast(_e171), bitcast(_e176), bitcast(_e181)), bitcast(_e187), vec4(bitcast(_e192), bitcast(_e197), bitcast(_e202), bitcast(_e207)), bitcast(_e213), bitcast(_e218), _e223, _e227, _e231, _e235, _e239, _e243, _e247, _e251, _e255, _e259, (_e263 == 1u), bitcast(_e268)); } else { - phi_928_ = _e368; + phi_817_ = type_33(vec3(0f, 0f, 0f), 1f, vec4(1f, 1f, 1f, 1f), 1f, 1f, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 0u, 0u, 0u, 0u, 0u, true, 0f); } - let _e372 = phi_928_; - phi_929_ = _e372; - } - let _e377 = phi_929_; - phi_931_ = _e377; - break; - } - case 0: { - if (_e293.x > 1f) { - phi_4401_ = 0.9999999f; - } else { - phi_4401_ = select(_e293.x, 0.00000011920929f, (_e293.x < 0f)); - } - let _e351 = phi_4401_; - phi_931_ = _e351; - break; - } - default: { - phi_931_ = f32(); - break; - } - } - let _e393 = phi_931_; - switch bitcast(_e342.member.member_1) { - case 1: { - let _e431 = abs(_e293.y); - let _e433 = (_e431 % 1f); - if (_e431 >= 1f) { - phi_4479_ = select(true, false, (_e433 == 0f)); - } else { - phi_4479_ = true; - } - let _e437 = phi_4479_; - let _e438 = select(1f, _e433, _e437); - if (select(-1f, 1f, (_e293.y >= 0f)) > 0f) { - phi_952_ = _e438; + let _e272 = phi_817_; + phi_821_ = type_33(_e272.member, _e272.member_1, _e272.member_2, _e272.member_3, _e272.member_4, _e272.member_5, _e272.member_6, _e272.member_7, _e272.member_8, _e272.member_9, _e272.member_10, _e272.member_11, _e272.member_12, _e272.member_13, _e272.member_14, (_e272.member_15 && (_e161 == 1u)), _e272.member_16); + } + let _e294 = phi_821_; + let _e298 = select(_e127, _e126, vec2((_e294.member_10 == 0u))); + let _e300 = (_e121 >= 8u); + if _e300 { + phi_4579_ = (_e294.member_5 <= (_e121 - 8u)); } else { - phi_952_ = (1f - _e438); - } - let _e442 = phi_952_; - phi_989_ = _e442; - break; - } - case 2: { - let _e405 = abs(_e293.y); - let _e412 = ((select(select(u32(_e405), 0u, (_e405 < 0f)), 4294967295u, (_e405 > 4294967000f)) % 2u) == 0u); - let _e414 = (_e405 % 1f); - if (_e405 >= 1f) { - phi_4462_ = select(true, false, (_e414 == 0f)); - } else { - phi_4462_ = true; - } - let _e418 = phi_4462_; - let _e419 = select(1f, _e414, _e418); - if (select(-1f, 1f, (_e293.y >= 0f)) > 0f) { - if _e412 { - phi_981_ = _e419; - } else { - phi_981_ = (1f - _e419); + phi_4579_ = false; + } + let _e304 = phi_4579_; + if _e304 { + let _e307 = global.member[_e294.member_5]; + let _e311 = global.member[(_e294.member_5 + 1u)]; + let _e316 = global.member[(_e294.member_5 + 2u)]; + let _e320 = global.member[(_e294.member_5 + 3u)]; + let _e325 = global.member[(_e294.member_5 + 4u)]; + let _e329 = global.member[(_e294.member_5 + 5u)]; + let _e333 = global.member[(_e294.member_5 + 6u)]; + switch bitcast(_e333) { + case 0: { + phi_861_ = 0u; + break; + } + case 1: { + phi_861_ = 1u; + break; + } + case 2: { + phi_861_ = 2u; + break; + } + default: { + phi_861_ = 0u; + break; + } } - let _e426 = phi_981_; - phi_987_ = _e426; - } else { - if _e412 { - phi_986_ = (1f - _e419); - } else { - phi_986_ = _e419; + let _e336 = phi_861_; + let _e340 = global.member[(_e294.member_5 + 7u)]; + switch bitcast(_e340) { + case 0: { + phi_870_ = 0u; + break; + } + case 1: { + phi_870_ = 1u; + break; + } + case 2: { + phi_870_ = 2u; + break; + } + default: { + phi_870_ = 0u; + break; + } } - let _e423 = phi_986_; - phi_987_ = _e423; - } - let _e428 = phi_987_; - phi_989_ = _e428; - break; - } - case 0: { - if (_e293.y > 1f) { - phi_4449_ = 0.9999999f; + let _e343 = phi_870_; + phi_883_ = type_15(type_14(_e336, _e343), vec2(_e307, _e311), vec2(_e316, _e320), _e325, _e329); } else { - phi_4449_ = select(_e293.y, 0.00000011920929f, (_e293.y < 0f)); - } - let _e402 = phi_4449_; - phi_989_ = _e402; - break; - } - default: { - phi_989_ = f32(); - break; - } - } - let _e444 = phi_989_; - let _e448 = (_e393 * f32(_e342.member_2.x)); - let _e457 = (_e444 * f32(_e342.member_2.y)); - let _e469 = f32(_e141); - let _e470 = f32(_e145); - let _e477 = vec3((f32((select(select(u32(_e448), 0u, (_e448 < 0f)), 4294967295u, (_e448 > 4294967000f)) + _e342.member_1.x)) / _e469), (f32((select(select(u32(_e457), 0u, (_e457 < 0f)), 4294967295u, (_e457 > 4294967000f)) + _e342.member_1.y)) / _e470), f32(_e342.member_3)); - let _e483 = textureSampleLevel(global_11, global_10, vec2(_e477.x, _e477.y), i32(_e477.z), 0f); - let _e486 = select(_e483, vec4(1f, 1f, 1f, 1f), vec4((_e289.member_5 == 4294967295u))); - let _e490 = select(_e122, _e121, vec2((_e289.member_11 == 0u))); - if _e295 { - phi_4515_ = (_e289.member_6 <= (_e116 - 8u)); - } else { - phi_4515_ = false; - } - let _e495 = phi_4515_; - if _e495 { - let _e498 = global.member[_e289.member_6]; - let _e502 = global.member[(_e289.member_6 + 1u)]; - let _e507 = global.member[(_e289.member_6 + 2u)]; - let _e511 = global.member[(_e289.member_6 + 3u)]; - let _e516 = global.member[(_e289.member_6 + 4u)]; - let _e520 = global.member[(_e289.member_6 + 5u)]; - let _e524 = global.member[(_e289.member_6 + 6u)]; - switch bitcast(_e524) { - case 0: { - phi_1072_ = 0u; - break; - } - case 1: { - phi_1072_ = 1u; - break; - } - case 2: { - phi_1072_ = 2u; - break; + phi_883_ = type_15(type_14(0u, 0u), vec2(0u, 0u), vec2(0u, 0u), 0u, 0u); } - default: { - phi_1072_ = 0u; - break; - } - } - let _e527 = phi_1072_; - let _e531 = global.member[(_e289.member_6 + 7u)]; - switch bitcast(_e531) { - case 0: { - phi_1081_ = 0u; - break; - } - case 1: { - phi_1081_ = 1u; - break; - } - case 2: { - phi_1081_ = 2u; - break; - } - default: { - phi_1081_ = 0u; - break; - } - } - let _e534 = phi_1081_; - phi_1094_ = type_15(type_14(_e527, _e534), vec2(_e498, _e502), vec2(_e507, _e511), _e516, _e520); - } else { - phi_1094_ = type_15(type_14(0u, 0u), vec2(0u, 0u), vec2(0u, 0u), 0u, 0u); - } - let _e538 = phi_1094_; - switch bitcast(_e538.member.member) { - case 1: { - let _e576 = abs(_e490.x); - let _e578 = (_e576 % 1f); - if (_e576 >= 1f) { - phi_4566_ = select(true, false, (_e578 == 0f)); - } else { - phi_4566_ = true; + let _e347 = phi_883_; + switch bitcast(_e347.member.member) { + case 1: { + let _e385 = abs(_e298.x); + let _e387 = (_e385 % 1f); + if (_e385 >= 1f) { + phi_4631_ = select(true, false, (_e387 == 0f)); + } else { + phi_4631_ = true; + } + let _e391 = phi_4631_; + let _e392 = select(1f, _e387, _e391); + if (select(-1f, 1f, (_e298.x >= 0f)) > 0f) { + phi_903_ = _e392; + } else { + phi_903_ = (1f - _e392); + } + let _e396 = phi_903_; + phi_940_ = _e396; + break; + } + case 2: { + let _e359 = abs(_e298.x); + let _e366 = ((select(select(u32(_e359), 0u, (_e359 < 0f)), 4294967295u, (_e359 > 4294967000f)) % 2u) == 0u); + let _e368 = (_e359 % 1f); + if (_e359 >= 1f) { + phi_4614_ = select(true, false, (_e368 == 0f)); + } else { + phi_4614_ = true; + } + let _e372 = phi_4614_; + let _e373 = select(1f, _e368, _e372); + if (select(-1f, 1f, (_e298.x >= 0f)) > 0f) { + if _e366 { + phi_932_ = _e373; + } else { + phi_932_ = (1f - _e373); + } + let _e380 = phi_932_; + phi_938_ = _e380; + } else { + if _e366 { + phi_937_ = (1f - _e373); + } else { + phi_937_ = _e373; + } + let _e377 = phi_937_; + phi_938_ = _e377; + } + let _e382 = phi_938_; + phi_940_ = _e382; + break; + } + case 0: { + if (_e298.x > 1f) { + phi_4601_ = 0.9999999f; + } else { + phi_4601_ = select(_e298.x, 0.00000011920929f, (_e298.x < 0f)); + } + let _e356 = phi_4601_; + phi_940_ = _e356; + break; + } + default: { + phi_940_ = f32(); + break; + } } - let _e582 = phi_4566_; - let _e583 = select(1f, _e578, _e582); - if (select(-1f, 1f, (_e490.x >= 0f)) > 0f) { - phi_1114_ = _e583; - } else { - phi_1114_ = (1f - _e583); + let _e398 = phi_940_; + switch bitcast(_e347.member.member_1) { + case 1: { + let _e436 = abs(_e298.y); + let _e438 = (_e436 % 1f); + if (_e436 >= 1f) { + phi_4679_ = select(true, false, (_e438 == 0f)); + } else { + phi_4679_ = true; + } + let _e442 = phi_4679_; + let _e443 = select(1f, _e438, _e442); + if (select(-1f, 1f, (_e298.y >= 0f)) > 0f) { + phi_961_ = _e443; + } else { + phi_961_ = (1f - _e443); + } + let _e447 = phi_961_; + phi_998_ = _e447; + break; + } + case 2: { + let _e410 = abs(_e298.y); + let _e417 = ((select(select(u32(_e410), 0u, (_e410 < 0f)), 4294967295u, (_e410 > 4294967000f)) % 2u) == 0u); + let _e419 = (_e410 % 1f); + if (_e410 >= 1f) { + phi_4662_ = select(true, false, (_e419 == 0f)); + } else { + phi_4662_ = true; + } + let _e423 = phi_4662_; + let _e424 = select(1f, _e419, _e423); + if (select(-1f, 1f, (_e298.y >= 0f)) > 0f) { + if _e417 { + phi_990_ = _e424; + } else { + phi_990_ = (1f - _e424); + } + let _e431 = phi_990_; + phi_996_ = _e431; + } else { + if _e417 { + phi_995_ = (1f - _e424); + } else { + phi_995_ = _e424; + } + let _e428 = phi_995_; + phi_996_ = _e428; + } + let _e433 = phi_996_; + phi_998_ = _e433; + break; + } + case 0: { + if (_e298.y > 1f) { + phi_4649_ = 0.9999999f; + } else { + phi_4649_ = select(_e298.y, 0.00000011920929f, (_e298.y < 0f)); + } + let _e407 = phi_4649_; + phi_998_ = _e407; + break; + } + default: { + phi_998_ = f32(); + break; + } } - let _e587 = phi_1114_; - phi_1151_ = _e587; - break; - } - case 2: { - let _e550 = abs(_e490.x); - let _e557 = ((select(select(u32(_e550), 0u, (_e550 < 0f)), 4294967295u, (_e550 > 4294967000f)) % 2u) == 0u); - let _e559 = (_e550 % 1f); - if (_e550 >= 1f) { - phi_4549_ = select(true, false, (_e559 == 0f)); + let _e449 = phi_998_; + let _e453 = (_e398 * f32(_e347.member_2.x)); + let _e462 = (_e449 * f32(_e347.member_2.y)); + let _e474 = f32(_e146); + let _e475 = f32(_e150); + let _e482 = vec3((f32((select(select(u32(_e453), 0u, (_e453 < 0f)), 4294967295u, (_e453 > 4294967000f)) + _e347.member_1.x)) / _e474), (f32((select(select(u32(_e462), 0u, (_e462 < 0f)), 4294967295u, (_e462 > 4294967000f)) + _e347.member_1.y)) / _e475), f32(_e347.member_3)); + let _e488 = textureSampleLevel(global_11, global_10, vec2(_e482.x, _e482.y), i32(_e482.z), 0f); + let _e491 = select(_e488, vec4(1f, 1f, 1f, 1f), vec4((_e294.member_5 == 4294967295u))); + let _e495 = select(_e127, _e126, vec2((_e294.member_11 == 0u))); + if _e300 { + phi_4715_ = (_e294.member_6 <= (_e121 - 8u)); } else { - phi_4549_ = true; - } - let _e563 = phi_4549_; - let _e564 = select(1f, _e559, _e563); - if (select(-1f, 1f, (_e490.x >= 0f)) > 0f) { - if _e557 { - phi_1143_ = _e564; - } else { - phi_1143_ = (1f - _e564); + phi_4715_ = false; + } + let _e500 = phi_4715_; + if _e500 { + let _e503 = global.member[_e294.member_6]; + let _e507 = global.member[(_e294.member_6 + 1u)]; + let _e512 = global.member[(_e294.member_6 + 2u)]; + let _e516 = global.member[(_e294.member_6 + 3u)]; + let _e521 = global.member[(_e294.member_6 + 4u)]; + let _e525 = global.member[(_e294.member_6 + 5u)]; + let _e529 = global.member[(_e294.member_6 + 6u)]; + switch bitcast(_e529) { + case 0: { + phi_1081_ = 0u; + break; + } + case 1: { + phi_1081_ = 1u; + break; + } + case 2: { + phi_1081_ = 2u; + break; + } + default: { + phi_1081_ = 0u; + break; + } } - let _e571 = phi_1143_; - phi_1149_ = _e571; - } else { - if _e557 { - phi_1148_ = (1f - _e564); - } else { - phi_1148_ = _e564; + let _e532 = phi_1081_; + let _e536 = global.member[(_e294.member_6 + 7u)]; + switch bitcast(_e536) { + case 0: { + phi_1090_ = 0u; + break; + } + case 1: { + phi_1090_ = 1u; + break; + } + case 2: { + phi_1090_ = 2u; + break; + } + default: { + phi_1090_ = 0u; + break; + } } - let _e568 = phi_1148_; - phi_1149_ = _e568; - } - let _e573 = phi_1149_; - phi_1151_ = _e573; - break; - } - case 0: { - if (_e490.x > 1f) { - phi_4536_ = 0.9999999f; + let _e539 = phi_1090_; + phi_1103_ = type_15(type_14(_e532, _e539), vec2(_e503, _e507), vec2(_e512, _e516), _e521, _e525); } else { - phi_4536_ = select(_e490.x, 0.00000011920929f, (_e490.x < 0f)); + phi_1103_ = type_15(type_14(0u, 0u), vec2(0u, 0u), vec2(0u, 0u), 0u, 0u); } - let _e547 = phi_4536_; - phi_1151_ = _e547; - break; - } - default: { - phi_1151_ = f32(); - break; - } - } - let _e589 = phi_1151_; - switch bitcast(_e538.member.member_1) { - case 1: { - let _e627 = abs(_e490.y); - let _e629 = (_e627 % 1f); - if (_e627 >= 1f) { - phi_4614_ = select(true, false, (_e629 == 0f)); - } else { - phi_4614_ = true; - } - let _e633 = phi_4614_; - let _e634 = select(1f, _e629, _e633); - if (select(-1f, 1f, (_e490.y >= 0f)) > 0f) { - phi_1172_ = _e634; - } else { - phi_1172_ = (1f - _e634); - } - let _e638 = phi_1172_; - phi_1209_ = _e638; - break; - } - case 2: { - let _e601 = abs(_e490.y); - let _e608 = ((select(select(u32(_e601), 0u, (_e601 < 0f)), 4294967295u, (_e601 > 4294967000f)) % 2u) == 0u); - let _e610 = (_e601 % 1f); - if (_e601 >= 1f) { - phi_4597_ = select(true, false, (_e610 == 0f)); - } else { - phi_4597_ = true; - } - let _e614 = phi_4597_; - let _e615 = select(1f, _e610, _e614); - if (select(-1f, 1f, (_e490.y >= 0f)) > 0f) { - if _e608 { - phi_1201_ = _e615; - } else { - phi_1201_ = (1f - _e615); + let _e543 = phi_1103_; + switch bitcast(_e543.member.member) { + case 1: { + let _e581 = abs(_e495.x); + let _e583 = (_e581 % 1f); + if (_e581 >= 1f) { + phi_4766_ = select(true, false, (_e583 == 0f)); + } else { + phi_4766_ = true; + } + let _e587 = phi_4766_; + let _e588 = select(1f, _e583, _e587); + if (select(-1f, 1f, (_e495.x >= 0f)) > 0f) { + phi_1123_ = _e588; + } else { + phi_1123_ = (1f - _e588); + } + let _e592 = phi_1123_; + phi_1160_ = _e592; + break; } - let _e622 = phi_1201_; - phi_1207_ = _e622; - } else { - if _e608 { - phi_1206_ = (1f - _e615); - } else { - phi_1206_ = _e615; + case 2: { + let _e555 = abs(_e495.x); + let _e562 = ((select(select(u32(_e555), 0u, (_e555 < 0f)), 4294967295u, (_e555 > 4294967000f)) % 2u) == 0u); + let _e564 = (_e555 % 1f); + if (_e555 >= 1f) { + phi_4749_ = select(true, false, (_e564 == 0f)); + } else { + phi_4749_ = true; + } + let _e568 = phi_4749_; + let _e569 = select(1f, _e564, _e568); + if (select(-1f, 1f, (_e495.x >= 0f)) > 0f) { + if _e562 { + phi_1152_ = _e569; + } else { + phi_1152_ = (1f - _e569); + } + let _e576 = phi_1152_; + phi_1158_ = _e576; + } else { + if _e562 { + phi_1157_ = (1f - _e569); + } else { + phi_1157_ = _e569; + } + let _e573 = phi_1157_; + phi_1158_ = _e573; + } + let _e578 = phi_1158_; + phi_1160_ = _e578; + break; } - let _e619 = phi_1206_; - phi_1207_ = _e619; - } - let _e624 = phi_1207_; - phi_1209_ = _e624; - break; - } - case 0: { - if (_e490.y > 1f) { - phi_4584_ = 0.9999999f; - } else { - phi_4584_ = select(_e490.y, 0.00000011920929f, (_e490.y < 0f)); - } - let _e598 = phi_4584_; - phi_1209_ = _e598; - break; - } - default: { - phi_1209_ = f32(); - break; - } - } - let _e640 = phi_1209_; - let _e644 = (_e589 * f32(_e538.member_2.x)); - let _e653 = (_e640 * f32(_e538.member_2.y)); - let _e671 = vec3((f32((select(select(u32(_e644), 0u, (_e644 < 0f)), 4294967295u, (_e644 > 4294967000f)) + _e538.member_1.x)) / _e469), (f32((select(select(u32(_e653), 0u, (_e653 < 0f)), 4294967295u, (_e653 > 4294967000f)) + _e538.member_1.y)) / _e470), f32(_e538.member_3)); - let _e677 = textureSampleLevel(global_11, global_10, vec2(_e671.x, _e671.y), i32(_e671.z), 0f); - let _e680 = select(_e677, vec4(1f, 1f, 1f, 1f), vec4((_e289.member_6 == 4294967295u))); - let _e684 = select(_e122, _e121, vec2((_e289.member_12 == 0u))); - if _e295 { - phi_4650_ = (_e289.member_7 <= (_e116 - 8u)); - } else { - phi_4650_ = false; - } - let _e689 = phi_4650_; - if _e689 { - let _e692 = global.member[_e289.member_7]; - let _e696 = global.member[(_e289.member_7 + 1u)]; - let _e701 = global.member[(_e289.member_7 + 2u)]; - let _e705 = global.member[(_e289.member_7 + 3u)]; - let _e710 = global.member[(_e289.member_7 + 4u)]; - let _e714 = global.member[(_e289.member_7 + 5u)]; - let _e718 = global.member[(_e289.member_7 + 6u)]; - switch bitcast(_e718) { - case 0: { - phi_1292_ = 0u; - break; - } - case 1: { - phi_1292_ = 1u; - break; - } - case 2: { - phi_1292_ = 2u; - break; - } - default: { - phi_1292_ = 0u; - break; - } - } - let _e721 = phi_1292_; - let _e725 = global.member[(_e289.member_7 + 7u)]; - switch bitcast(_e725) { - case 0: { - phi_1301_ = 0u; - break; - } - case 1: { - phi_1301_ = 1u; - break; - } - case 2: { - phi_1301_ = 2u; - break; - } - default: { - phi_1301_ = 0u; - break; - } - } - let _e728 = phi_1301_; - phi_1314_ = type_15(type_14(_e721, _e728), vec2(_e692, _e696), vec2(_e701, _e705), _e710, _e714); - } else { - phi_1314_ = type_15(type_14(0u, 0u), vec2(0u, 0u), vec2(0u, 0u), 0u, 0u); - } - let _e732 = phi_1314_; - switch bitcast(_e732.member.member) { - case 1: { - let _e770 = abs(_e684.x); - let _e772 = (_e770 % 1f); - if (_e770 >= 1f) { - phi_4701_ = select(true, false, (_e772 == 0f)); - } else { - phi_4701_ = true; - } - let _e776 = phi_4701_; - let _e777 = select(1f, _e772, _e776); - if (select(-1f, 1f, (_e684.x >= 0f)) > 0f) { - phi_1334_ = _e777; - } else { - phi_1334_ = (1f - _e777); - } - let _e781 = phi_1334_; - phi_1371_ = _e781; - break; - } - case 2: { - let _e744 = abs(_e684.x); - let _e751 = ((select(select(u32(_e744), 0u, (_e744 < 0f)), 4294967295u, (_e744 > 4294967000f)) % 2u) == 0u); - let _e753 = (_e744 % 1f); - if (_e744 >= 1f) { - phi_4684_ = select(true, false, (_e753 == 0f)); - } else { - phi_4684_ = true; - } - let _e757 = phi_4684_; - let _e758 = select(1f, _e753, _e757); - if (select(-1f, 1f, (_e684.x >= 0f)) > 0f) { - if _e751 { - phi_1363_ = _e758; - } else { - phi_1363_ = (1f - _e758); + case 0: { + if (_e495.x > 1f) { + phi_4736_ = 0.9999999f; + } else { + phi_4736_ = select(_e495.x, 0.00000011920929f, (_e495.x < 0f)); + } + let _e552 = phi_4736_; + phi_1160_ = _e552; + break; } - let _e765 = phi_1363_; - phi_1369_ = _e765; - } else { - if _e751 { - phi_1368_ = (1f - _e758); - } else { - phi_1368_ = _e758; + default: { + phi_1160_ = f32(); + break; } - let _e762 = phi_1368_; - phi_1369_ = _e762; - } - let _e767 = phi_1369_; - phi_1371_ = _e767; - break; - } - case 0: { - if (_e684.x > 1f) { - phi_4671_ = 0.9999999f; - } else { - phi_4671_ = select(_e684.x, 0.00000011920929f, (_e684.x < 0f)); - } - let _e741 = phi_4671_; - phi_1371_ = _e741; - break; - } - default: { - phi_1371_ = f32(); - break; - } - } - let _e783 = phi_1371_; - switch bitcast(_e732.member.member_1) { - case 1: { - let _e821 = abs(_e684.y); - let _e823 = (_e821 % 1f); - if (_e821 >= 1f) { - phi_4749_ = select(true, false, (_e823 == 0f)); - } else { - phi_4749_ = true; - } - let _e827 = phi_4749_; - let _e828 = select(1f, _e823, _e827); - if (select(-1f, 1f, (_e684.y >= 0f)) > 0f) { - phi_1392_ = _e828; - } else { - phi_1392_ = (1f - _e828); - } - let _e832 = phi_1392_; - phi_1429_ = _e832; - break; - } - case 2: { - let _e795 = abs(_e684.y); - let _e802 = ((select(select(u32(_e795), 0u, (_e795 < 0f)), 4294967295u, (_e795 > 4294967000f)) % 2u) == 0u); - let _e804 = (_e795 % 1f); - if (_e795 >= 1f) { - phi_4732_ = select(true, false, (_e804 == 0f)); - } else { - phi_4732_ = true; } - let _e808 = phi_4732_; - let _e809 = select(1f, _e804, _e808); - if (select(-1f, 1f, (_e684.y >= 0f)) > 0f) { - if _e802 { - phi_1421_ = _e809; - } else { - phi_1421_ = (1f - _e809); + let _e594 = phi_1160_; + switch bitcast(_e543.member.member_1) { + case 1: { + let _e632 = abs(_e495.y); + let _e634 = (_e632 % 1f); + if (_e632 >= 1f) { + phi_4814_ = select(true, false, (_e634 == 0f)); + } else { + phi_4814_ = true; + } + let _e638 = phi_4814_; + let _e639 = select(1f, _e634, _e638); + if (select(-1f, 1f, (_e495.y >= 0f)) > 0f) { + phi_1181_ = _e639; + } else { + phi_1181_ = (1f - _e639); + } + let _e643 = phi_1181_; + phi_1218_ = _e643; + break; } - let _e816 = phi_1421_; - phi_1427_ = _e816; - } else { - if _e802 { - phi_1426_ = (1f - _e809); - } else { - phi_1426_ = _e809; + case 2: { + let _e606 = abs(_e495.y); + let _e613 = ((select(select(u32(_e606), 0u, (_e606 < 0f)), 4294967295u, (_e606 > 4294967000f)) % 2u) == 0u); + let _e615 = (_e606 % 1f); + if (_e606 >= 1f) { + phi_4797_ = select(true, false, (_e615 == 0f)); + } else { + phi_4797_ = true; + } + let _e619 = phi_4797_; + let _e620 = select(1f, _e615, _e619); + if (select(-1f, 1f, (_e495.y >= 0f)) > 0f) { + if _e613 { + phi_1210_ = _e620; + } else { + phi_1210_ = (1f - _e620); + } + let _e627 = phi_1210_; + phi_1216_ = _e627; + } else { + if _e613 { + phi_1215_ = (1f - _e620); + } else { + phi_1215_ = _e620; + } + let _e624 = phi_1215_; + phi_1216_ = _e624; + } + let _e629 = phi_1216_; + phi_1218_ = _e629; + break; } - let _e813 = phi_1426_; - phi_1427_ = _e813; - } - let _e818 = phi_1427_; - phi_1429_ = _e818; - break; - } - case 0: { - if (_e684.y > 1f) { - phi_4719_ = 0.9999999f; - } else { - phi_4719_ = select(_e684.y, 0.00000011920929f, (_e684.y < 0f)); - } - let _e792 = phi_4719_; - phi_1429_ = _e792; - break; - } - default: { - phi_1429_ = f32(); - break; - } - } - let _e834 = phi_1429_; - let _e838 = (_e783 * f32(_e732.member_2.x)); - let _e847 = (_e834 * f32(_e732.member_2.y)); - let _e865 = vec3((f32((select(select(u32(_e838), 0u, (_e838 < 0f)), 4294967295u, (_e838 > 4294967000f)) + _e732.member_1.x)) / _e469), (f32((select(select(u32(_e847), 0u, (_e847 < 0f)), 4294967295u, (_e847 > 4294967000f)) + _e732.member_1.y)) / _e470), f32(_e732.member_3)); - let _e871 = textureSampleLevel(global_11, global_10, vec2(_e865.x, _e865.y), i32(_e865.z), 0f); - let _e872 = (_e289.member_7 == 4294967295u); - let _e874 = select(_e871, vec4(1f, 1f, 1f, 1f), vec4(_e872)); - let _e878 = select(_e122, _e121, vec2((_e289.member_13 == 0u))); - if _e295 { - phi_4785_ = (_e289.member_8 <= (_e116 - 8u)); - } else { - phi_4785_ = false; - } - let _e883 = phi_4785_; - if _e883 { - let _e886 = global.member[_e289.member_8]; - let _e890 = global.member[(_e289.member_8 + 1u)]; - let _e895 = global.member[(_e289.member_8 + 2u)]; - let _e899 = global.member[(_e289.member_8 + 3u)]; - let _e904 = global.member[(_e289.member_8 + 4u)]; - let _e908 = global.member[(_e289.member_8 + 5u)]; - let _e912 = global.member[(_e289.member_8 + 6u)]; - switch bitcast(_e912) { - case 0: { - phi_1512_ = 0u; - break; - } - case 1: { - phi_1512_ = 1u; - break; - } - case 2: { - phi_1512_ = 2u; - break; - } - default: { - phi_1512_ = 0u; - break; - } - } - let _e915 = phi_1512_; - let _e919 = global.member[(_e289.member_8 + 7u)]; - switch bitcast(_e919) { - case 0: { - phi_1521_ = 0u; - break; - } - case 1: { - phi_1521_ = 1u; - break; - } - case 2: { - phi_1521_ = 2u; - break; - } - default: { - phi_1521_ = 0u; - break; - } - } - let _e922 = phi_1521_; - phi_1534_ = type_15(type_14(_e915, _e922), vec2(_e886, _e890), vec2(_e895, _e899), _e904, _e908); - } else { - phi_1534_ = type_15(type_14(0u, 0u), vec2(0u, 0u), vec2(0u, 0u), 0u, 0u); - } - let _e926 = phi_1534_; - switch bitcast(_e926.member.member) { - case 1: { - let _e964 = abs(_e878.x); - let _e966 = (_e964 % 1f); - if (_e964 >= 1f) { - phi_4836_ = select(true, false, (_e966 == 0f)); - } else { - phi_4836_ = true; - } - let _e970 = phi_4836_; - let _e971 = select(1f, _e966, _e970); - if (select(-1f, 1f, (_e878.x >= 0f)) > 0f) { - phi_1554_ = _e971; - } else { - phi_1554_ = (1f - _e971); - } - let _e975 = phi_1554_; - phi_1591_ = _e975; - break; - } - case 2: { - let _e938 = abs(_e878.x); - let _e945 = ((select(select(u32(_e938), 0u, (_e938 < 0f)), 4294967295u, (_e938 > 4294967000f)) % 2u) == 0u); - let _e947 = (_e938 % 1f); - if (_e938 >= 1f) { - phi_4819_ = select(true, false, (_e947 == 0f)); - } else { - phi_4819_ = true; - } - let _e951 = phi_4819_; - let _e952 = select(1f, _e947, _e951); - if (select(-1f, 1f, (_e878.x >= 0f)) > 0f) { - if _e945 { - phi_1583_ = _e952; - } else { - phi_1583_ = (1f - _e952); + case 0: { + if (_e495.y > 1f) { + phi_4784_ = 0.9999999f; + } else { + phi_4784_ = select(_e495.y, 0.00000011920929f, (_e495.y < 0f)); + } + let _e603 = phi_4784_; + phi_1218_ = _e603; + break; } - let _e959 = phi_1583_; - phi_1589_ = _e959; - } else { - if _e945 { - phi_1588_ = (1f - _e952); - } else { - phi_1588_ = _e952; + default: { + phi_1218_ = f32(); + break; } - let _e956 = phi_1588_; - phi_1589_ = _e956; - } - let _e961 = phi_1589_; - phi_1591_ = _e961; - break; - } - case 0: { - if (_e878.x > 1f) { - phi_4806_ = 0.9999999f; - } else { - phi_4806_ = select(_e878.x, 0.00000011920929f, (_e878.x < 0f)); - } - let _e935 = phi_4806_; - phi_1591_ = _e935; - break; - } - default: { - phi_1591_ = f32(); - break; - } - } - let _e977 = phi_1591_; - switch bitcast(_e926.member.member_1) { - case 1: { - let _e1015 = abs(_e878.y); - let _e1017 = (_e1015 % 1f); - if (_e1015 >= 1f) { - phi_4884_ = select(true, false, (_e1017 == 0f)); - } else { - phi_4884_ = true; } - let _e1021 = phi_4884_; - let _e1022 = select(1f, _e1017, _e1021); - if (select(-1f, 1f, (_e878.y >= 0f)) > 0f) { - phi_1612_ = _e1022; + let _e645 = phi_1218_; + let _e649 = (_e594 * f32(_e543.member_2.x)); + let _e658 = (_e645 * f32(_e543.member_2.y)); + let _e676 = vec3((f32((select(select(u32(_e649), 0u, (_e649 < 0f)), 4294967295u, (_e649 > 4294967000f)) + _e543.member_1.x)) / _e474), (f32((select(select(u32(_e658), 0u, (_e658 < 0f)), 4294967295u, (_e658 > 4294967000f)) + _e543.member_1.y)) / _e475), f32(_e543.member_3)); + let _e682 = textureSampleLevel(global_11, global_10, vec2(_e676.x, _e676.y), i32(_e676.z), 0f); + let _e685 = select(_e682, vec4(1f, 1f, 1f, 1f), vec4((_e294.member_6 == 4294967295u))); + let _e689 = select(_e127, _e126, vec2((_e294.member_12 == 0u))); + if _e300 { + phi_4850_ = (_e294.member_7 <= (_e121 - 8u)); } else { - phi_1612_ = (1f - _e1022); - } - let _e1026 = phi_1612_; - phi_1649_ = _e1026; - break; - } - case 2: { - let _e989 = abs(_e878.y); - let _e996 = ((select(select(u32(_e989), 0u, (_e989 < 0f)), 4294967295u, (_e989 > 4294967000f)) % 2u) == 0u); - let _e998 = (_e989 % 1f); - if (_e989 >= 1f) { - phi_4867_ = select(true, false, (_e998 == 0f)); - } else { - phi_4867_ = true; - } - let _e1002 = phi_4867_; - let _e1003 = select(1f, _e998, _e1002); - if (select(-1f, 1f, (_e878.y >= 0f)) > 0f) { - if _e996 { - phi_1641_ = _e1003; - } else { - phi_1641_ = (1f - _e1003); + phi_4850_ = false; + } + let _e694 = phi_4850_; + if _e694 { + let _e697 = global.member[_e294.member_7]; + let _e701 = global.member[(_e294.member_7 + 1u)]; + let _e706 = global.member[(_e294.member_7 + 2u)]; + let _e710 = global.member[(_e294.member_7 + 3u)]; + let _e715 = global.member[(_e294.member_7 + 4u)]; + let _e719 = global.member[(_e294.member_7 + 5u)]; + let _e723 = global.member[(_e294.member_7 + 6u)]; + switch bitcast(_e723) { + case 0: { + phi_1301_ = 0u; + break; + } + case 1: { + phi_1301_ = 1u; + break; + } + case 2: { + phi_1301_ = 2u; + break; + } + default: { + phi_1301_ = 0u; + break; + } } - let _e1010 = phi_1641_; - phi_1647_ = _e1010; - } else { - if _e996 { - phi_1646_ = (1f - _e1003); - } else { - phi_1646_ = _e1003; + let _e726 = phi_1301_; + let _e730 = global.member[(_e294.member_7 + 7u)]; + switch bitcast(_e730) { + case 0: { + phi_1310_ = 0u; + break; + } + case 1: { + phi_1310_ = 1u; + break; + } + case 2: { + phi_1310_ = 2u; + break; + } + default: { + phi_1310_ = 0u; + break; + } } - let _e1007 = phi_1646_; - phi_1647_ = _e1007; - } - let _e1012 = phi_1647_; - phi_1649_ = _e1012; - break; - } - case 0: { - if (_e878.y > 1f) { - phi_4854_ = 0.9999999f; - } else { - phi_4854_ = select(_e878.y, 0.00000011920929f, (_e878.y < 0f)); - } - let _e986 = phi_4854_; - phi_1649_ = _e986; - break; - } - default: { - phi_1649_ = f32(); - break; - } - } - let _e1028 = phi_1649_; - let _e1032 = (_e977 * f32(_e926.member_2.x)); - let _e1041 = (_e1028 * f32(_e926.member_2.y)); - let _e1059 = vec3((f32((select(select(u32(_e1032), 0u, (_e1032 < 0f)), 4294967295u, (_e1032 > 4294967000f)) + _e926.member_1.x)) / _e469), (f32((select(select(u32(_e1041), 0u, (_e1041 < 0f)), 4294967295u, (_e1041 > 4294967000f)) + _e926.member_1.y)) / _e470), f32(_e926.member_3)); - let _e1065 = textureSampleLevel(global_11, global_10, vec2(_e1059.x, _e1059.y), i32(_e1059.z), 0f); - let _e1072 = select(_e122, _e121, vec2((_e289.member_14 == 0u))); - if _e295 { - phi_4920_ = (_e289.member_9 <= (_e116 - 8u)); - } else { - phi_4920_ = false; - } - let _e1077 = phi_4920_; - if _e1077 { - let _e1080 = global.member[_e289.member_9]; - let _e1084 = global.member[(_e289.member_9 + 1u)]; - let _e1089 = global.member[(_e289.member_9 + 2u)]; - let _e1093 = global.member[(_e289.member_9 + 3u)]; - let _e1098 = global.member[(_e289.member_9 + 4u)]; - let _e1102 = global.member[(_e289.member_9 + 5u)]; - let _e1106 = global.member[(_e289.member_9 + 6u)]; - switch bitcast(_e1106) { - case 0: { - phi_1732_ = 0u; - break; - } - case 1: { - phi_1732_ = 1u; - break; - } - case 2: { - phi_1732_ = 2u; - break; - } - default: { - phi_1732_ = 0u; - break; - } - } - let _e1109 = phi_1732_; - let _e1113 = global.member[(_e289.member_9 + 7u)]; - switch bitcast(_e1113) { - case 0: { - phi_1741_ = 0u; - break; - } - case 1: { - phi_1741_ = 1u; - break; - } - case 2: { - phi_1741_ = 2u; - break; - } - default: { - phi_1741_ = 0u; - break; - } - } - let _e1116 = phi_1741_; - phi_1754_ = type_15(type_14(_e1109, _e1116), vec2(_e1080, _e1084), vec2(_e1089, _e1093), _e1098, _e1102); - } else { - phi_1754_ = type_15(type_14(0u, 0u), vec2(0u, 0u), vec2(0u, 0u), 0u, 0u); - } - let _e1120 = phi_1754_; - switch bitcast(_e1120.member.member) { - case 1: { - let _e1158 = abs(_e1072.x); - let _e1160 = (_e1158 % 1f); - if (_e1158 >= 1f) { - phi_4971_ = select(true, false, (_e1160 == 0f)); - } else { - phi_4971_ = true; - } - let _e1164 = phi_4971_; - let _e1165 = select(1f, _e1160, _e1164); - if (select(-1f, 1f, (_e1072.x >= 0f)) > 0f) { - phi_1774_ = _e1165; - } else { - phi_1774_ = (1f - _e1165); - } - let _e1169 = phi_1774_; - phi_1811_ = _e1169; - break; - } - case 2: { - let _e1132 = abs(_e1072.x); - let _e1139 = ((select(select(u32(_e1132), 0u, (_e1132 < 0f)), 4294967295u, (_e1132 > 4294967000f)) % 2u) == 0u); - let _e1141 = (_e1132 % 1f); - if (_e1132 >= 1f) { - phi_4954_ = select(true, false, (_e1141 == 0f)); + let _e733 = phi_1310_; + phi_1323_ = type_15(type_14(_e726, _e733), vec2(_e697, _e701), vec2(_e706, _e710), _e715, _e719); } else { - phi_4954_ = true; + phi_1323_ = type_15(type_14(0u, 0u), vec2(0u, 0u), vec2(0u, 0u), 0u, 0u); } - let _e1145 = phi_4954_; - let _e1146 = select(1f, _e1141, _e1145); - if (select(-1f, 1f, (_e1072.x >= 0f)) > 0f) { - if _e1139 { - phi_1803_ = _e1146; - } else { - phi_1803_ = (1f - _e1146); + let _e737 = phi_1323_; + switch bitcast(_e737.member.member) { + case 1: { + let _e775 = abs(_e689.x); + let _e777 = (_e775 % 1f); + if (_e775 >= 1f) { + phi_4901_ = select(true, false, (_e777 == 0f)); + } else { + phi_4901_ = true; + } + let _e781 = phi_4901_; + let _e782 = select(1f, _e777, _e781); + if (select(-1f, 1f, (_e689.x >= 0f)) > 0f) { + phi_1343_ = _e782; + } else { + phi_1343_ = (1f - _e782); + } + let _e786 = phi_1343_; + phi_1380_ = _e786; + break; } - let _e1153 = phi_1803_; - phi_1809_ = _e1153; - } else { - if _e1139 { - phi_1808_ = (1f - _e1146); - } else { - phi_1808_ = _e1146; + case 2: { + let _e749 = abs(_e689.x); + let _e756 = ((select(select(u32(_e749), 0u, (_e749 < 0f)), 4294967295u, (_e749 > 4294967000f)) % 2u) == 0u); + let _e758 = (_e749 % 1f); + if (_e749 >= 1f) { + phi_4884_ = select(true, false, (_e758 == 0f)); + } else { + phi_4884_ = true; + } + let _e762 = phi_4884_; + let _e763 = select(1f, _e758, _e762); + if (select(-1f, 1f, (_e689.x >= 0f)) > 0f) { + if _e756 { + phi_1372_ = _e763; + } else { + phi_1372_ = (1f - _e763); + } + let _e770 = phi_1372_; + phi_1378_ = _e770; + } else { + if _e756 { + phi_1377_ = (1f - _e763); + } else { + phi_1377_ = _e763; + } + let _e767 = phi_1377_; + phi_1378_ = _e767; + } + let _e772 = phi_1378_; + phi_1380_ = _e772; + break; + } + case 0: { + if (_e689.x > 1f) { + phi_4871_ = 0.9999999f; + } else { + phi_4871_ = select(_e689.x, 0.00000011920929f, (_e689.x < 0f)); + } + let _e746 = phi_4871_; + phi_1380_ = _e746; + break; + } + default: { + phi_1380_ = f32(); + break; } - let _e1150 = phi_1808_; - phi_1809_ = _e1150; - } - let _e1155 = phi_1809_; - phi_1811_ = _e1155; - break; - } - case 0: { - if (_e1072.x > 1f) { - phi_4941_ = 0.9999999f; - } else { - phi_4941_ = select(_e1072.x, 0.00000011920929f, (_e1072.x < 0f)); - } - let _e1129 = phi_4941_; - phi_1811_ = _e1129; - break; - } - default: { - phi_1811_ = f32(); - break; - } - } - let _e1171 = phi_1811_; - switch bitcast(_e1120.member.member_1) { - case 1: { - let _e1209 = abs(_e1072.y); - let _e1211 = (_e1209 % 1f); - if (_e1209 >= 1f) { - phi_5019_ = select(true, false, (_e1211 == 0f)); - } else { - phi_5019_ = true; - } - let _e1215 = phi_5019_; - let _e1216 = select(1f, _e1211, _e1215); - if (select(-1f, 1f, (_e1072.y >= 0f)) > 0f) { - phi_1832_ = _e1216; - } else { - phi_1832_ = (1f - _e1216); - } - let _e1220 = phi_1832_; - phi_1869_ = _e1220; - break; - } - case 2: { - let _e1183 = abs(_e1072.y); - let _e1190 = ((select(select(u32(_e1183), 0u, (_e1183 < 0f)), 4294967295u, (_e1183 > 4294967000f)) % 2u) == 0u); - let _e1192 = (_e1183 % 1f); - if (_e1183 >= 1f) { - phi_5002_ = select(true, false, (_e1192 == 0f)); - } else { - phi_5002_ = true; } - let _e1196 = phi_5002_; - let _e1197 = select(1f, _e1192, _e1196); - if (select(-1f, 1f, (_e1072.y >= 0f)) > 0f) { - if _e1190 { - phi_1861_ = _e1197; - } else { - phi_1861_ = (1f - _e1197); + let _e788 = phi_1380_; + switch bitcast(_e737.member.member_1) { + case 1: { + let _e826 = abs(_e689.y); + let _e828 = (_e826 % 1f); + if (_e826 >= 1f) { + phi_4949_ = select(true, false, (_e828 == 0f)); + } else { + phi_4949_ = true; + } + let _e832 = phi_4949_; + let _e833 = select(1f, _e828, _e832); + if (select(-1f, 1f, (_e689.y >= 0f)) > 0f) { + phi_1401_ = _e833; + } else { + phi_1401_ = (1f - _e833); + } + let _e837 = phi_1401_; + phi_1438_ = _e837; + break; } - let _e1204 = phi_1861_; - phi_1867_ = _e1204; - } else { - if _e1190 { - phi_1866_ = (1f - _e1197); - } else { - phi_1866_ = _e1197; + case 2: { + let _e800 = abs(_e689.y); + let _e807 = ((select(select(u32(_e800), 0u, (_e800 < 0f)), 4294967295u, (_e800 > 4294967000f)) % 2u) == 0u); + let _e809 = (_e800 % 1f); + if (_e800 >= 1f) { + phi_4932_ = select(true, false, (_e809 == 0f)); + } else { + phi_4932_ = true; + } + let _e813 = phi_4932_; + let _e814 = select(1f, _e809, _e813); + if (select(-1f, 1f, (_e689.y >= 0f)) > 0f) { + if _e807 { + phi_1430_ = _e814; + } else { + phi_1430_ = (1f - _e814); + } + let _e821 = phi_1430_; + phi_1436_ = _e821; + } else { + if _e807 { + phi_1435_ = (1f - _e814); + } else { + phi_1435_ = _e814; + } + let _e818 = phi_1435_; + phi_1436_ = _e818; + } + let _e823 = phi_1436_; + phi_1438_ = _e823; + break; + } + case 0: { + if (_e689.y > 1f) { + phi_4919_ = 0.9999999f; + } else { + phi_4919_ = select(_e689.y, 0.00000011920929f, (_e689.y < 0f)); + } + let _e797 = phi_4919_; + phi_1438_ = _e797; + break; + } + default: { + phi_1438_ = f32(); + break; } - let _e1201 = phi_1866_; - phi_1867_ = _e1201; } - let _e1206 = phi_1867_; - phi_1869_ = _e1206; - break; - } - case 0: { - if (_e1072.y > 1f) { - phi_4989_ = 0.9999999f; + let _e839 = phi_1438_; + let _e843 = (_e788 * f32(_e737.member_2.x)); + let _e852 = (_e839 * f32(_e737.member_2.y)); + let _e870 = vec3((f32((select(select(u32(_e843), 0u, (_e843 < 0f)), 4294967295u, (_e843 > 4294967000f)) + _e737.member_1.x)) / _e474), (f32((select(select(u32(_e852), 0u, (_e852 < 0f)), 4294967295u, (_e852 > 4294967000f)) + _e737.member_1.y)) / _e475), f32(_e737.member_3)); + let _e876 = textureSampleLevel(global_11, global_10, vec2(_e870.x, _e870.y), i32(_e870.z), 0f); + let _e877 = (_e294.member_7 == 4294967295u); + let _e879 = select(_e876, vec4(1f, 1f, 1f, 1f), vec4(_e877)); + let _e883 = select(_e127, _e126, vec2((_e294.member_13 == 0u))); + if _e300 { + phi_4985_ = (_e294.member_8 <= (_e121 - 8u)); } else { - phi_4989_ = select(_e1072.y, 0.00000011920929f, (_e1072.y < 0f)); - } - let _e1180 = phi_4989_; - phi_1869_ = _e1180; - break; - } - default: { - phi_1869_ = f32(); - break; - } - } - let _e1222 = phi_1869_; - let _e1226 = (_e1171 * f32(_e1120.member_2.x)); - let _e1235 = (_e1222 * f32(_e1120.member_2.y)); - let _e1253 = vec3((f32((select(select(u32(_e1226), 0u, (_e1226 < 0f)), 4294967295u, (_e1226 > 4294967000f)) + _e1120.member_1.x)) / _e469), (f32((select(select(u32(_e1235), 0u, (_e1235 < 0f)), 4294967295u, (_e1235 > 4294967000f)) + _e1120.member_1.y)) / _e470), f32(_e1120.member_3)); - let _e1259 = textureSampleLevel(global_11, global_10, vec2(_e1253.x, _e1253.y), i32(_e1253.z), 0f); - let _e1262 = select(_e1259, vec4(1f, 1f, 1f, 1f), vec4((_e289.member_9 == 4294967295u))); - if _e872 { - phi_1963_ = vec3(0f, 0f, 0f); - phi_1964_ = _e123; - } else { - let _e1266 = fma(_e874.x, 2f, -1f); - let _e1267 = fma(_e874.y, 2f, -1f); - let _e1268 = fma(_e874.z, 2f, -1f); - let _e1273 = sqrt(fma(_e1268, _e1268, fma(_e1266, _e1266, (_e1267 * _e1267)))); - if (_e1273 == 0f) { - phi_5077_ = vec3(0f, 0f, 0f); - } else { - phi_5077_ = (vec3(_e1266, _e1267, _e1268) * (1f / _e1273)); - } - let _e1278 = phi_5077_; - let _e1285 = sqrt(fma(_e124.z, _e124.z, fma(_e124.x, _e124.x, (_e124.y * _e124.y)))); - if (_e1285 == 0f) { - phi_5112_ = vec3(0f, 0f, 0f); - } else { - phi_5112_ = (_e124 * (1f / _e1285)); - } - let _e1290 = phi_5112_; - let _e1297 = sqrt(fma(_e125.z, _e125.z, fma(_e125.x, _e125.x, (_e125.y * _e125.y)))); - if (_e1297 == 0f) { - phi_5147_ = vec3(0f, 0f, 0f); - } else { - phi_5147_ = (_e125 * (1f / _e1297)); - } - let _e1302 = phi_5147_; - let _e1309 = sqrt(fma(_e123.z, _e123.z, fma(_e123.x, _e123.x, (_e123.y * _e123.y)))); - if (_e1309 == 0f) { - phi_5182_ = vec3(0f, 0f, 0f); - } else { - phi_5182_ = (_e123 * (1f / _e1309)); - } - let _e1314 = phi_5182_; - let _e1333 = fma(_e1314.x, _e1278.z, fma(_e1290.x, _e1278.x, (_e1302.x * _e1278.y))); - let _e1334 = fma(_e1314.y, _e1278.z, fma(_e1290.y, _e1278.x, (_e1302.y * _e1278.y))); - let _e1335 = fma(_e1314.z, _e1278.z, fma(_e1290.z, _e1278.x, (_e1302.z * _e1278.y))); - let _e1340 = sqrt(fma(_e1335, _e1335, fma(_e1333, _e1333, (_e1334 * _e1334)))); - if (_e1340 == 0f) { - phi_5217_ = vec3(0f, 0f, 0f); - } else { - phi_5217_ = (vec3(_e1333, _e1334, _e1335) * (1f / _e1340)); - } - let _e1345 = phi_5217_; - phi_1963_ = _e1278; - phi_1964_ = _e1345; - } - let _e1347 = phi_1963_; - let _e1349 = phi_1964_; - let _e1353 = (_e486.x * _e289.member_2.x); - let _e1356 = (_e486.y * _e289.member_2.y); - let _e1359 = (_e486.z * _e289.member_2.z); - let _e1364 = (_e1353 * _e120.x); - let _e1366 = (_e1356 * _e120.y); - let _e1368 = (_e1359 * _e120.z); - let _e1373 = (_e680.y * _e289.member_4); - let _e1376 = (_e680.z * _e289.member_3); - let _e1380 = fma(_e289.member_16, (select(_e1065, vec4(1f, 1f, 1f, 1f), vec4((_e289.member_8 == 4294967295u))).x - 1f), 1f); - let _e1386 = (_e1262.x * _e289.member.x); - let _e1388 = (_e1262.y * _e289.member.y); - let _e1390 = (_e1262.z * _e289.member.z); - let _e1395 = textureSampleLevel(global_12, global_13, _e1349, 0f); - if (_e116 >= 86u) { - phi_5249_ = (_e130 <= (_e116 - 86u)); - } else { - phi_5249_ = false; - } - let _e1403 = phi_5249_; - if _e1403 { - let _e1406 = global.member[_e130]; - let _e1411 = global.member[(_e130 + 1u)]; - let _e1416 = global.member[(_e130 + 2u)]; - let _e1421 = global.member[(_e130 + 3u)]; - let _e1427 = global.member[(_e130 + 4u)]; - let _e1432 = global.member[(_e130 + 5u)]; - let _e1437 = global.member[(_e130 + 6u)]; - let _e1442 = global.member[(_e130 + 7u)]; - let _e1448 = global.member[(_e130 + 8u)]; - let _e1453 = global.member[(_e130 + 9u)]; - let _e1458 = global.member[(_e130 + 10u)]; - let _e1463 = global.member[(_e130 + 11u)]; - let _e1469 = global.member[(_e130 + 12u)]; - let _e1474 = global.member[(_e130 + 13u)]; - let _e1479 = global.member[(_e130 + 14u)]; - let _e1484 = global.member[(_e130 + 15u)]; - let _e1491 = global.member[(_e130 + 16u)]; - let _e1496 = global.member[(_e130 + 17u)]; - let _e1501 = global.member[(_e130 + 18u)]; - let _e1506 = global.member[(_e130 + 19u)]; - let _e1512 = global.member[(_e130 + 20u)]; - let _e1517 = global.member[(_e130 + 21u)]; - let _e1522 = global.member[(_e130 + 22u)]; - let _e1527 = global.member[(_e130 + 23u)]; - let _e1533 = global.member[(_e130 + 24u)]; - let _e1538 = global.member[(_e130 + 25u)]; - let _e1543 = global.member[(_e130 + 26u)]; - let _e1548 = global.member[(_e130 + 27u)]; - let _e1554 = global.member[(_e130 + 28u)]; - let _e1559 = global.member[(_e130 + 29u)]; - let _e1564 = global.member[(_e130 + 30u)]; - let _e1569 = global.member[(_e130 + 31u)]; - let _e1576 = global.member[(_e130 + 32u)]; - let _e1581 = global.member[(_e130 + 33u)]; - let _e1586 = global.member[(_e130 + 34u)]; - local_1 = array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f)); - phi_2171_ = type_14(0u, 6u); - loop { - let _e1591 = phi_2171_; - if (_e1591.member < _e1591.member_1) { - phi_2172_ = type_14((_e1591.member + 1u), _e1591.member_1); - phi_2195_ = type_14(1u, _e1591.member); + phi_4985_ = false; + } + let _e888 = phi_4985_; + if _e888 { + let _e891 = global.member[_e294.member_8]; + let _e895 = global.member[(_e294.member_8 + 1u)]; + let _e900 = global.member[(_e294.member_8 + 2u)]; + let _e904 = global.member[(_e294.member_8 + 3u)]; + let _e909 = global.member[(_e294.member_8 + 4u)]; + let _e913 = global.member[(_e294.member_8 + 5u)]; + let _e917 = global.member[(_e294.member_8 + 6u)]; + switch bitcast(_e917) { + case 0: { + phi_1521_ = 0u; + break; + } + case 1: { + phi_1521_ = 1u; + break; + } + case 2: { + phi_1521_ = 2u; + break; + } + default: { + phi_1521_ = 0u; + break; + } + } + let _e920 = phi_1521_; + let _e924 = global.member[(_e294.member_8 + 7u)]; + switch bitcast(_e924) { + case 0: { + phi_1530_ = 0u; + break; + } + case 1: { + phi_1530_ = 1u; + break; + } + case 2: { + phi_1530_ = 2u; + break; + } + default: { + phi_1530_ = 0u; + break; + } + } + let _e927 = phi_1530_; + phi_1543_ = type_15(type_14(_e920, _e927), vec2(_e891, _e895), vec2(_e900, _e904), _e909, _e913); } else { - phi_2172_ = _e1591; - phi_2195_ = type_14(0u, type_14().member_1); + phi_1543_ = type_15(type_14(0u, 0u), vec2(0u, 0u), vec2(0u, 0u), 0u, 0u); } - let _e1604 = phi_2172_; - let _e1606 = phi_2195_; - switch bitcast(_e1606.member) { + let _e931 = phi_1543_; + switch bitcast(_e931.member.member) { + case 1: { + let _e969 = abs(_e883.x); + let _e971 = (_e969 % 1f); + if (_e969 >= 1f) { + phi_5036_ = select(true, false, (_e971 == 0f)); + } else { + phi_5036_ = true; + } + let _e975 = phi_5036_; + let _e976 = select(1f, _e971, _e975); + if (select(-1f, 1f, (_e883.x >= 0f)) > 0f) { + phi_1563_ = _e976; + } else { + phi_1563_ = (1f - _e976); + } + let _e980 = phi_1563_; + phi_1600_ = _e980; + break; + } + case 2: { + let _e943 = abs(_e883.x); + let _e950 = ((select(select(u32(_e943), 0u, (_e943 < 0f)), 4294967295u, (_e943 > 4294967000f)) % 2u) == 0u); + let _e952 = (_e943 % 1f); + if (_e943 >= 1f) { + phi_5019_ = select(true, false, (_e952 == 0f)); + } else { + phi_5019_ = true; + } + let _e956 = phi_5019_; + let _e957 = select(1f, _e952, _e956); + if (select(-1f, 1f, (_e883.x >= 0f)) > 0f) { + if _e950 { + phi_1592_ = _e957; + } else { + phi_1592_ = (1f - _e957); + } + let _e964 = phi_1592_; + phi_1598_ = _e964; + } else { + if _e950 { + phi_1597_ = (1f - _e957); + } else { + phi_1597_ = _e957; + } + let _e961 = phi_1597_; + phi_1598_ = _e961; + } + let _e966 = phi_1598_; + phi_1600_ = _e966; + break; + } case 0: { - phi_2222_ = false; + if (_e883.x > 1f) { + phi_5006_ = 0.9999999f; + } else { + phi_5006_ = select(_e883.x, 0.00000011920929f, (_e883.x < 0f)); + } + let _e940 = phi_5006_; + phi_1600_ = _e940; + break; + } + default: { + phi_1600_ = f32(); break; } + } + let _e982 = phi_1600_; + switch bitcast(_e931.member.member_1) { case 1: { - let _e1611 = ((_e130 + 35u) + (_e1606.member_1 * 4u)); - let _e1614 = global.member[_e1611]; - let _e1619 = global.member[(_e1611 + 1u)]; - let _e1624 = global.member[(_e1611 + 2u)]; - let _e1629 = global.member[(_e1611 + 3u)]; - local_1[_e1606.member_1] = vec4(bitcast(_e1614), bitcast(_e1619), bitcast(_e1624), bitcast(_e1629)); - phi_2222_ = true; + let _e1020 = abs(_e883.y); + let _e1022 = (_e1020 % 1f); + if (_e1020 >= 1f) { + phi_5084_ = select(true, false, (_e1022 == 0f)); + } else { + phi_5084_ = true; + } + let _e1026 = phi_5084_; + let _e1027 = select(1f, _e1022, _e1026); + if (select(-1f, 1f, (_e883.y >= 0f)) > 0f) { + phi_1621_ = _e1027; + } else { + phi_1621_ = (1f - _e1027); + } + let _e1031 = phi_1621_; + phi_1658_ = _e1031; + break; + } + case 2: { + let _e994 = abs(_e883.y); + let _e1001 = ((select(select(u32(_e994), 0u, (_e994 < 0f)), 4294967295u, (_e994 > 4294967000f)) % 2u) == 0u); + let _e1003 = (_e994 % 1f); + if (_e994 >= 1f) { + phi_5067_ = select(true, false, (_e1003 == 0f)); + } else { + phi_5067_ = true; + } + let _e1007 = phi_5067_; + let _e1008 = select(1f, _e1003, _e1007); + if (select(-1f, 1f, (_e883.y >= 0f)) > 0f) { + if _e1001 { + phi_1650_ = _e1008; + } else { + phi_1650_ = (1f - _e1008); + } + let _e1015 = phi_1650_; + phi_1656_ = _e1015; + } else { + if _e1001 { + phi_1655_ = (1f - _e1008); + } else { + phi_1655_ = _e1008; + } + let _e1012 = phi_1655_; + phi_1656_ = _e1012; + } + let _e1017 = phi_1656_; + phi_1658_ = _e1017; + break; + } + case 0: { + if (_e883.y > 1f) { + phi_5054_ = 0.9999999f; + } else { + phi_5054_ = select(_e883.y, 0.00000011920929f, (_e883.y < 0f)); + } + let _e991 = phi_5054_; + phi_1658_ = _e991; break; } default: { - phi_2222_ = bool(); + phi_1658_ = f32(); break; } } - let _e1634 = phi_2222_; - continue; - continuing { - phi_2171_ = _e1604; - break if !(_e1634); - } - } - let _e1636 = local_1; - local = array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)); - phi_2228_ = type_14(0u, 8u); - loop { - let _e1639 = phi_2228_; - if (_e1639.member < _e1639.member_1) { - phi_2229_ = type_14((_e1639.member + 1u), _e1639.member_1); - phi_2252_ = type_14(1u, _e1639.member); + let _e1033 = phi_1658_; + let _e1037 = (_e982 * f32(_e931.member_2.x)); + let _e1046 = (_e1033 * f32(_e931.member_2.y)); + let _e1064 = vec3((f32((select(select(u32(_e1037), 0u, (_e1037 < 0f)), 4294967295u, (_e1037 > 4294967000f)) + _e931.member_1.x)) / _e474), (f32((select(select(u32(_e1046), 0u, (_e1046 < 0f)), 4294967295u, (_e1046 > 4294967000f)) + _e931.member_1.y)) / _e475), f32(_e931.member_3)); + let _e1070 = textureSampleLevel(global_11, global_10, vec2(_e1064.x, _e1064.y), i32(_e1064.z), 0f); + let _e1077 = select(_e127, _e126, vec2((_e294.member_14 == 0u))); + if _e300 { + phi_5120_ = (_e294.member_9 <= (_e121 - 8u)); } else { - phi_2229_ = _e1639; - phi_2252_ = type_14(0u, type_14().member_1); + phi_5120_ = false; + } + let _e1082 = phi_5120_; + if _e1082 { + let _e1085 = global.member[_e294.member_9]; + let _e1089 = global.member[(_e294.member_9 + 1u)]; + let _e1094 = global.member[(_e294.member_9 + 2u)]; + let _e1098 = global.member[(_e294.member_9 + 3u)]; + let _e1103 = global.member[(_e294.member_9 + 4u)]; + let _e1107 = global.member[(_e294.member_9 + 5u)]; + let _e1111 = global.member[(_e294.member_9 + 6u)]; + switch bitcast(_e1111) { + case 0: { + phi_1741_ = 0u; + break; + } + case 1: { + phi_1741_ = 1u; + break; + } + case 2: { + phi_1741_ = 2u; + break; + } + default: { + phi_1741_ = 0u; + break; + } + } + let _e1114 = phi_1741_; + let _e1118 = global.member[(_e294.member_9 + 7u)]; + switch bitcast(_e1118) { + case 0: { + phi_1750_ = 0u; + break; + } + case 1: { + phi_1750_ = 1u; + break; + } + case 2: { + phi_1750_ = 2u; + break; + } + default: { + phi_1750_ = 0u; + break; + } + } + let _e1121 = phi_1750_; + phi_1763_ = type_15(type_14(_e1114, _e1121), vec2(_e1085, _e1089), vec2(_e1094, _e1098), _e1103, _e1107); + } else { + phi_1763_ = type_15(type_14(0u, 0u), vec2(0u, 0u), vec2(0u, 0u), 0u, 0u); } - let _e1652 = phi_2229_; - let _e1654 = phi_2252_; - switch bitcast(_e1654.member) { + let _e1125 = phi_1763_; + switch bitcast(_e1125.member.member) { + case 1: { + let _e1163 = abs(_e1077.x); + let _e1165 = (_e1163 % 1f); + if (_e1163 >= 1f) { + phi_5171_ = select(true, false, (_e1165 == 0f)); + } else { + phi_5171_ = true; + } + let _e1169 = phi_5171_; + let _e1170 = select(1f, _e1165, _e1169); + if (select(-1f, 1f, (_e1077.x >= 0f)) > 0f) { + phi_1783_ = _e1170; + } else { + phi_1783_ = (1f - _e1170); + } + let _e1174 = phi_1783_; + phi_1820_ = _e1174; + break; + } + case 2: { + let _e1137 = abs(_e1077.x); + let _e1144 = ((select(select(u32(_e1137), 0u, (_e1137 < 0f)), 4294967295u, (_e1137 > 4294967000f)) % 2u) == 0u); + let _e1146 = (_e1137 % 1f); + if (_e1137 >= 1f) { + phi_5154_ = select(true, false, (_e1146 == 0f)); + } else { + phi_5154_ = true; + } + let _e1150 = phi_5154_; + let _e1151 = select(1f, _e1146, _e1150); + if (select(-1f, 1f, (_e1077.x >= 0f)) > 0f) { + if _e1144 { + phi_1812_ = _e1151; + } else { + phi_1812_ = (1f - _e1151); + } + let _e1158 = phi_1812_; + phi_1818_ = _e1158; + } else { + if _e1144 { + phi_1817_ = (1f - _e1151); + } else { + phi_1817_ = _e1151; + } + let _e1155 = phi_1817_; + phi_1818_ = _e1155; + } + let _e1160 = phi_1818_; + phi_1820_ = _e1160; + break; + } case 0: { - phi_2275_ = false; + if (_e1077.x > 1f) { + phi_5141_ = 0.9999999f; + } else { + phi_5141_ = select(_e1077.x, 0.00000011920929f, (_e1077.x < 0f)); + } + let _e1134 = phi_5141_; + phi_1820_ = _e1134; break; } + default: { + phi_1820_ = f32(); + break; + } + } + let _e1176 = phi_1820_; + switch bitcast(_e1125.member.member_1) { case 1: { - let _e1659 = ((_e130 + 59u) + (_e1654.member_1 * 3u)); - let _e1662 = global.member[_e1659]; - let _e1667 = global.member[(_e1659 + 1u)]; - let _e1672 = global.member[(_e1659 + 2u)]; - local[_e1654.member_1] = vec3(bitcast(_e1662), bitcast(_e1667), bitcast(_e1672)); - phi_2275_ = true; + let _e1214 = abs(_e1077.y); + let _e1216 = (_e1214 % 1f); + if (_e1214 >= 1f) { + phi_5219_ = select(true, false, (_e1216 == 0f)); + } else { + phi_5219_ = true; + } + let _e1220 = phi_5219_; + let _e1221 = select(1f, _e1216, _e1220); + if (select(-1f, 1f, (_e1077.y >= 0f)) > 0f) { + phi_1841_ = _e1221; + } else { + phi_1841_ = (1f - _e1221); + } + let _e1225 = phi_1841_; + phi_1878_ = _e1225; + break; + } + case 2: { + let _e1188 = abs(_e1077.y); + let _e1195 = ((select(select(u32(_e1188), 0u, (_e1188 < 0f)), 4294967295u, (_e1188 > 4294967000f)) % 2u) == 0u); + let _e1197 = (_e1188 % 1f); + if (_e1188 >= 1f) { + phi_5202_ = select(true, false, (_e1197 == 0f)); + } else { + phi_5202_ = true; + } + let _e1201 = phi_5202_; + let _e1202 = select(1f, _e1197, _e1201); + if (select(-1f, 1f, (_e1077.y >= 0f)) > 0f) { + if _e1195 { + phi_1870_ = _e1202; + } else { + phi_1870_ = (1f - _e1202); + } + let _e1209 = phi_1870_; + phi_1876_ = _e1209; + } else { + if _e1195 { + phi_1875_ = (1f - _e1202); + } else { + phi_1875_ = _e1202; + } + let _e1206 = phi_1875_; + phi_1876_ = _e1206; + } + let _e1211 = phi_1876_; + phi_1878_ = _e1211; + break; + } + case 0: { + if (_e1077.y > 1f) { + phi_5189_ = 0.9999999f; + } else { + phi_5189_ = select(_e1077.y, 0.00000011920929f, (_e1077.y < 0f)); + } + let _e1185 = phi_5189_; + phi_1878_ = _e1185; break; } default: { - phi_2275_ = bool(); + phi_1878_ = f32(); break; } } - let _e1677 = phi_2275_; - continue; - continuing { - phi_2228_ = _e1652; - break if !(_e1677); - } - } - let _e1679 = local; - let _e1683 = global.member[(_e130 + 83u)]; - let _e1688 = global.member[(_e130 + 84u)]; - let _e1693 = global.member[(_e130 + 85u)]; - phi_2296_ = type_25(type_23(vec4(bitcast(_e1406), bitcast(_e1411), bitcast(_e1416), bitcast(_e1421)), vec4(bitcast(_e1427), bitcast(_e1432), bitcast(_e1437), bitcast(_e1442)), vec4(bitcast(_e1448), bitcast(_e1453), bitcast(_e1458), bitcast(_e1463)), vec4(bitcast(_e1469), bitcast(_e1474), bitcast(_e1479), bitcast(_e1484))), type_23(vec4(bitcast(_e1491), bitcast(_e1496), bitcast(_e1501), bitcast(_e1506)), vec4(bitcast(_e1512), bitcast(_e1517), bitcast(_e1522), bitcast(_e1527)), vec4(bitcast(_e1533), bitcast(_e1538), bitcast(_e1543), bitcast(_e1548)), vec4(bitcast(_e1554), bitcast(_e1559), bitcast(_e1564), bitcast(_e1569))), vec3(bitcast(_e1576), bitcast(_e1581), bitcast(_e1586)), type_24(_e1679, _e1636, vec3(bitcast(_e1683), bitcast(_e1688), bitcast(_e1693)))); - } else { - phi_2296_ = type_25(type_23(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_23(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), vec3(0f, 0f, 0f), type_24(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f)), vec3(0f, 0f, 0f))); - } - let _e1699 = phi_2296_; - let _e1701 = (_e1699.member_2 - _e126); - let _e1708 = sqrt(fma(_e1701.z, _e1701.z, fma(_e1701.x, _e1701.x, (_e1701.y * _e1701.y)))); - let _e1709 = (_e1708 == 0f); - if _e1709 { - phi_5321_ = vec3(0f, 0f, 0f); - } else { - phi_5321_ = (_e1701 * (1f / _e1708)); - } - let _e1713 = phi_5321_; - let _e1714 = -(_e1713); - let _e1721 = sqrt(fma(_e1349.z, _e1349.z, fma(_e1349.x, _e1349.x, (_e1349.y * _e1349.y)))); - let _e1722 = (_e1721 == 0f); - if _e1722 { - phi_5380_ = vec3(0f, 0f, 0f); - } else { - phi_5380_ = (_e1349 * (1f / _e1721)); - } - let _e1726 = phi_5380_; - let _e1736 = (2f * fma(_e1726.z, _e1714.z, fma(_e1726.x, _e1714.x, (_e1726.y * _e1714.y)))); - let _e1743 = textureSampleLevel(global_14, global_15, (_e1714 - vec3((_e1736 * _e1726.x), (_e1736 * _e1726.y), (_e1736 * _e1726.z))), (_e1373 * 4f)); - if _e1709 { - phi_5454_ = vec3(0f, 0f, 0f); - } else { - phi_5454_ = (_e1701 * (1f / _e1708)); - } - let _e1750 = phi_5454_; - let _e1759 = textureSampleLevel(global_16, global_17, vec2(max(fma(_e1349.z, _e1750.z, fma(_e1349.x, _e1750.x, (_e1349.y * _e1750.y))), 0f), _e1373), 0f); - switch bitcast(_e152) { - case 0: { - if _e289.member_15 { - if _e1722 { - phi_5847_ = vec3(0f, 0f, 0f); + let _e1227 = phi_1878_; + let _e1231 = (_e1176 * f32(_e1125.member_2.x)); + let _e1240 = (_e1227 * f32(_e1125.member_2.y)); + let _e1258 = vec3((f32((select(select(u32(_e1231), 0u, (_e1231 < 0f)), 4294967295u, (_e1231 > 4294967000f)) + _e1125.member_1.x)) / _e474), (f32((select(select(u32(_e1240), 0u, (_e1240 < 0f)), 4294967295u, (_e1240 > 4294967000f)) + _e1125.member_1.y)) / _e475), f32(_e1125.member_3)); + let _e1264 = textureSampleLevel(global_11, global_10, vec2(_e1258.x, _e1258.y), i32(_e1258.z), 0f); + let _e1267 = select(_e1264, vec4(1f, 1f, 1f, 1f), vec4((_e294.member_9 == 4294967295u))); + if _e877 { + phi_1972_ = vec3(0f, 0f, 0f); + phi_1973_ = _e128; + } else { + let _e1271 = fma(_e879.x, 2f, -1f); + let _e1272 = fma(_e879.y, 2f, -1f); + let _e1273 = fma(_e879.z, 2f, -1f); + let _e1278 = sqrt(fma(_e1273, _e1273, fma(_e1271, _e1271, (_e1272 * _e1272)))); + if (_e1278 == 0f) { + phi_5277_ = vec3(0f, 0f, 0f); + } else { + phi_5277_ = (vec3(_e1271, _e1272, _e1273) * (1f / _e1278)); + } + let _e1283 = phi_5277_; + let _e1290 = sqrt(fma(_e129.z, _e129.z, fma(_e129.x, _e129.x, (_e129.y * _e129.y)))); + if (_e1290 == 0f) { + phi_5312_ = vec3(0f, 0f, 0f); + } else { + phi_5312_ = (_e129 * (1f / _e1290)); + } + let _e1295 = phi_5312_; + let _e1302 = sqrt(fma(_e130.z, _e130.z, fma(_e130.x, _e130.x, (_e130.y * _e130.y)))); + if (_e1302 == 0f) { + phi_5347_ = vec3(0f, 0f, 0f); + } else { + phi_5347_ = (_e130 * (1f / _e1302)); + } + let _e1307 = phi_5347_; + let _e1314 = sqrt(fma(_e128.z, _e128.z, fma(_e128.x, _e128.x, (_e128.y * _e128.y)))); + if (_e1314 == 0f) { + phi_5382_ = vec3(0f, 0f, 0f); } else { - phi_5847_ = (_e1349 * (1f / _e1721)); + phi_5382_ = (_e128 * (1f / _e1314)); } - let _e1928 = phi_5847_; - if _e1709 { - phi_5882_ = vec3(0f, 0f, 0f); + let _e1319 = phi_5382_; + let _e1338 = fma(_e1319.x, _e1283.z, fma(_e1295.x, _e1283.x, (_e1307.x * _e1283.y))); + let _e1339 = fma(_e1319.y, _e1283.z, fma(_e1295.y, _e1283.x, (_e1307.y * _e1283.y))); + let _e1340 = fma(_e1319.z, _e1283.z, fma(_e1295.z, _e1283.x, (_e1307.z * _e1283.y))); + let _e1345 = sqrt(fma(_e1340, _e1340, fma(_e1338, _e1338, (_e1339 * _e1339)))); + if (_e1345 == 0f) { + phi_5417_ = vec3(0f, 0f, 0f); } else { - phi_5882_ = (_e1701 * (1f / _e1708)); - } - let _e1932 = phi_5882_; - let _e1935 = global_1.member[0u]; - let _e1938 = global_1.member[1u]; - let _e1941 = global_1.member[2u]; - phi_2363_ = type_14(0u, _e1938); - phi_2366_ = vec3(0f, 0f, 0f); + phi_5417_ = (vec3(_e1338, _e1339, _e1340) * (1f / _e1345)); + } + let _e1350 = phi_5417_; + phi_1972_ = _e1283; + phi_1973_ = _e1350; + } + let _e1352 = phi_1972_; + let _e1354 = phi_1973_; + let _e1358 = (_e491.x * _e294.member_2.x); + let _e1361 = (_e491.y * _e294.member_2.y); + let _e1364 = (_e491.z * _e294.member_2.z); + let _e1369 = (_e1358 * _e125.x); + let _e1371 = (_e1361 * _e125.y); + let _e1373 = (_e1364 * _e125.z); + let _e1378 = (_e685.y * _e294.member_4); + let _e1381 = (_e685.z * _e294.member_3); + let _e1385 = fma(_e294.member_16, (select(_e1070, vec4(1f, 1f, 1f, 1f), vec4((_e294.member_8 == 4294967295u))).x - 1f), 1f); + let _e1391 = (_e1267.x * _e294.member.x); + let _e1393 = (_e1267.y * _e294.member.y); + let _e1395 = (_e1267.z * _e294.member.z); + let _e1400 = textureSampleLevel(global_12, global_13, _e1354, 0f); + if (_e121 >= 86u) { + phi_5449_ = (_e135 <= (_e121 - 86u)); + } else { + phi_5449_ = false; + } + let _e1408 = phi_5449_; + if _e1408 { + let _e1411 = global.member[_e135]; + let _e1416 = global.member[(_e135 + 1u)]; + let _e1421 = global.member[(_e135 + 2u)]; + let _e1426 = global.member[(_e135 + 3u)]; + let _e1432 = global.member[(_e135 + 4u)]; + let _e1437 = global.member[(_e135 + 5u)]; + let _e1442 = global.member[(_e135 + 6u)]; + let _e1447 = global.member[(_e135 + 7u)]; + let _e1453 = global.member[(_e135 + 8u)]; + let _e1458 = global.member[(_e135 + 9u)]; + let _e1463 = global.member[(_e135 + 10u)]; + let _e1468 = global.member[(_e135 + 11u)]; + let _e1474 = global.member[(_e135 + 12u)]; + let _e1479 = global.member[(_e135 + 13u)]; + let _e1484 = global.member[(_e135 + 14u)]; + let _e1489 = global.member[(_e135 + 15u)]; + let _e1496 = global.member[(_e135 + 16u)]; + let _e1501 = global.member[(_e135 + 17u)]; + let _e1506 = global.member[(_e135 + 18u)]; + let _e1511 = global.member[(_e135 + 19u)]; + let _e1517 = global.member[(_e135 + 20u)]; + let _e1522 = global.member[(_e135 + 21u)]; + let _e1527 = global.member[(_e135 + 22u)]; + let _e1532 = global.member[(_e135 + 23u)]; + let _e1538 = global.member[(_e135 + 24u)]; + let _e1543 = global.member[(_e135 + 25u)]; + let _e1548 = global.member[(_e135 + 26u)]; + let _e1553 = global.member[(_e135 + 27u)]; + let _e1559 = global.member[(_e135 + 28u)]; + let _e1564 = global.member[(_e135 + 29u)]; + let _e1569 = global.member[(_e135 + 30u)]; + let _e1574 = global.member[(_e135 + 31u)]; + let _e1581 = global.member[(_e135 + 32u)]; + let _e1586 = global.member[(_e135 + 33u)]; + let _e1591 = global.member[(_e135 + 34u)]; + local_1 = array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f)); + phi_2180_ = type_14(0u, 6u); loop { - let _e1944 = phi_2363_; - let _e1946 = phi_2366_; - local_2 = _e1946; - local_3 = _e1946; - local_4 = _e1946; - if (_e1944.member < _e1944.member_1) { - phi_2364_ = type_14((_e1944.member + 1u), _e1944.member_1); - phi_2389_ = type_14(1u, _e1944.member); + let _e1596 = phi_2180_; + if (_e1596.member < _e1596.member_1) { + phi_2181_ = type_14((_e1596.member + 1u), _e1596.member_1); + phi_2204_ = type_14(1u, _e1596.member); } else { - phi_2364_ = _e1944; - phi_2389_ = type_14(0u, type_14().member_1); + phi_2181_ = _e1596; + phi_2204_ = type_14(0u, type_14().member_1); } - let _e1959 = phi_2364_; - let _e1961 = phi_2389_; - switch bitcast(_e1961.member) { + let _e1609 = phi_2181_; + let _e1611 = phi_2204_; + switch bitcast(_e1611.member) { case 0: { - phi_2367_ = vec3(); - phi_3682_ = false; + phi_2231_ = false; break; } case 1: { - if (_e1961.member_1 >= _e1938) { - phi_5908_ = 4294967295u; - } else { - phi_5908_ = (_e1935 + _e1961.member_1); - } - let _e1968 = phi_5908_; - if (_e118 >= 1u) { - phi_5927_ = (_e1968 <= (_e118 - 1u)); - } else { - phi_5927_ = false; - } - let _e1973 = phi_5927_; - if _e1973 { - let _e1976 = global_1.member[_e1968]; - phi_2406_ = _e1976; + let _e1616 = ((_e135 + 35u) + (_e1611.member_1 * 4u)); + let _e1619 = global.member[_e1616]; + let _e1624 = global.member[(_e1616 + 1u)]; + let _e1629 = global.member[(_e1616 + 2u)]; + let _e1634 = global.member[(_e1616 + 3u)]; + local_1[_e1611.member_1] = vec4(bitcast(_e1619), bitcast(_e1624), bitcast(_e1629), bitcast(_e1634)); + phi_2231_ = true; + break; + } + default: { + phi_2231_ = bool(); + break; + } + } + let _e1639 = phi_2231_; + continue; + continuing { + phi_2180_ = _e1609; + break if !(_e1639); + } + } + let _e1641 = local_1; + local = array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)); + phi_2237_ = type_14(0u, 8u); + loop { + let _e1644 = phi_2237_; + if (_e1644.member < _e1644.member_1) { + phi_2238_ = type_14((_e1644.member + 1u), _e1644.member_1); + phi_2261_ = type_14(1u, _e1644.member); + } else { + phi_2238_ = _e1644; + phi_2261_ = type_14(0u, type_14().member_1); + } + let _e1657 = phi_2238_; + let _e1659 = phi_2261_; + switch bitcast(_e1659.member) { + case 0: { + phi_2284_ = false; + break; + } + case 1: { + let _e1664 = ((_e135 + 59u) + (_e1659.member_1 * 3u)); + let _e1667 = global.member[_e1664]; + let _e1672 = global.member[(_e1664 + 1u)]; + let _e1677 = global.member[(_e1664 + 2u)]; + local[_e1659.member_1] = vec3(bitcast(_e1667), bitcast(_e1672), bitcast(_e1677)); + phi_2284_ = true; + break; + } + default: { + phi_2284_ = bool(); + break; + } + } + let _e1682 = phi_2284_; + continue; + continuing { + phi_2237_ = _e1657; + break if !(_e1682); + } + } + let _e1684 = local; + let _e1688 = global.member[(_e135 + 83u)]; + let _e1693 = global.member[(_e135 + 84u)]; + let _e1698 = global.member[(_e135 + 85u)]; + phi_2305_ = type_25(type_23(vec4(bitcast(_e1411), bitcast(_e1416), bitcast(_e1421), bitcast(_e1426)), vec4(bitcast(_e1432), bitcast(_e1437), bitcast(_e1442), bitcast(_e1447)), vec4(bitcast(_e1453), bitcast(_e1458), bitcast(_e1463), bitcast(_e1468)), vec4(bitcast(_e1474), bitcast(_e1479), bitcast(_e1484), bitcast(_e1489))), type_23(vec4(bitcast(_e1496), bitcast(_e1501), bitcast(_e1506), bitcast(_e1511)), vec4(bitcast(_e1517), bitcast(_e1522), bitcast(_e1527), bitcast(_e1532)), vec4(bitcast(_e1538), bitcast(_e1543), bitcast(_e1548), bitcast(_e1553)), vec4(bitcast(_e1559), bitcast(_e1564), bitcast(_e1569), bitcast(_e1574))), vec3(bitcast(_e1581), bitcast(_e1586), bitcast(_e1591)), type_24(_e1684, _e1641, vec3(bitcast(_e1688), bitcast(_e1693), bitcast(_e1698)))); + } else { + phi_2305_ = type_25(type_23(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_23(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), vec3(0f, 0f, 0f), type_24(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f)), vec3(0f, 0f, 0f))); + } + let _e1704 = phi_2305_; + let _e1706 = (_e1704.member_2 - _e131); + let _e1713 = sqrt(fma(_e1706.z, _e1706.z, fma(_e1706.x, _e1706.x, (_e1706.y * _e1706.y)))); + let _e1714 = (_e1713 == 0f); + if _e1714 { + phi_5521_ = vec3(0f, 0f, 0f); + } else { + phi_5521_ = (_e1706 * (1f / _e1713)); + } + let _e1718 = phi_5521_; + let _e1719 = -(_e1718); + let _e1726 = sqrt(fma(_e1354.z, _e1354.z, fma(_e1354.x, _e1354.x, (_e1354.y * _e1354.y)))); + let _e1727 = (_e1726 == 0f); + if _e1727 { + phi_5580_ = vec3(0f, 0f, 0f); + } else { + phi_5580_ = (_e1354 * (1f / _e1726)); + } + let _e1731 = phi_5580_; + let _e1741 = (2f * fma(_e1731.z, _e1719.z, fma(_e1731.x, _e1719.x, (_e1731.y * _e1719.y)))); + let _e1748 = textureSampleLevel(global_14, global_15, (_e1719 - vec3((_e1741 * _e1731.x), (_e1741 * _e1731.y), (_e1741 * _e1731.z))), (_e1378 * 4f)); + if _e1714 { + phi_5654_ = vec3(0f, 0f, 0f); + } else { + phi_5654_ = (_e1706 * (1f / _e1713)); + } + let _e1755 = phi_5654_; + let _e1764 = textureSampleLevel(global_16, global_17, vec2(max(fma(_e1354.z, _e1755.z, fma(_e1354.x, _e1755.x, (_e1354.y * _e1755.y))), 0f), _e1378), 0f); + switch bitcast(_e157) { + case 0: { + if _e294.member_15 { + if _e1727 { + phi_6047_ = vec3(0f, 0f, 0f); + } else { + phi_6047_ = (_e1354 * (1f / _e1726)); + } + let _e1933 = phi_6047_; + if _e1714 { + phi_6082_ = vec3(0f, 0f, 0f); + } else { + phi_6082_ = (_e1706 * (1f / _e1713)); + } + let _e1937 = phi_6082_; + let _e1940 = global_1.member[0u]; + let _e1943 = global_1.member[1u]; + let _e1946 = global_1.member[2u]; + phi_7183_ = false; + phi_2372_ = type_14(0u, _e1943); + phi_2375_ = vec3(0f, 0f, 0f); + loop { + let _e1949 = phi_7183_; + let _e1951 = phi_2372_; + let _e1953 = phi_2375_; + local_3 = _e1953; + local_4 = _e1953; + local_5 = _e1953; + if (_e1951.member < _e1951.member_1) { + phi_2373_ = type_14((_e1951.member + 1u), _e1951.member_1); + phi_2398_ = type_14(1u, _e1951.member); } else { - phi_2406_ = 4294967295u; + phi_2373_ = _e1951; + phi_2398_ = type_14(0u, type_14().member_1); } - let _e1978 = phi_2406_; - let _e1979 = (_e1978 == 4294967295u); - if _e1979 { - phi_3680_ = vec3(); - } else { - if (_e118 >= 4u) { - phi_5959_ = (_e1978 <= (_e118 - 4u)); - } else { - phi_5959_ = false; + let _e1966 = phi_2373_; + let _e1968 = phi_2398_; + switch bitcast(_e1968.member) { + case 0: { + phi_7239_ = _e1949; + phi_2376_ = vec3(); + phi_3862_ = false; + break; } - let _e1984 = phi_5959_; - if _e1984 { - let _e1987 = global_1.member[_e1978]; - switch bitcast(_e1987) { - case 0: { - phi_2423_ = 0u; - break; - } - case 1: { - phi_2423_ = 1u; - break; - } - case 2: { - phi_2423_ = 2u; - break; - } - default: { - phi_2423_ = 0u; - break; - } + case 1: { + if (_e1968.member_1 >= _e1943) { + phi_6108_ = 4294967295u; + } else { + phi_6108_ = (_e1940 + _e1968.member_1); } - let _e1990 = phi_2423_; - let _e1994 = global_1.member[(_e1978 + 1u)]; - let _e1998 = global_1.member[(_e1978 + 2u)]; - let _e2002 = global_1.member[(_e1978 + 3u)]; - phi_2437_ = type_30(_e1990, _e1994, _e1998, _e2002); - } else { - phi_2437_ = type_30(0u, 4294967295u, 4294967295u, 4294967295u); - } - let _e2005 = phi_2437_; - if (_e118 >= 10u) { - phi_5991_ = (_e2005.member_2 <= (_e118 - 10u)); - } else { - phi_5991_ = false; - } - let _e2011 = phi_5991_; - if _e2011 { - let _e2014 = global_1.member[_e2005.member_2]; - let _e2019 = global_1.member[(_e2005.member_2 + 1u)]; - let _e2024 = global_1.member[(_e2005.member_2 + 2u)]; - let _e2030 = global_1.member[(_e2005.member_2 + 3u)]; - let _e2035 = global_1.member[(_e2005.member_2 + 4u)]; - let _e2040 = global_1.member[(_e2005.member_2 + 5u)]; - let _e2045 = global_1.member[(_e2005.member_2 + 6u)]; - let _e2051 = global_1.member[(_e2005.member_2 + 7u)]; - let _e2056 = global_1.member[(_e2005.member_2 + 8u)]; - let _e2061 = global_1.member[(_e2005.member_2 + 9u)]; - phi_2487_ = type_31(vec3(bitcast(_e2014), bitcast(_e2019), bitcast(_e2024)), vec4(bitcast(_e2030), bitcast(_e2035), bitcast(_e2040), bitcast(_e2045)), vec3(bitcast(_e2051), bitcast(_e2056), bitcast(_e2061))); - } else { - phi_2487_ = type_31(vec3(0f, 0f, 0f), vec4(0f, 0f, 0f, 1f), vec3(1f, 1f, 1f)); - } - let _e2066 = phi_2487_; - let _e2074 = (_e2066.member_1.x + _e2066.member_1.x); - let _e2075 = (_e2066.member_1.y + _e2066.member_1.y); - let _e2076 = (_e2066.member_1.z + _e2066.member_1.z); - let _e2078 = (_e2066.member_1.z * _e2076); - let _e2079 = (_e2066.member_1.w * _e2074); - let _e2080 = (_e2066.member_1.w * _e2075); - let _e2081 = (_e2066.member_1.w * _e2076); - let _e2101 = (vec4((1f - fma(_e2066.member_1.y, _e2075, _e2078)), fma(_e2066.member_1.x, _e2075, _e2081), fma(_e2066.member_1.x, _e2076, -(_e2080)), 0f) * _e2066.member_2.x); - let _e2103 = (vec4(fma(_e2066.member_1.x, _e2075, -(_e2081)), (1f - fma(_e2066.member_1.x, _e2074, _e2078)), fma(_e2066.member_1.y, _e2076, _e2079), 0f) * _e2066.member_2.y); - let _e2105 = (vec4(fma(_e2066.member_1.x, _e2076, _e2080), fma(_e2066.member_1.y, _e2076, -(_e2079)), (1f - fma(_e2066.member_1.x, _e2074, (_e2066.member_1.y * _e2075))), 0f) * _e2066.member_2.z); - switch bitcast(_e2005.member) { - case 0: { - if (_e118 >= 8u) { - phi_6457_ = (_e2005.member_1 <= (_e118 - 8u)); - } else { - phi_6457_ = false; - } - let _e2603 = phi_6457_; - if _e2603 { - let _e2606 = global_1.member[_e2005.member_1]; - let _e2611 = global_1.member[(_e2005.member_1 + 1u)]; - let _e2616 = global_1.member[(_e2005.member_1 + 2u)]; - let _e2622 = global_1.member[(_e2005.member_1 + 3u)]; - let _e2627 = global_1.member[(_e2005.member_1 + 4u)]; - let _e2632 = global_1.member[(_e2005.member_1 + 5u)]; - let _e2637 = global_1.member[(_e2005.member_1 + 6u)]; - let _e2643 = global_1.member[(_e2005.member_1 + 7u)]; - phi_2535_ = type_34(vec3(bitcast(_e2606), bitcast(_e2611), bitcast(_e2616)), vec4(bitcast(_e2622), bitcast(_e2627), bitcast(_e2632), bitcast(_e2637)), bitcast(_e2643)); - } else { - phi_2535_ = type_34(vec3(0f, -1f, 0f), vec4(1f, 1f, 1f, 1f), 1f); - } - let _e2647 = phi_2535_; - let _e2669 = fma(_e2105.x, _e2647.member.z, fma(_e2103.x, _e2647.member.y, (_e2101.x * _e2647.member.x))); - let _e2670 = fma(_e2105.y, _e2647.member.z, fma(_e2103.y, _e2647.member.y, (_e2101.y * _e2647.member.x))); - let _e2671 = fma(_e2105.z, _e2647.member.z, fma(_e2103.z, _e2647.member.y, (_e2101.z * _e2647.member.x))); - let _e2676 = sqrt(fma(_e2671, _e2671, fma(_e2669, _e2669, (_e2670 * _e2670)))); - if (_e2676 == 0f) { - phi_6504_ = vec3(0f, 0f, 0f); - } else { - phi_6504_ = (vec3(_e2669, _e2670, _e2671) * (1f / _e2676)); - } - let _e2681 = phi_6504_; - let _e2683 = -(_e2681.x); - let _e2685 = -(_e2681.y); - let _e2687 = -(_e2681.z); - let _e2688 = -(_e2681); - let _e2690 = fma(-(_e680.z), _e289.member_3, 1f); - let _e2694 = fma(0.4f, _e2690, (_e1364 * _e1376)); - let _e2695 = fma(0.4f, _e2690, (_e1366 * _e1376)); - let _e2696 = fma(0.4f, _e2690, (_e1368 * _e1376)); - let _e2704 = (_e1932 + vec3(_e2683, _e2685, _e2687)); - let _e2711 = sqrt(fma(_e2704.z, _e2704.z, fma(_e2704.x, _e2704.x, (_e2704.y * _e2704.y)))); - if (_e2711 == 0f) { - phi_6539_ = vec3(0f, 0f, 0f); - } else { - phi_6539_ = (_e2704 * (1f / _e2711)); + let _e1975 = phi_6108_; + if (_e123 >= 1u) { + phi_6127_ = (_e1975 <= (_e123 - 1u)); + } else { + phi_6127_ = false; + } + let _e1980 = phi_6127_; + if _e1980 { + let _e1983 = global_1.member[_e1975]; + phi_2415_ = _e1983; + } else { + phi_2415_ = 4294967295u; + } + let _e1985 = phi_2415_; + if (_e123 >= 4u) { + phi_6151_ = (_e1985 <= (_e123 - 4u)); + } else { + phi_6151_ = false; + } + let _e1990 = phi_6151_; + if _e1990 { + let _e1993 = global_1.member[_e1985]; + switch bitcast(_e1993) { + case 0: { + phi_2427_ = 0u; + break; + } + case 1: { + phi_2427_ = 1u; + break; + } + case 2: { + phi_2427_ = 2u; + break; + } + default: { + phi_2427_ = 0u; + break; + } } - let _e2716 = phi_6539_; - let _e2717 = (_e1373 * _e1373); - let _e2728 = max(fma(_e1928.z, _e2716.z, fma(_e1928.x, _e2716.x, (_e1928.y * _e2716.y))), 0f); - let _e2741 = max(fma(_e1928.z, _e1932.z, fma(_e1928.x, _e1932.x, (_e1928.y * _e1932.y))), 0f); - let _e2747 = fma(_e1928.z, _e2688.z, fma(_e1928.x, _e2688.x, (_e1928.y * _e2688.y))); - let _e2748 = max(_e2747, 0f); - let _e2749 = fma(_e680.y, _e289.member_4, 1f); - let _e2750 = (_e2749 * _e2749); - let _e2751 = (_e2750 * 0.125f); - let _e2753 = fma(-(_e2750), 0.125f, 1f); - let _e2766 = (1f - max(fma(_e2716.z, _e1932.z, fma(_e2716.x, _e1932.x, (_e2716.y * _e1932.y))), 0f)); - let _e2768 = select(_e2766, 0f, (_e2766 < 0f)); - let _e2771 = pow(select(_e2768, 1f, (_e2768 > 1f)), 5f); - let _e2772 = fma((1f - _e2694), _e2771, _e2694); - let _e2773 = fma((1f - _e2695), _e2771, _e2695); - let _e2774 = fma((1f - _e2696), _e2771, _e2696); - let _e2781 = (((_e2717 * _e2717) / (pow(fma((_e2728 * _e2728), fma(_e2717, _e2717, -1f), 1f), 2f) * 3.1415927f)) * ((_e2741 / fma(_e2741, _e2753, _e2751)) * (_e2748 / fma(_e2748, _e2753, _e2751)))); - let _e2788 = max(fma(_e1928.z, _e2687, fma(_e1928.x, _e2683, (_e1928.y * _e2685))), 0f); - let _e2790 = fma((4f * _e2741), _e2788, 0.0001f); - if ((_e2005.member_3 == 4294967295u) != true) { - let _e2811 = global_1.member[_e2005.member_3]; - let _e2815 = global_1.member[(_e2005.member_3 + 1u)]; - let _e2819 = global_1.member[(_e2005.member_3 + 2u)]; - let _e2823 = global_1.member[(_e2005.member_3 + 3u)]; - let _e2827 = global_1.member[(_e2005.member_3 + 4u)]; - let _e2832 = global_1.member[(_e2005.member_3 + 5u)]; - let _e2838 = global_1.member[select(_e2819, 4294967295u, (0u >= _e2823))]; - let _e2841 = global_1.member[_e2838]; - let _e2845 = global_1.member[(_e2838 + 1u)]; - let _e2849 = global_1.member[(_e2838 + 2u)]; - let _e2853 = global_1.member[(_e2838 + 3u)]; - let _e2857 = global_1.member[(_e2838 + 4u)]; - let _e2861 = global_1.member[(_e2838 + 6u)]; - switch bitcast(_e2861) { - case 0: { - phi_2772_ = 0u; - break; - } - case 1: { - phi_2772_ = 1u; - break; - } - case 2: { - phi_2772_ = 2u; - break; - } - default: { - phi_2772_ = 0u; - break; - } + let _e1996 = phi_2427_; + let _e2000 = global_1.member[(_e1985 + 1u)]; + let _e2004 = global_1.member[(_e1985 + 2u)]; + let _e2008 = global_1.member[(_e1985 + 3u)]; + phi_2441_ = type_30(_e1996, _e2000, _e2004, _e2008); + } else { + phi_2441_ = type_30(0u, 4294967295u, 4294967295u, 4294967295u); + } + let _e2011 = phi_2441_; + if (_e123 >= 10u) { + phi_6183_ = (_e2011.member_2 <= (_e123 - 10u)); + } else { + phi_6183_ = false; + } + let _e2017 = phi_6183_; + if _e2017 { + let _e2020 = global_1.member[_e2011.member_2]; + let _e2025 = global_1.member[(_e2011.member_2 + 1u)]; + let _e2030 = global_1.member[(_e2011.member_2 + 2u)]; + let _e2036 = global_1.member[(_e2011.member_2 + 3u)]; + let _e2041 = global_1.member[(_e2011.member_2 + 4u)]; + let _e2046 = global_1.member[(_e2011.member_2 + 5u)]; + let _e2051 = global_1.member[(_e2011.member_2 + 6u)]; + let _e2057 = global_1.member[(_e2011.member_2 + 7u)]; + let _e2062 = global_1.member[(_e2011.member_2 + 8u)]; + let _e2067 = global_1.member[(_e2011.member_2 + 9u)]; + phi_2491_ = type_31(vec3(bitcast(_e2020), bitcast(_e2025), bitcast(_e2030)), vec4(bitcast(_e2036), bitcast(_e2041), bitcast(_e2046), bitcast(_e2051)), vec3(bitcast(_e2057), bitcast(_e2062), bitcast(_e2067))); + } else { + phi_2491_ = type_31(vec3(0f, 0f, 0f), vec4(0f, 0f, 0f, 1f), vec3(1f, 1f, 1f)); + } + let _e2072 = phi_2491_; + let _e2080 = (_e2072.member_1.x + _e2072.member_1.x); + let _e2081 = (_e2072.member_1.y + _e2072.member_1.y); + let _e2082 = (_e2072.member_1.z + _e2072.member_1.z); + let _e2084 = (_e2072.member_1.z * _e2082); + let _e2085 = (_e2072.member_1.w * _e2080); + let _e2086 = (_e2072.member_1.w * _e2081); + let _e2087 = (_e2072.member_1.w * _e2082); + let _e2107 = (vec4((1f - fma(_e2072.member_1.y, _e2081, _e2084)), fma(_e2072.member_1.x, _e2081, _e2087), fma(_e2072.member_1.x, _e2082, -(_e2086)), 0f) * _e2072.member_2.x); + let _e2109 = (vec4(fma(_e2072.member_1.x, _e2081, -(_e2087)), (1f - fma(_e2072.member_1.x, _e2080, _e2084)), fma(_e2072.member_1.y, _e2082, _e2085), 0f) * _e2072.member_2.y); + let _e2111 = (vec4(fma(_e2072.member_1.x, _e2082, _e2086), fma(_e2072.member_1.y, _e2082, -(_e2085)), (1f - fma(_e2072.member_1.x, _e2080, (_e2072.member_1.y * _e2081))), 0f) * _e2072.member_2.z); + switch bitcast(_e2011.member) { + case 0: { + if (_e123 >= 8u) { + phi_6649_ = (_e2011.member_1 <= (_e123 - 8u)); + } else { + phi_6649_ = false; } - let _e2864 = phi_2772_; - let _e2868 = global_1.member[(_e2838 + 7u)]; - switch bitcast(_e2868) { - case 0: { - phi_2781_ = 0u; - break; - } - case 1: { - phi_2781_ = 1u; - break; - } - case 2: { - phi_2781_ = 2u; - break; - } - default: { - phi_2781_ = 0u; - break; - } + let _e2609 = phi_6649_; + if _e2609 { + let _e2612 = global_1.member[_e2011.member_1]; + let _e2617 = global_1.member[(_e2011.member_1 + 1u)]; + let _e2622 = global_1.member[(_e2011.member_1 + 2u)]; + let _e2628 = global_1.member[(_e2011.member_1 + 3u)]; + let _e2633 = global_1.member[(_e2011.member_1 + 4u)]; + let _e2638 = global_1.member[(_e2011.member_1 + 5u)]; + let _e2643 = global_1.member[(_e2011.member_1 + 6u)]; + let _e2649 = global_1.member[(_e2011.member_1 + 7u)]; + phi_2539_ = type_34(vec3(bitcast(_e2612), bitcast(_e2617), bitcast(_e2622)), vec4(bitcast(_e2628), bitcast(_e2633), bitcast(_e2638), bitcast(_e2643)), bitcast(_e2649)); + } else { + phi_2539_ = type_34(vec3(0f, -1f, 0f), vec4(1f, 1f, 1f, 1f), 1f); } - let _e2871 = phi_2781_; - let _e2874 = global_1.member[_e1941]; - let _e2878 = global_1.member[(_e1941 + 1u)]; - let _e2880 = select(_e2811, 4294967295u, (0u >= _e2815)); - let _e2883 = global_1.member[_e2880]; - let _e2888 = global_1.member[(_e2880 + 1u)]; - let _e2893 = global_1.member[(_e2880 + 2u)]; - let _e2898 = global_1.member[(_e2880 + 3u)]; - let _e2903 = global_1.member[(_e2880 + 4u)]; - let _e2908 = global_1.member[(_e2880 + 5u)]; - let _e2913 = global_1.member[(_e2880 + 6u)]; - let _e2918 = global_1.member[(_e2880 + 7u)]; - let _e2923 = global_1.member[(_e2880 + 8u)]; - let _e2928 = global_1.member[(_e2880 + 9u)]; - let _e2933 = global_1.member[(_e2880 + 10u)]; - let _e2938 = global_1.member[(_e2880 + 11u)]; - let _e2943 = global_1.member[(_e2880 + 12u)]; - let _e2948 = global_1.member[(_e2880 + 13u)]; - let _e2953 = global_1.member[(_e2880 + 14u)]; - let _e2958 = global_1.member[(_e2880 + 15u)]; - let _e2978 = (bitcast(_e2958) + fma(bitcast(_e2938), _e126.z, fma(bitcast(_e2918), _e126.y, (bitcast(_e2898) * _e126.x)))); - let _e2984 = ((((bitcast(_e2943) + fma(bitcast(_e2923), _e126.z, fma(bitcast(_e2903), _e126.y, (bitcast(_e2883) * _e126.x)))) / _e2978) + 1f) * 0.5f); - let _e2985 = (fma(((bitcast(_e2948) + fma(bitcast(_e2928), _e126.z, fma(bitcast(_e2908), _e126.y, (bitcast(_e2888) * _e126.x)))) / _e2978), -1f, 1f) * 0.5f); - switch bitcast(_e2864) { - case 1: { - let _e3020 = abs(_e2984); - let _e3022 = (_e3020 % 1f); - if (_e3020 >= 1f) { - phi_6675_ = select(true, false, (_e3022 == 0f)); - } else { - phi_6675_ = true; + let _e2653 = phi_2539_; + let _e2675 = fma(_e2111.x, _e2653.member.z, fma(_e2109.x, _e2653.member.y, (_e2107.x * _e2653.member.x))); + let _e2676 = fma(_e2111.y, _e2653.member.z, fma(_e2109.y, _e2653.member.y, (_e2107.y * _e2653.member.x))); + let _e2677 = fma(_e2111.z, _e2653.member.z, fma(_e2109.z, _e2653.member.y, (_e2107.z * _e2653.member.x))); + let _e2682 = sqrt(fma(_e2677, _e2677, fma(_e2675, _e2675, (_e2676 * _e2676)))); + if (_e2682 == 0f) { + phi_6696_ = vec3(0f, 0f, 0f); + } else { + phi_6696_ = (vec3(_e2675, _e2676, _e2677) * (1f / _e2682)); + } + let _e2687 = phi_6696_; + let _e2689 = -(_e2687.x); + let _e2691 = -(_e2687.y); + let _e2693 = -(_e2687.z); + let _e2694 = -(_e2687); + let _e2696 = fma(-(_e685.z), _e294.member_3, 1f); + let _e2700 = fma(0.4f, _e2696, (_e1369 * _e1381)); + let _e2701 = fma(0.4f, _e2696, (_e1371 * _e1381)); + let _e2702 = fma(0.4f, _e2696, (_e1373 * _e1381)); + let _e2710 = (_e1937 + vec3(_e2689, _e2691, _e2693)); + let _e2717 = sqrt(fma(_e2710.z, _e2710.z, fma(_e2710.x, _e2710.x, (_e2710.y * _e2710.y)))); + if (_e2717 == 0f) { + phi_6731_ = vec3(0f, 0f, 0f); + } else { + phi_6731_ = (_e2710 * (1f / _e2717)); + } + let _e2722 = phi_6731_; + let _e2723 = (_e1378 * _e1378); + let _e2734 = max(fma(_e1933.z, _e2722.z, fma(_e1933.x, _e2722.x, (_e1933.y * _e2722.y))), 0f); + let _e2747 = max(fma(_e1933.z, _e1937.z, fma(_e1933.x, _e1937.x, (_e1933.y * _e1937.y))), 0f); + let _e2753 = fma(_e1933.z, _e2694.z, fma(_e1933.x, _e2694.x, (_e1933.y * _e2694.y))); + let _e2754 = max(_e2753, 0f); + let _e2755 = fma(_e685.y, _e294.member_4, 1f); + let _e2756 = (_e2755 * _e2755); + let _e2757 = (_e2756 * 0.125f); + let _e2759 = fma(-(_e2756), 0.125f, 1f); + let _e2772 = (1f - max(fma(_e2722.z, _e1937.z, fma(_e2722.x, _e1937.x, (_e2722.y * _e1937.y))), 0f)); + let _e2774 = select(_e2772, 0f, (_e2772 < 0f)); + let _e2777 = pow(select(_e2774, 1f, (_e2774 > 1f)), 5f); + let _e2778 = fma((1f - _e2700), _e2777, _e2700); + let _e2779 = fma((1f - _e2701), _e2777, _e2701); + let _e2780 = fma((1f - _e2702), _e2777, _e2702); + let _e2787 = (((_e2723 * _e2723) / (pow(fma((_e2734 * _e2734), fma(_e2723, _e2723, -1f), 1f), 2f) * 3.1415927f)) * ((_e2747 / fma(_e2747, _e2759, _e2757)) * (_e2754 / fma(_e2754, _e2759, _e2757)))); + let _e2794 = max(fma(_e1933.z, _e2693, fma(_e1933.x, _e2689, (_e1933.y * _e2691))), 0f); + let _e2796 = fma((4f * _e2747), _e2794, 0.0001f); + if ((_e2011.member_3 == 4294967295u) != true) { + let _e2817 = global_1.member[_e2011.member_3]; + let _e2821 = global_1.member[(_e2011.member_3 + 1u)]; + let _e2825 = global_1.member[(_e2011.member_3 + 2u)]; + let _e2829 = global_1.member[(_e2011.member_3 + 3u)]; + let _e2833 = global_1.member[(_e2011.member_3 + 4u)]; + let _e2838 = global_1.member[(_e2011.member_3 + 5u)]; + let _e2843 = global_1.member[(_e2011.member_3 + 6u)]; + let _e2848 = global_1.member[select(_e2825, 4294967295u, (0u >= _e2829))]; + let _e2851 = global_1.member[_e2848]; + let _e2855 = global_1.member[(_e2848 + 1u)]; + let _e2859 = global_1.member[(_e2848 + 2u)]; + let _e2863 = global_1.member[(_e2848 + 3u)]; + let _e2867 = global_1.member[(_e2848 + 4u)]; + let _e2871 = global_1.member[(_e2848 + 6u)]; + switch bitcast(_e2871) { + case 0: { + phi_2780_ = 0u; + break; } - let _e3026 = phi_6675_; - let _e3027 = select(1f, _e3022, _e3026); - if (select(-1f, 1f, (_e2984 >= 0f)) > 0f) { - phi_2953_ = _e3027; - } else { - phi_2953_ = (1f - _e3027); + case 1: { + phi_2780_ = 1u; + break; } - let _e3031 = phi_2953_; - phi_2990_ = _e3031; - break; - } - case 2: { - let _e2994 = abs(_e2984); - let _e3001 = ((select(select(u32(_e2994), 0u, (_e2994 < 0f)), 4294967295u, (_e2994 > 4294967000f)) % 2u) == 0u); - let _e3003 = (_e2994 % 1f); - if (_e2994 >= 1f) { - phi_6658_ = select(true, false, (_e3003 == 0f)); - } else { - phi_6658_ = true; + case 2: { + phi_2780_ = 2u; + break; } - let _e3007 = phi_6658_; - let _e3008 = select(1f, _e3003, _e3007); - if (select(-1f, 1f, (_e2984 >= 0f)) > 0f) { - if _e3001 { - phi_2982_ = _e3008; - } else { - phi_2982_ = (1f - _e3008); - } - let _e3015 = phi_2982_; - phi_2988_ = _e3015; - } else { - if _e3001 { - phi_2987_ = (1f - _e3008); - } else { - phi_2987_ = _e3008; - } - let _e3012 = phi_2987_; - phi_2988_ = _e3012; + default: { + phi_2780_ = 0u; + break; } - let _e3017 = phi_2988_; - phi_2990_ = _e3017; - break; } - case 0: { - if (_e2984 > 1f) { - phi_6645_ = 0.9999999f; - } else { - phi_6645_ = select(_e2984, 0.00000011920929f, (_e2984 < 0f)); + let _e2874 = phi_2780_; + let _e2878 = global_1.member[(_e2848 + 7u)]; + switch bitcast(_e2878) { + case 0: { + phi_2789_ = 0u; + break; } - let _e2991 = phi_6645_; - phi_2990_ = _e2991; - break; - } - default: { - phi_2990_ = f32(); - break; - } - } - let _e3033 = phi_2990_; - switch bitcast(_e2871) { - case 1: { - let _e3068 = abs(_e2985); - let _e3070 = (_e3068 % 1f); - if (_e3068 >= 1f) { - phi_6723_ = select(true, false, (_e3070 == 0f)); - } else { - phi_6723_ = true; + case 1: { + phi_2789_ = 1u; + break; } - let _e3074 = phi_6723_; - let _e3075 = select(1f, _e3070, _e3074); - if (select(-1f, 1f, (_e2985 >= 0f)) > 0f) { - phi_3009_ = _e3075; - } else { - phi_3009_ = (1f - _e3075); + case 2: { + phi_2789_ = 2u; + break; + } + default: { + phi_2789_ = 0u; + break; } - let _e3079 = phi_3009_; - phi_3046_ = _e3079; - break; } - case 2: { - let _e3042 = abs(_e2985); - let _e3049 = ((select(select(u32(_e3042), 0u, (_e3042 < 0f)), 4294967295u, (_e3042 > 4294967000f)) % 2u) == 0u); - let _e3051 = (_e3042 % 1f); - if (_e3042 >= 1f) { - phi_6706_ = select(true, false, (_e3051 == 0f)); + let _e2881 = phi_2789_; + let _e2884 = global_1.member[_e1946]; + let _e2888 = global_1.member[(_e1946 + 1u)]; + let _e2890 = select(_e2817, 4294967295u, (0u >= _e2821)); + let _e2893 = global_1.member[_e2890]; + let _e2898 = global_1.member[(_e2890 + 1u)]; + let _e2903 = global_1.member[(_e2890 + 2u)]; + let _e2908 = global_1.member[(_e2890 + 3u)]; + let _e2913 = global_1.member[(_e2890 + 4u)]; + let _e2918 = global_1.member[(_e2890 + 5u)]; + let _e2923 = global_1.member[(_e2890 + 6u)]; + let _e2928 = global_1.member[(_e2890 + 7u)]; + let _e2933 = global_1.member[(_e2890 + 8u)]; + let _e2938 = global_1.member[(_e2890 + 9u)]; + let _e2943 = global_1.member[(_e2890 + 10u)]; + let _e2948 = global_1.member[(_e2890 + 11u)]; + let _e2953 = global_1.member[(_e2890 + 12u)]; + let _e2958 = global_1.member[(_e2890 + 13u)]; + let _e2963 = global_1.member[(_e2890 + 14u)]; + let _e2968 = global_1.member[(_e2890 + 15u)]; + let _e2988 = (bitcast(_e2968) + fma(bitcast(_e2948), _e131.z, fma(bitcast(_e2928), _e131.y, (bitcast(_e2908) * _e131.x)))); + let _e2989 = ((bitcast(_e2953) + fma(bitcast(_e2933), _e131.z, fma(bitcast(_e2913), _e131.y, (bitcast(_e2893) * _e131.x)))) / _e2988); + let _e2990 = ((bitcast(_e2958) + fma(bitcast(_e2938), _e131.z, fma(bitcast(_e2918), _e131.y, (bitcast(_e2898) * _e131.x)))) / _e2988); + let _e2991 = ((bitcast(_e2963) + fma(bitcast(_e2943), _e131.z, fma(bitcast(_e2923), _e131.y, (bitcast(_e2903) * _e131.x)))) / _e2988); + if (abs(_e2989) <= 1f) { + let _e2995 = (abs(_e2990) <= 1f); + if _e2995 { + phi_6840_ = (abs(_e2991) <= 1f); } else { - phi_6706_ = true; + phi_6840_ = bool(); } - let _e3055 = phi_6706_; - let _e3056 = select(1f, _e3051, _e3055); - if (select(-1f, 1f, (_e2985 >= 0f)) > 0f) { - if _e3049 { - phi_3038_ = _e3056; + let _e2999 = phi_6840_; + phi_6843_ = _e2999; + phi_6844_ = select(true, false, _e2995); + } else { + phi_6843_ = bool(); + phi_6844_ = true; + } + let _e3002 = phi_6843_; + let _e3004 = phi_6844_; + if select(_e3002, false, _e3004) { + let _e3008 = bitcast(_e2843); + let _e3009 = (_e3008 / 2i); + let _e3010 = f32(_e2859); + let _e3011 = f32(_e2863); + let _e3015 = type_35((_e3008 / -2i), _e3009, false); + phi_7161_ = _e1949; + phi_2968_ = _e3015; + phi_2971_ = 0f; + loop { + let _e3017 = phi_7161_; + let _e3019 = phi_2968_; + let _e3021 = phi_2971_; + local_2 = _e3021; + if _e3019.member_2 { + phi_2983_ = true; } else { - phi_3038_ = (1f - _e3056); + phi_2983_ = ((_e3019.member <= _e3019.member_1) != true); } - let _e3063 = phi_3038_; - phi_3044_ = _e3063; - } else { - if _e3049 { - phi_3043_ = (1f - _e3056); + let _e3028 = phi_2983_; + if _e3028 { + phi_2969_ = _e3019; + phi_3026_ = type_36(0u, type_36().member_1); } else { - phi_3043_ = _e3056; + if (_e3019.member < _e3019.member_1) { + let _e3036 = (_e3019.member + 1i); + if select(false, true, ((false == (_e3036 > _e3019.member)) != false)) { + phi_3011_ = type_36(0u, type_36().member_1); + } else { + phi_3011_ = type_36(1u, _e3036); + } + let _e3046 = phi_3011_; + switch bitcast(_e3046.member) { + case 0: { + phi_7236_ = true; + break; + } + case 1: { + break; + } + default: { + break; + } + } + phi_3023_ = type_35(_e3046.member_1, _e3019.member_1, _e3019.member_2); + } else { + phi_3023_ = type_35(_e3019.member, _e3019.member_1, true); + } + let _e3055 = phi_3023_; + phi_2969_ = _e3055; + phi_3026_ = type_36(1u, _e3019.member); + } + let _e3061 = phi_2969_; + let _e3063 = phi_3026_; + switch bitcast(_e3063.member) { + case 0: { + phi_7237_ = _e3017; + phi_2972_ = f32(); + phi_3282_ = false; + break; + } + case 1: { + phi_3037_ = _e3015; + phi_3040_ = _e3021; + loop { + let _e3068 = phi_3037_; + let _e3070 = phi_3040_; + local_6 = _e3070; + if _e3068.member_2 { + phi_3052_ = true; + } else { + phi_3052_ = ((_e3068.member <= _e3068.member_1) != true); + } + let _e3077 = phi_3052_; + if _e3077 { + phi_3038_ = _e3068; + phi_3095_ = type_36(0u, type_36().member_1); + } else { + if (_e3068.member < _e3068.member_1) { + let _e3085 = (_e3068.member + 1i); + if select(false, true, ((false == (_e3085 > _e3068.member)) != false)) { + phi_3080_ = type_36(0u, type_36().member_1); + } else { + phi_3080_ = type_36(1u, _e3085); + } + let _e3095 = phi_3080_; + switch bitcast(_e3095.member) { + case 0: { + phi_7145_ = true; + break; + } + case 1: { + break; + } + default: { + break; + } + } + phi_3092_ = type_35(_e3095.member_1, _e3068.member_1, _e3068.member_2); + } else { + phi_3092_ = type_35(_e3068.member, _e3068.member_1, true); + } + let _e3104 = phi_3092_; + phi_3038_ = _e3104; + phi_3095_ = type_36(1u, _e3068.member); + } + let _e3110 = phi_3038_; + let _e3112 = phi_3095_; + switch bitcast(_e3112.member) { + case 0: { + phi_3041_ = f32(); + phi_3281_ = false; + break; + } + case 1: { + let _e3120 = fma((_e2989 + 1f), 0.5f, (f32(_e3063.member_1) * (1f / _e3010))); + let _e3121 = fma(fma(_e2990, -1f, 1f), 0.5f, (f32(_e3112.member_1) * (1f / _e3011))); + switch bitcast(_e2874) { + case 1: { + let _e3156 = abs(_e3120); + let _e3158 = (_e3156 % 1f); + if (_e3156 >= 1f) { + phi_6892_ = select(true, false, (_e3158 == 0f)); + } else { + phi_6892_ = true; + } + let _e3162 = phi_6892_; + let _e3163 = select(1f, _e3158, _e3162); + if (select(-1f, 1f, (_e3120 >= 0f)) > 0f) { + phi_3127_ = _e3163; + } else { + phi_3127_ = (1f - _e3163); + } + let _e3167 = phi_3127_; + phi_3164_ = _e3167; + break; + } + case 2: { + let _e3130 = abs(_e3120); + let _e3137 = ((select(select(u32(_e3130), 0u, (_e3130 < 0f)), 4294967295u, (_e3130 > 4294967000f)) % 2u) == 0u); + let _e3139 = (_e3130 % 1f); + if (_e3130 >= 1f) { + phi_6875_ = select(true, false, (_e3139 == 0f)); + } else { + phi_6875_ = true; + } + let _e3143 = phi_6875_; + let _e3144 = select(1f, _e3139, _e3143); + if (select(-1f, 1f, (_e3120 >= 0f)) > 0f) { + if _e3137 { + phi_3156_ = _e3144; + } else { + phi_3156_ = (1f - _e3144); + } + let _e3151 = phi_3156_; + phi_3162_ = _e3151; + } else { + if _e3137 { + phi_3161_ = (1f - _e3144); + } else { + phi_3161_ = _e3144; + } + let _e3148 = phi_3161_; + phi_3162_ = _e3148; + } + let _e3153 = phi_3162_; + phi_3164_ = _e3153; + break; + } + case 0: { + if (_e3120 > 1f) { + phi_6862_ = 0.9999999f; + } else { + phi_6862_ = select(_e3120, 0.00000011920929f, (_e3120 < 0f)); + } + let _e3127 = phi_6862_; + phi_3164_ = _e3127; + break; + } + default: { + phi_3164_ = f32(); + break; + } + } + let _e3169 = phi_3164_; + switch bitcast(_e2881) { + case 1: { + let _e3204 = abs(_e3121); + let _e3206 = (_e3204 % 1f); + if (_e3204 >= 1f) { + phi_6940_ = select(true, false, (_e3206 == 0f)); + } else { + phi_6940_ = true; + } + let _e3210 = phi_6940_; + let _e3211 = select(1f, _e3206, _e3210); + if (select(-1f, 1f, (_e3121 >= 0f)) > 0f) { + phi_3183_ = _e3211; + } else { + phi_3183_ = (1f - _e3211); + } + let _e3215 = phi_3183_; + phi_3220_ = _e3215; + break; + } + case 2: { + let _e3178 = abs(_e3121); + let _e3185 = ((select(select(u32(_e3178), 0u, (_e3178 < 0f)), 4294967295u, (_e3178 > 4294967000f)) % 2u) == 0u); + let _e3187 = (_e3178 % 1f); + if (_e3178 >= 1f) { + phi_6923_ = select(true, false, (_e3187 == 0f)); + } else { + phi_6923_ = true; + } + let _e3191 = phi_6923_; + let _e3192 = select(1f, _e3187, _e3191); + if (select(-1f, 1f, (_e3121 >= 0f)) > 0f) { + if _e3185 { + phi_3212_ = _e3192; + } else { + phi_3212_ = (1f - _e3192); + } + let _e3199 = phi_3212_; + phi_3218_ = _e3199; + } else { + if _e3185 { + phi_3217_ = (1f - _e3192); + } else { + phi_3217_ = _e3192; + } + let _e3196 = phi_3217_; + phi_3218_ = _e3196; + } + let _e3201 = phi_3218_; + phi_3220_ = _e3201; + break; + } + case 0: { + if (_e3121 > 1f) { + phi_6910_ = 0.9999999f; + } else { + phi_6910_ = select(_e3121, 0.00000011920929f, (_e3121 < 0f)); + } + let _e3175 = phi_6910_; + phi_3220_ = _e3175; + break; + } + default: { + phi_3220_ = f32(); + break; + } + } + let _e3217 = phi_3220_; + let _e3218 = (_e3169 * _e3010); + let _e3224 = (_e3217 * _e3011); + let _e3239 = vec3((f32((select(select(u32(_e3218), 0u, (_e3218 < 0f)), 4294967295u, (_e3218 > 4294967000f)) + _e2851)) / f32(_e2884)), (f32((select(select(u32(_e3224), 0u, (_e3224 < 0f)), 4294967295u, (_e3224 > 4294967000f)) + _e2855)) / f32(_e2888)), f32(_e2867)); + let _e3245 = textureSampleLevel(global_19, global_18, vec2(_e3239.x, _e3239.y), i32(_e3239.z), 0f); + phi_3041_ = (_e3070 + select(0f, 1f, ((_e2991 - max((bitcast(_e2838) * (1f - _e2753)), bitcast(_e2833))) > _e3245.x))); + phi_3281_ = true; + break; + } + default: { + phi_3041_ = f32(); + phi_3281_ = bool(); + break; + } + } + let _e3255 = phi_3041_; + let _e3257 = phi_3281_; + continue; + continuing { + phi_3037_ = _e3110; + phi_3040_ = _e3255; + phi_7145_ = _e3017; + break if !(_e3257); + } + } + let _e3260 = phi_7145_; + phi_7236_ = _e3260; + if _e3260 { + break; + } + phi_7237_ = _e3260; + let _e3588 = local_6; + phi_2972_ = _e3588; + phi_3282_ = true; + break; + } + default: { + phi_7237_ = _e3017; + phi_2972_ = f32(); + phi_3282_ = bool(); + break; + } + } + let _e3262 = phi_7237_; + let _e3264 = phi_2972_; + let _e3266 = phi_3282_; + continue; + continuing { + phi_7161_ = _e3262; + phi_2968_ = _e3061; + phi_2971_ = _e3264; + phi_7236_ = _e3262; + break if !(_e3266); } - let _e3060 = phi_3043_; - phi_3044_ = _e3060; } - let _e3065 = phi_3044_; - phi_3046_ = _e3065; - break; - } - case 0: { - if (_e2985 > 1f) { - phi_6693_ = 0.9999999f; - } else { - phi_6693_ = select(_e2985, 0.00000011920929f, (_e2985 < 0f)); + let _e3269 = phi_7236_; + phi_7238_ = _e3269; + if _e3269 { + break; } - let _e3039 = phi_6693_; - phi_3046_ = _e3039; - break; - } - default: { - phi_3046_ = f32(); - break; + let _e3274 = local_2; + phi_7264_ = _e3269; + phi_3287_ = (_e3274 / (f32((_e3009 * 2i)) + 1f)); + } else { + phi_7264_ = _e1949; + phi_3287_ = 0f; } + let _e3277 = phi_7264_; + let _e3279 = phi_3287_; + phi_7263_ = _e3277; + phi_3288_ = _e3279; + } else { + phi_7263_ = _e1949; + phi_3288_ = 0f; } - let _e3081 = phi_3046_; - let _e3083 = (_e3033 * f32(_e2849)); - let _e3090 = (_e3081 * f32(_e2853)); - let _e3105 = vec3((f32((select(select(u32(_e3083), 0u, (_e3083 < 0f)), 4294967295u, (_e3083 > 4294967000f)) + _e2841)) / f32(_e2874)), (f32((select(select(u32(_e3090), 0u, (_e3090 < 0f)), 4294967295u, (_e3090 > 4294967000f)) + _e2845)) / f32(_e2878)), f32(_e2857)); - let _e3111 = textureSampleLevel(global_19, global_18, vec2(_e3105.x, _e3105.y), i32(_e3105.z), 0f); - phi_3106_ = select(0f, 1f, ((((bitcast(_e2953) + fma(bitcast(_e2933), _e126.z, fma(bitcast(_e2913), _e126.y, (bitcast(_e2893) * _e126.x)))) / _e2978) - max((bitcast(_e2832) * (1f - _e2747)), bitcast(_e2827))) > _e3111.x)); - } else { - phi_3106_ = 0f; - } - let _e3120 = phi_3106_; - let _e3121 = (1f - _e3120); - phi_3670_ = vec3(fma(((fma((((1f - _e2772) * _e2690) * _e1364), 0.31830987f, ((_e2781 * _e2772) / _e2790)) * (_e2647.member_1.x * _e2647.member_2)) * _e2788), _e3121, _e1946.x), fma(((fma((((1f - _e2773) * _e2690) * _e1366), 0.31830987f, ((_e2781 * _e2773) / _e2790)) * (_e2647.member_1.y * _e2647.member_2)) * _e2788), _e3121, _e1946.y), fma(((fma((((1f - _e2774) * _e2690) * _e1368), 0.31830987f, ((_e2781 * _e2774) / _e2790)) * (_e2647.member_1.z * _e2647.member_2)) * _e2788), _e3121, _e1946.z)); - phi_3671_ = true; - break; - } - case 1: { - if (_e118 >= 8u) { - phi_6283_ = (_e2005.member_1 <= (_e118 - 8u)); - } else { - phi_6283_ = false; - } - let _e2391 = phi_6283_; - if _e2391 { - let _e2394 = global_1.member[_e2005.member_1]; - let _e2399 = global_1.member[(_e2005.member_1 + 1u)]; - let _e2404 = global_1.member[(_e2005.member_1 + 2u)]; - let _e2410 = global_1.member[(_e2005.member_1 + 3u)]; - let _e2415 = global_1.member[(_e2005.member_1 + 4u)]; - let _e2420 = global_1.member[(_e2005.member_1 + 5u)]; - let _e2425 = global_1.member[(_e2005.member_1 + 6u)]; - let _e2431 = global_1.member[(_e2005.member_1 + 7u)]; - phi_3160_ = type_34(vec3(bitcast(_e2394), bitcast(_e2399), bitcast(_e2404)), vec4(bitcast(_e2410), bitcast(_e2415), bitcast(_e2420), bitcast(_e2425)), bitcast(_e2431)); - } else { - phi_3160_ = type_34(vec3(0f, 0f, 0f), vec4(1f, 1f, 1f, 1f), 1f); + let _e3281 = phi_7263_; + let _e3283 = phi_3288_; + let _e3284 = (1f - _e3283); + phi_7242_ = _e3281; + phi_3852_ = vec3(fma(((fma((((1f - _e2778) * _e2696) * _e1369), 0.31830987f, ((_e2787 * _e2778) / _e2796)) * (_e2653.member_1.x * _e2653.member_2)) * _e2794), _e3284, _e1953.x), fma(((fma((((1f - _e2779) * _e2696) * _e1371), 0.31830987f, ((_e2787 * _e2779) / _e2796)) * (_e2653.member_1.y * _e2653.member_2)) * _e2794), _e3284, _e1953.y), fma(((fma((((1f - _e2780) * _e2696) * _e1373), 0.31830987f, ((_e2787 * _e2780) / _e2796)) * (_e2653.member_1.z * _e2653.member_2)) * _e2794), _e3284, _e1953.z)); + phi_3853_ = true; + break; } - let _e2435 = phi_3160_; - let _e2464 = (vec3((_e2066.member.x + fma(_e2105.x, _e2435.member.z, fma(_e2103.x, _e2435.member.y, (_e2101.x * _e2435.member.x)))), (_e2066.member.y + fma(_e2105.y, _e2435.member.z, fma(_e2103.y, _e2435.member.y, (_e2101.y * _e2435.member.x)))), (_e2066.member.z + fma(_e2105.z, _e2435.member.z, fma(_e2103.z, _e2435.member.y, (_e2101.z * _e2435.member.x))))) - _e126); - let _e2471 = sqrt(fma(_e2464.z, _e2464.z, fma(_e2464.x, _e2464.x, (_e2464.y * _e2464.y)))); - let _e2472 = (_e2471 == 0f); - if _e2472 { - phi_3350_ = vec3(); - } else { - if _e2472 { - phi_6330_ = vec3(0f, 0f, 0f); + case 1: { + if (_e123 >= 8u) { + phi_6475_ = (_e2011.member_1 <= (_e123 - 8u)); } else { - phi_6330_ = (_e2464 * (1f / _e2471)); + phi_6475_ = false; } - let _e2476 = phi_6330_; - let _e2478 = (_e2435.member_2 / (_e2471 * _e2471)); - let _e2480 = fma(-(_e680.z), _e289.member_3, 1f); - let _e2484 = fma(0.4f, _e2480, (_e1364 * _e1376)); - let _e2485 = fma(0.4f, _e2480, (_e1366 * _e1376)); - let _e2486 = fma(0.4f, _e2480, (_e1368 * _e1376)); - let _e2493 = (_e1932 + _e2476); - let _e2500 = sqrt(fma(_e2493.z, _e2493.z, fma(_e2493.x, _e2493.x, (_e2493.y * _e2493.y)))); - if (_e2500 == 0f) { - phi_6365_ = vec3(0f, 0f, 0f); + let _e2397 = phi_6475_; + if _e2397 { + let _e2400 = global_1.member[_e2011.member_1]; + let _e2405 = global_1.member[(_e2011.member_1 + 1u)]; + let _e2410 = global_1.member[(_e2011.member_1 + 2u)]; + let _e2416 = global_1.member[(_e2011.member_1 + 3u)]; + let _e2421 = global_1.member[(_e2011.member_1 + 4u)]; + let _e2426 = global_1.member[(_e2011.member_1 + 5u)]; + let _e2431 = global_1.member[(_e2011.member_1 + 6u)]; + let _e2437 = global_1.member[(_e2011.member_1 + 7u)]; + phi_3342_ = type_34(vec3(bitcast(_e2400), bitcast(_e2405), bitcast(_e2410)), vec4(bitcast(_e2416), bitcast(_e2421), bitcast(_e2426), bitcast(_e2431)), bitcast(_e2437)); } else { - phi_6365_ = (_e2493 * (1f / _e2500)); + phi_3342_ = type_34(vec3(0f, 0f, 0f), vec4(1f, 1f, 1f, 1f), 1f); } - let _e2505 = phi_6365_; - let _e2506 = (_e1373 * _e1373); - let _e2517 = max(fma(_e1928.z, _e2505.z, fma(_e1928.x, _e2505.x, (_e1928.y * _e2505.y))), 0f); - let _e2530 = max(fma(_e1928.z, _e1932.z, fma(_e1928.x, _e1932.x, (_e1928.y * _e1932.y))), 0f); - let _e2537 = max(fma(_e1928.z, _e2476.z, fma(_e1928.x, _e2476.x, (_e1928.y * _e2476.y))), 0f); - let _e2538 = fma(_e680.y, _e289.member_4, 1f); - let _e2539 = (_e2538 * _e2538); - let _e2540 = (_e2539 * 0.125f); - let _e2542 = fma(-(_e2539), 0.125f, 1f); - let _e2555 = (1f - max(fma(_e2505.z, _e1932.z, fma(_e2505.x, _e1932.x, (_e2505.y * _e1932.y))), 0f)); - let _e2557 = select(_e2555, 0f, (_e2555 < 0f)); - let _e2560 = pow(select(_e2557, 1f, (_e2557 > 1f)), 5f); - let _e2561 = fma((1f - _e2484), _e2560, _e2484); - let _e2562 = fma((1f - _e2485), _e2560, _e2485); - let _e2563 = fma((1f - _e2486), _e2560, _e2486); - let _e2570 = (((_e2506 * _e2506) / (pow(fma((_e2517 * _e2517), fma(_e2506, _e2506, -1f), 1f), 2f) * 3.1415927f)) * ((_e2530 / fma(_e2530, _e2542, _e2540)) * (_e2537 / fma(_e2537, _e2542, _e2540)))); - let _e2575 = fma((4f * _e2530), _e2537, 0.0001f); - phi_3350_ = vec3(fma((fma((((1f - _e2561) * _e2480) * _e1364), 0.31830987f, ((_e2570 * _e2561) / _e2575)) * (_e2435.member_1.x * _e2478)), _e2537, _e1946.x), fma((fma((((1f - _e2562) * _e2480) * _e1366), 0.31830987f, ((_e2570 * _e2562) / _e2575)) * (_e2435.member_1.y * _e2478)), _e2537, _e1946.y), fma((fma((((1f - _e2563) * _e2480) * _e1368), 0.31830987f, ((_e2570 * _e2563) / _e2575)) * (_e2435.member_1.z * _e2478)), _e2537, _e1946.z)); - } - let _e2596 = phi_3350_; - phi_3670_ = _e2596; - phi_3671_ = select(true, false, _e2472); - break; - } - case 2: { - if (_e118 >= 13u) { - phi_6071_ = (_e2005.member_1 <= (_e118 - 13u)); - } else { - phi_6071_ = false; - } - let _e2116 = phi_6071_; - if _e2116 { - let _e2119 = global_1.member[_e2005.member_1]; - let _e2124 = global_1.member[(_e2005.member_1 + 1u)]; - let _e2129 = global_1.member[(_e2005.member_1 + 2u)]; - let _e2135 = global_1.member[(_e2005.member_1 + 3u)]; - let _e2140 = global_1.member[(_e2005.member_1 + 4u)]; - let _e2145 = global_1.member[(_e2005.member_1 + 5u)]; - let _e2151 = global_1.member[(_e2005.member_1 + 6u)]; - let _e2156 = global_1.member[(_e2005.member_1 + 7u)]; - let _e2161 = global_1.member[(_e2005.member_1 + 8u)]; - let _e2166 = global_1.member[(_e2005.member_1 + 9u)]; - let _e2171 = global_1.member[(_e2005.member_1 + 10u)]; - let _e2176 = global_1.member[(_e2005.member_1 + 11u)]; - let _e2182 = global_1.member[(_e2005.member_1 + 12u)]; - phi_3413_ = type_35(vec3(bitcast(_e2119), bitcast(_e2124), bitcast(_e2129)), vec3(bitcast(_e2135), bitcast(_e2140), bitcast(_e2145)), bitcast(_e2151), bitcast(_e2156), vec4(bitcast(_e2161), bitcast(_e2166), bitcast(_e2171), bitcast(_e2176)), bitcast(_e2182)); - } else { - phi_3413_ = type_35(vec3(0f, 0f, 0f), vec3(0f, -1f, 0f), 1.0471976f, 1.5707964f, vec4(1f, 1f, 1f, 1f), 1f); + let _e2441 = phi_3342_; + let _e2470 = (vec3((_e2072.member.x + fma(_e2111.x, _e2441.member.z, fma(_e2109.x, _e2441.member.y, (_e2107.x * _e2441.member.x)))), (_e2072.member.y + fma(_e2111.y, _e2441.member.z, fma(_e2109.y, _e2441.member.y, (_e2107.y * _e2441.member.x)))), (_e2072.member.z + fma(_e2111.z, _e2441.member.z, fma(_e2109.z, _e2441.member.y, (_e2107.z * _e2441.member.x))))) - _e131); + let _e2477 = sqrt(fma(_e2470.z, _e2470.z, fma(_e2470.x, _e2470.x, (_e2470.y * _e2470.y)))); + let _e2478 = (_e2477 == 0f); + if _e2478 { + phi_3532_ = vec3(); + } else { + if _e2478 { + phi_6522_ = vec3(0f, 0f, 0f); + } else { + phi_6522_ = (_e2470 * (1f / _e2477)); + } + let _e2482 = phi_6522_; + let _e2484 = (_e2441.member_2 / (_e2477 * _e2477)); + let _e2486 = fma(-(_e685.z), _e294.member_3, 1f); + let _e2490 = fma(0.4f, _e2486, (_e1369 * _e1381)); + let _e2491 = fma(0.4f, _e2486, (_e1371 * _e1381)); + let _e2492 = fma(0.4f, _e2486, (_e1373 * _e1381)); + let _e2499 = (_e1937 + _e2482); + let _e2506 = sqrt(fma(_e2499.z, _e2499.z, fma(_e2499.x, _e2499.x, (_e2499.y * _e2499.y)))); + if (_e2506 == 0f) { + phi_6557_ = vec3(0f, 0f, 0f); + } else { + phi_6557_ = (_e2499 * (1f / _e2506)); + } + let _e2511 = phi_6557_; + let _e2512 = (_e1378 * _e1378); + let _e2523 = max(fma(_e1933.z, _e2511.z, fma(_e1933.x, _e2511.x, (_e1933.y * _e2511.y))), 0f); + let _e2536 = max(fma(_e1933.z, _e1937.z, fma(_e1933.x, _e1937.x, (_e1933.y * _e1937.y))), 0f); + let _e2543 = max(fma(_e1933.z, _e2482.z, fma(_e1933.x, _e2482.x, (_e1933.y * _e2482.y))), 0f); + let _e2544 = fma(_e685.y, _e294.member_4, 1f); + let _e2545 = (_e2544 * _e2544); + let _e2546 = (_e2545 * 0.125f); + let _e2548 = fma(-(_e2545), 0.125f, 1f); + let _e2561 = (1f - max(fma(_e2511.z, _e1937.z, fma(_e2511.x, _e1937.x, (_e2511.y * _e1937.y))), 0f)); + let _e2563 = select(_e2561, 0f, (_e2561 < 0f)); + let _e2566 = pow(select(_e2563, 1f, (_e2563 > 1f)), 5f); + let _e2567 = fma((1f - _e2490), _e2566, _e2490); + let _e2568 = fma((1f - _e2491), _e2566, _e2491); + let _e2569 = fma((1f - _e2492), _e2566, _e2492); + let _e2576 = (((_e2512 * _e2512) / (pow(fma((_e2523 * _e2523), fma(_e2512, _e2512, -1f), 1f), 2f) * 3.1415927f)) * ((_e2536 / fma(_e2536, _e2548, _e2546)) * (_e2543 / fma(_e2543, _e2548, _e2546)))); + let _e2581 = fma((4f * _e2536), _e2543, 0.0001f); + phi_3532_ = vec3(fma((fma((((1f - _e2567) * _e2486) * _e1369), 0.31830987f, ((_e2576 * _e2567) / _e2581)) * (_e2441.member_1.x * _e2484)), _e2543, _e1953.x), fma((fma((((1f - _e2568) * _e2486) * _e1371), 0.31830987f, ((_e2576 * _e2568) / _e2581)) * (_e2441.member_1.y * _e2484)), _e2543, _e1953.y), fma((fma((((1f - _e2569) * _e2486) * _e1373), 0.31830987f, ((_e2576 * _e2569) / _e2581)) * (_e2441.member_1.z * _e2484)), _e2543, _e1953.z)); + } + let _e2602 = phi_3532_; + phi_7242_ = _e1949; + phi_3852_ = _e2602; + phi_3853_ = select(true, false, _e2478); + break; } - let _e2186 = phi_3413_; - let _e2218 = (vec3((_e2066.member.x + fma(_e2105.x, _e2186.member.z, fma(_e2103.x, _e2186.member.y, (_e2101.x * _e2186.member.x)))), (_e2066.member.y + fma(_e2105.y, _e2186.member.z, fma(_e2103.y, _e2186.member.y, (_e2101.y * _e2186.member.x)))), (_e2066.member.z + fma(_e2105.z, _e2186.member.z, fma(_e2103.z, _e2186.member.y, (_e2101.z * _e2186.member.x))))) - _e126); - let _e2225 = sqrt(fma(_e2218.z, _e2218.z, fma(_e2218.x, _e2218.x, (_e2218.y * _e2218.y)))); - let _e2226 = (_e2225 == 0f); - if _e2226 { - phi_3668_ = vec3(); - } else { - if _e2226 { - phi_6121_ = vec3(0f, 0f, 0f); + case 2: { + if (_e123 >= 13u) { + phi_6263_ = (_e2011.member_1 <= (_e123 - 13u)); } else { - phi_6121_ = (_e2218 * (1f / _e2225)); + phi_6263_ = false; } - let _e2230 = phi_6121_; - let _e2240 = fma(_e2105.x, _e2186.member_1.z, fma(_e2103.x, _e2186.member_1.y, (_e2101.x * _e2186.member_1.x))); - let _e2241 = fma(_e2105.y, _e2186.member_1.z, fma(_e2103.y, _e2186.member_1.y, (_e2101.y * _e2186.member_1.x))); - let _e2242 = fma(_e2105.z, _e2186.member_1.z, fma(_e2103.z, _e2186.member_1.y, (_e2101.z * _e2186.member_1.x))); - let _e2247 = sqrt(fma(_e2242, _e2242, fma(_e2240, _e2240, (_e2241 * _e2241)))); - if (_e2247 == 0f) { - phi_6156_ = vec3(0f, 0f, 0f); + let _e2122 = phi_6263_; + if _e2122 { + let _e2125 = global_1.member[_e2011.member_1]; + let _e2130 = global_1.member[(_e2011.member_1 + 1u)]; + let _e2135 = global_1.member[(_e2011.member_1 + 2u)]; + let _e2141 = global_1.member[(_e2011.member_1 + 3u)]; + let _e2146 = global_1.member[(_e2011.member_1 + 4u)]; + let _e2151 = global_1.member[(_e2011.member_1 + 5u)]; + let _e2157 = global_1.member[(_e2011.member_1 + 6u)]; + let _e2162 = global_1.member[(_e2011.member_1 + 7u)]; + let _e2167 = global_1.member[(_e2011.member_1 + 8u)]; + let _e2172 = global_1.member[(_e2011.member_1 + 9u)]; + let _e2177 = global_1.member[(_e2011.member_1 + 10u)]; + let _e2182 = global_1.member[(_e2011.member_1 + 11u)]; + let _e2188 = global_1.member[(_e2011.member_1 + 12u)]; + phi_3595_ = type_37(vec3(bitcast(_e2125), bitcast(_e2130), bitcast(_e2135)), vec3(bitcast(_e2141), bitcast(_e2146), bitcast(_e2151)), bitcast(_e2157), bitcast(_e2162), vec4(bitcast(_e2167), bitcast(_e2172), bitcast(_e2177), bitcast(_e2182)), bitcast(_e2188)); } else { - phi_6156_ = (vec3(_e2240, _e2241, _e2242) * (1f / _e2247)); + phi_3595_ = type_37(vec3(0f, 0f, 0f), vec3(0f, -1f, 0f), 1.0471976f, 1.5707964f, vec4(1f, 1f, 1f, 1f), 1f); } - let _e2252 = phi_6156_; - let _e2264 = ((fma(_e2230.z, _e2252.z, fma(_e2230.x, _e2252.x, (_e2230.y * _e2252.y))) - _e2186.member_3) / (_e2186.member_2 - _e2186.member_3)); - let _e2266 = select(_e2264, 0f, (_e2264 < 0f)); - let _e2269 = (_e2186.member_5 * select(_e2266, 1f, (_e2266 > 1f))); - let _e2271 = fma(-(_e680.z), _e289.member_3, 1f); - let _e2275 = fma(0.4f, _e2271, (_e1364 * _e1376)); - let _e2276 = fma(0.4f, _e2271, (_e1366 * _e1376)); - let _e2277 = fma(0.4f, _e2271, (_e1368 * _e1376)); - let _e2284 = (_e1932 + _e2230); - let _e2291 = sqrt(fma(_e2284.z, _e2284.z, fma(_e2284.x, _e2284.x, (_e2284.y * _e2284.y)))); - if (_e2291 == 0f) { - phi_6191_ = vec3(0f, 0f, 0f); + let _e2192 = phi_3595_; + let _e2224 = (vec3((_e2072.member.x + fma(_e2111.x, _e2192.member.z, fma(_e2109.x, _e2192.member.y, (_e2107.x * _e2192.member.x)))), (_e2072.member.y + fma(_e2111.y, _e2192.member.z, fma(_e2109.y, _e2192.member.y, (_e2107.y * _e2192.member.x)))), (_e2072.member.z + fma(_e2111.z, _e2192.member.z, fma(_e2109.z, _e2192.member.y, (_e2107.z * _e2192.member.x))))) - _e131); + let _e2231 = sqrt(fma(_e2224.z, _e2224.z, fma(_e2224.x, _e2224.x, (_e2224.y * _e2224.y)))); + let _e2232 = (_e2231 == 0f); + if _e2232 { + phi_3850_ = vec3(); } else { - phi_6191_ = (_e2284 * (1f / _e2291)); + if _e2232 { + phi_6313_ = vec3(0f, 0f, 0f); + } else { + phi_6313_ = (_e2224 * (1f / _e2231)); + } + let _e2236 = phi_6313_; + let _e2246 = fma(_e2111.x, _e2192.member_1.z, fma(_e2109.x, _e2192.member_1.y, (_e2107.x * _e2192.member_1.x))); + let _e2247 = fma(_e2111.y, _e2192.member_1.z, fma(_e2109.y, _e2192.member_1.y, (_e2107.y * _e2192.member_1.x))); + let _e2248 = fma(_e2111.z, _e2192.member_1.z, fma(_e2109.z, _e2192.member_1.y, (_e2107.z * _e2192.member_1.x))); + let _e2253 = sqrt(fma(_e2248, _e2248, fma(_e2246, _e2246, (_e2247 * _e2247)))); + if (_e2253 == 0f) { + phi_6348_ = vec3(0f, 0f, 0f); + } else { + phi_6348_ = (vec3(_e2246, _e2247, _e2248) * (1f / _e2253)); + } + let _e2258 = phi_6348_; + let _e2270 = ((fma(_e2236.z, _e2258.z, fma(_e2236.x, _e2258.x, (_e2236.y * _e2258.y))) - _e2192.member_3) / (_e2192.member_2 - _e2192.member_3)); + let _e2272 = select(_e2270, 0f, (_e2270 < 0f)); + let _e2275 = (_e2192.member_5 * select(_e2272, 1f, (_e2272 > 1f))); + let _e2277 = fma(-(_e685.z), _e294.member_3, 1f); + let _e2281 = fma(0.4f, _e2277, (_e1369 * _e1381)); + let _e2282 = fma(0.4f, _e2277, (_e1371 * _e1381)); + let _e2283 = fma(0.4f, _e2277, (_e1373 * _e1381)); + let _e2290 = (_e1937 + _e2236); + let _e2297 = sqrt(fma(_e2290.z, _e2290.z, fma(_e2290.x, _e2290.x, (_e2290.y * _e2290.y)))); + if (_e2297 == 0f) { + phi_6383_ = vec3(0f, 0f, 0f); + } else { + phi_6383_ = (_e2290 * (1f / _e2297)); + } + let _e2302 = phi_6383_; + let _e2303 = (_e1378 * _e1378); + let _e2314 = max(fma(_e1933.z, _e2302.z, fma(_e1933.x, _e2302.x, (_e1933.y * _e2302.y))), 0f); + let _e2327 = max(fma(_e1933.z, _e1937.z, fma(_e1933.x, _e1937.x, (_e1933.y * _e1937.y))), 0f); + let _e2331 = max(fma(_e1933.z, _e2236.z, fma(_e1933.x, _e2236.x, (_e1933.y * _e2236.y))), 0f); + let _e2332 = fma(_e685.y, _e294.member_4, 1f); + let _e2333 = (_e2332 * _e2332); + let _e2334 = (_e2333 * 0.125f); + let _e2336 = fma(-(_e2333), 0.125f, 1f); + let _e2349 = (1f - max(fma(_e2302.z, _e1937.z, fma(_e2302.x, _e1937.x, (_e2302.y * _e1937.y))), 0f)); + let _e2351 = select(_e2349, 0f, (_e2349 < 0f)); + let _e2354 = pow(select(_e2351, 1f, (_e2351 > 1f)), 5f); + let _e2355 = fma((1f - _e2281), _e2354, _e2281); + let _e2356 = fma((1f - _e2282), _e2354, _e2282); + let _e2357 = fma((1f - _e2283), _e2354, _e2283); + let _e2364 = (((_e2303 * _e2303) / (pow(fma((_e2314 * _e2314), fma(_e2303, _e2303, -1f), 1f), 2f) * 3.1415927f)) * ((_e2327 / fma(_e2327, _e2336, _e2334)) * (_e2331 / fma(_e2331, _e2336, _e2334)))); + let _e2369 = fma((4f * _e2327), _e2331, 0.0001f); + phi_3850_ = vec3(fma((fma((((1f - _e2355) * _e2277) * _e1369), 0.31830987f, ((_e2364 * _e2355) / _e2369)) * (_e2192.member_4.x * _e2275)), _e2331, _e1953.x), fma((fma((((1f - _e2356) * _e2277) * _e1371), 0.31830987f, ((_e2364 * _e2356) / _e2369)) * (_e2192.member_4.y * _e2275)), _e2331, _e1953.y), fma((fma((((1f - _e2357) * _e2277) * _e1373), 0.31830987f, ((_e2364 * _e2357) / _e2369)) * (_e2192.member_4.z * _e2275)), _e2331, _e1953.z)); } - let _e2296 = phi_6191_; - let _e2297 = (_e1373 * _e1373); - let _e2308 = max(fma(_e1928.z, _e2296.z, fma(_e1928.x, _e2296.x, (_e1928.y * _e2296.y))), 0f); - let _e2321 = max(fma(_e1928.z, _e1932.z, fma(_e1928.x, _e1932.x, (_e1928.y * _e1932.y))), 0f); - let _e2325 = max(fma(_e1928.z, _e2230.z, fma(_e1928.x, _e2230.x, (_e1928.y * _e2230.y))), 0f); - let _e2326 = fma(_e680.y, _e289.member_4, 1f); - let _e2327 = (_e2326 * _e2326); - let _e2328 = (_e2327 * 0.125f); - let _e2330 = fma(-(_e2327), 0.125f, 1f); - let _e2343 = (1f - max(fma(_e2296.z, _e1932.z, fma(_e2296.x, _e1932.x, (_e2296.y * _e1932.y))), 0f)); - let _e2345 = select(_e2343, 0f, (_e2343 < 0f)); - let _e2348 = pow(select(_e2345, 1f, (_e2345 > 1f)), 5f); - let _e2349 = fma((1f - _e2275), _e2348, _e2275); - let _e2350 = fma((1f - _e2276), _e2348, _e2276); - let _e2351 = fma((1f - _e2277), _e2348, _e2277); - let _e2358 = (((_e2297 * _e2297) / (pow(fma((_e2308 * _e2308), fma(_e2297, _e2297, -1f), 1f), 2f) * 3.1415927f)) * ((_e2321 / fma(_e2321, _e2330, _e2328)) * (_e2325 / fma(_e2325, _e2330, _e2328)))); - let _e2363 = fma((4f * _e2321), _e2325, 0.0001f); - phi_3668_ = vec3(fma((fma((((1f - _e2349) * _e2271) * _e1364), 0.31830987f, ((_e2358 * _e2349) / _e2363)) * (_e2186.member_4.x * _e2269)), _e2325, _e1946.x), fma((fma((((1f - _e2350) * _e2271) * _e1366), 0.31830987f, ((_e2358 * _e2350) / _e2363)) * (_e2186.member_4.y * _e2269)), _e2325, _e1946.y), fma((fma((((1f - _e2351) * _e2271) * _e1368), 0.31830987f, ((_e2358 * _e2351) / _e2363)) * (_e2186.member_4.z * _e2269)), _e2325, _e1946.z)); + let _e2390 = phi_3850_; + phi_7242_ = _e1949; + phi_3852_ = _e2390; + phi_3853_ = select(true, false, _e2232); + break; + } + default: { + phi_7242_ = _e1949; + phi_3852_ = vec3(); + phi_3853_ = bool(); + break; } - let _e2384 = phi_3668_; - phi_3670_ = _e2384; - phi_3671_ = select(true, false, _e2226); - break; - } - default: { - phi_3670_ = vec3(); - phi_3671_ = bool(); - break; } + let _e3293 = phi_7242_; + let _e3295 = phi_3852_; + let _e3297 = phi_3853_; + phi_7239_ = _e3293; + phi_2376_ = select(_e3295, _e1953, vec3(select(true, false, _e3297))); + phi_3862_ = true; + break; + } + default: { + phi_7239_ = _e1949; + phi_2376_ = vec3(); + phi_3862_ = bool(); + break; } - let _e3130 = phi_3670_; - let _e3132 = phi_3671_; - phi_3680_ = select(_e3130, _e1946, vec3(select(true, false, _e3132))); } - let _e3137 = phi_3680_; - phi_2367_ = _e3137; - phi_3682_ = select(true, false, _e1979); - break; + let _e3302 = phi_7239_; + let _e3304 = phi_2376_; + let _e3306 = phi_3862_; + continue; + continuing { + phi_7183_ = _e3302; + phi_2372_ = _e1966; + phi_2375_ = _e3304; + phi_7238_ = _e3302; + break if !(_e3306); + } } - default: { - phi_2367_ = vec3(); - phi_3682_ = bool(); + let _e3309 = phi_7238_; + phi_7265_ = _e3309; + if _e3309 { break; } + let _e3311 = fma(-(_e685.z), _e294.member_3, 1f); + let _e3315 = fma(0.04f, _e3311, (_e1369 * _e1381)); + let _e3316 = fma(0.04f, _e3311, (_e1371 * _e1381)); + let _e3317 = fma(0.04f, _e3311, (_e1373 * _e1381)); + let _e3329 = fma(-(_e685.y), _e294.member_4, 1f); + let _e3336 = (1f - max(fma(_e1933.z, _e1937.z, fma(_e1933.x, _e1937.x, (_e1933.y * _e1937.y))), 0f)); + let _e3338 = select(_e3336, 0f, (_e3336 < 0f)); + let _e3341 = pow(select(_e3338, 1f, (_e3338 > 1f)), 5f); + let _e3342 = fma((max(_e3329, _e3315) - _e3315), _e3341, _e3315); + let _e3343 = fma((max(_e3329, _e3316) - _e3316), _e3341, _e3316); + let _e3344 = fma((max(_e3329, _e3317) - _e3317), _e3341, _e3317); + let _e3364 = local_3; + let _e3368 = local_4; + let _e3372 = local_5; + phi_7273_ = _e3309; + phi_3979_ = vec4(fma(_e1391, _e294.member_1, fma(fma(((1f - _e3342) * _e3311), (_e1400.x * _e1369), (_e1748.x * fma(_e3342, _e1764.x, _e1764.y))), _e1385, _e3364.x)), fma(_e1393, _e294.member_1, fma(fma(((1f - _e3343) * _e3311), (_e1400.y * _e1371), (_e1748.y * fma(_e3343, _e1764.x, _e1764.y))), _e1385, _e3368.y)), fma(_e1395, _e294.member_1, fma(fma(((1f - _e3344) * _e3311), (_e1400.z * _e1373), (_e1748.z * fma(_e3344, _e1764.x, _e1764.y))), _e1385, _e3372.z)), 1f); + } else { + phi_7273_ = false; + phi_3979_ = (vec4((_e125.x * _e491.x), (_e125.y * _e491.y), (_e125.z * _e491.z), (_e125.w * _e491.w)) * _e294.member_2); } - let _e3140 = phi_2367_; - let _e3142 = phi_3682_; - continue; - continuing { - phi_2363_ = _e1959; - phi_2366_ = _e3140; - break if !(_e3142); - } - } - let _e3145 = fma(-(_e680.z), _e289.member_3, 1f); - let _e3149 = fma(0.04f, _e3145, (_e1364 * _e1376)); - let _e3150 = fma(0.04f, _e3145, (_e1366 * _e1376)); - let _e3151 = fma(0.04f, _e3145, (_e1368 * _e1376)); - let _e3163 = fma(-(_e680.y), _e289.member_4, 1f); - let _e3170 = (1f - max(fma(_e1928.z, _e1932.z, fma(_e1928.x, _e1932.x, (_e1928.y * _e1932.y))), 0f)); - let _e3172 = select(_e3170, 0f, (_e3170 < 0f)); - let _e3175 = pow(select(_e3172, 1f, (_e3172 > 1f)), 5f); - let _e3176 = fma((max(_e3163, _e3149) - _e3149), _e3175, _e3149); - let _e3177 = fma((max(_e3163, _e3150) - _e3150), _e3175, _e3150); - let _e3178 = fma((max(_e3163, _e3151) - _e3151), _e3175, _e3151); - let _e3198 = local_2; - let _e3202 = local_3; - let _e3206 = local_4; - phi_3799_ = vec4(fma(_e1386, _e289.member_1, fma(fma(((1f - _e3176) * _e3145), (_e1395.x * _e1364), (_e1743.x * fma(_e3176, _e1759.x, _e1759.y))), _e1380, _e3198.x)), fma(_e1388, _e289.member_1, fma(fma(((1f - _e3177) * _e3145), (_e1395.y * _e1366), (_e1743.y * fma(_e3177, _e1759.x, _e1759.y))), _e1380, _e3202.y)), fma(_e1390, _e289.member_1, fma(fma(((1f - _e3178) * _e3145), (_e1395.z * _e1368), (_e1743.z * fma(_e3178, _e1759.x, _e1759.y))), _e1380, _e3206.z)), 1f); - } else { - phi_3799_ = (vec4((_e120.x * _e486.x), (_e120.y * _e486.y), (_e120.z * _e486.z), (_e120.w * _e486.w)) * _e289.member_2); - } - let _e3214 = phi_3799_; - global_20 = _e3214; - break; - } - case 1: { - let _e1901 = sqrt(fma(_e121.x, _e121.x, (_e121.y * _e121.y))); - if (_e1901 == 0f) { - phi_5808_ = vec3(0f, 0f, 0f); - } else { - phi_5808_ = (vec3(_e121.x, _e121.y, 0f) * (1f / _e1901)); - } - let _e1906 = phi_5808_; - global_20 = vec4(((_e1906.x + 1f) * 0.5f), ((_e1906.y + 1f) * 0.5f), ((_e1906.z + 1f) * 0.5f), 1f); - break; - } - case 2: { - let _e1880 = sqrt(fma(_e122.x, _e122.x, (_e122.y * _e122.y))); - if (_e1880 == 0f) { - phi_5759_ = vec3(0f, 0f, 0f); - } else { - phi_5759_ = (vec3(_e122.x, _e122.y, 0f) * (1f / _e1880)); - } - let _e1885 = phi_5759_; - global_20 = vec4(((_e1885.x + 1f) * 0.5f), ((_e1885.y + 1f) * 0.5f), ((_e1885.z + 1f) * 0.5f), 1f); - break; - } - case 3: { - if _e1722 { - phi_5710_ = vec3(0f, 0f, 0f); - } else { - phi_5710_ = (_e1349 * (1f / _e1721)); - } - let _e1864 = phi_5710_; - global_20 = vec4(((_e1864.x + 1f) * 0.5f), ((_e1864.y + 1f) * 0.5f), ((_e1864.z + 1f) * 0.5f), 1f); - break; - } - case 4: { - global_20 = _e120; - break; - } - case 5: { - let _e1845 = sqrt(fma(_e123.z, _e123.z, fma(_e123.x, _e123.x, (_e123.y * _e123.y)))); - if (_e1845 == 0f) { - phi_5661_ = vec3(0f, 0f, 0f); - } else { - phi_5661_ = (_e123 * (1f / _e1845)); - } - let _e1850 = phi_5661_; - global_20 = vec4(((_e1850.x + 1f) * 0.5f), ((_e1850.y + 1f) * 0.5f), ((_e1850.z + 1f) * 0.5f), 1f); - break; - } - case 6: { - let _e1823 = sqrt(fma(_e1347.z, _e1347.z, fma(_e1347.x, _e1347.x, (_e1347.y * _e1347.y)))); - if (_e1823 == 0f) { - phi_5612_ = vec3(0f, 0f, 0f); - } else { - phi_5612_ = (_e1347 * (1f / _e1823)); - } - let _e1828 = phi_5612_; - global_20 = vec4(((_e1828.x + 1f) * 0.5f), ((_e1828.y + 1f) * 0.5f), ((_e1828.z + 1f) * 0.5f), 1f); - break; - } - case 7: { - let _e1801 = sqrt(fma(_e124.z, _e124.z, fma(_e124.x, _e124.x, (_e124.y * _e124.y)))); - if (_e1801 == 0f) { - phi_5563_ = vec3(0f, 0f, 0f); - } else { - phi_5563_ = (_e124 * (1f / _e1801)); + let _e3380 = phi_7273_; + let _e3382 = phi_3979_; + global_20 = _e3382; + phi_7265_ = _e3380; + break; + } + case 1: { + let _e1906 = sqrt(fma(_e126.x, _e126.x, (_e126.y * _e126.y))); + if (_e1906 == 0f) { + phi_6008_ = vec3(0f, 0f, 0f); + } else { + phi_6008_ = (vec3(_e126.x, _e126.y, 0f) * (1f / _e1906)); + } + let _e1911 = phi_6008_; + global_20 = vec4(((_e1911.x + 1f) * 0.5f), ((_e1911.y + 1f) * 0.5f), ((_e1911.z + 1f) * 0.5f), 1f); + phi_7265_ = false; + break; + } + case 2: { + let _e1885 = sqrt(fma(_e127.x, _e127.x, (_e127.y * _e127.y))); + if (_e1885 == 0f) { + phi_5959_ = vec3(0f, 0f, 0f); + } else { + phi_5959_ = (vec3(_e127.x, _e127.y, 0f) * (1f / _e1885)); + } + let _e1890 = phi_5959_; + global_20 = vec4(((_e1890.x + 1f) * 0.5f), ((_e1890.y + 1f) * 0.5f), ((_e1890.z + 1f) * 0.5f), 1f); + phi_7265_ = false; + break; + } + case 3: { + if _e1727 { + phi_5910_ = vec3(0f, 0f, 0f); + } else { + phi_5910_ = (_e1354 * (1f / _e1726)); + } + let _e1869 = phi_5910_; + global_20 = vec4(((_e1869.x + 1f) * 0.5f), ((_e1869.y + 1f) * 0.5f), ((_e1869.z + 1f) * 0.5f), 1f); + phi_7265_ = false; + break; + } + case 4: { + global_20 = _e125; + phi_7265_ = false; + break; + } + case 5: { + let _e1850 = sqrt(fma(_e128.z, _e128.z, fma(_e128.x, _e128.x, (_e128.y * _e128.y)))); + if (_e1850 == 0f) { + phi_5861_ = vec3(0f, 0f, 0f); + } else { + phi_5861_ = (_e128 * (1f / _e1850)); + } + let _e1855 = phi_5861_; + global_20 = vec4(((_e1855.x + 1f) * 0.5f), ((_e1855.y + 1f) * 0.5f), ((_e1855.z + 1f) * 0.5f), 1f); + phi_7265_ = false; + break; + } + case 6: { + let _e1828 = sqrt(fma(_e1352.z, _e1352.z, fma(_e1352.x, _e1352.x, (_e1352.y * _e1352.y)))); + if (_e1828 == 0f) { + phi_5812_ = vec3(0f, 0f, 0f); + } else { + phi_5812_ = (_e1352 * (1f / _e1828)); + } + let _e1833 = phi_5812_; + global_20 = vec4(((_e1833.x + 1f) * 0.5f), ((_e1833.y + 1f) * 0.5f), ((_e1833.z + 1f) * 0.5f), 1f); + phi_7265_ = false; + break; + } + case 7: { + let _e1806 = sqrt(fma(_e129.z, _e129.z, fma(_e129.x, _e129.x, (_e129.y * _e129.y)))); + if (_e1806 == 0f) { + phi_5763_ = vec3(0f, 0f, 0f); + } else { + phi_5763_ = (_e129 * (1f / _e1806)); + } + let _e1811 = phi_5763_; + global_20 = vec4(((_e1811.x + 1f) * 0.5f), ((_e1811.y + 1f) * 0.5f), ((_e1811.z + 1f) * 0.5f), 1f); + phi_7265_ = false; + break; + } + case 8: { + let _e1784 = sqrt(fma(_e130.z, _e130.z, fma(_e130.x, _e130.x, (_e130.y * _e130.y)))); + if (_e1784 == 0f) { + phi_5714_ = vec3(0f, 0f, 0f); + } else { + phi_5714_ = (_e130 * (1f / _e1784)); + } + let _e1789 = phi_5714_; + global_20 = vec4(((_e1789.x + 1f) * 0.5f), ((_e1789.y + 1f) * 0.5f), ((_e1789.z + 1f) * 0.5f), 1f); + phi_7265_ = false; + break; + } + case 9: { + global_20 = vec4(_e1400.x, _e1400.y, _e1400.z, 1f); + phi_7265_ = false; + break; + } + case 10: { + global_20 = vec4(_e1748.x, _e1748.y, _e1748.z, 1f); + phi_7265_ = false; + break; + } + case 11: { + global_20 = vec4(_e1764.x, _e1764.y, 1f, 1f); + phi_7265_ = false; + break; + } + case 12: { + global_20 = (vec4(_e1358, _e1361, _e1364, (_e491.w * _e294.member_2.w)) * _e125); + phi_7265_ = false; + break; + } + case 13: { + global_20 = vec4(_e1378, _e1378, _e1378, 1f); + phi_7265_ = false; + break; + } + case 14: { + global_20 = vec4(_e1381, _e1381, _e1381, 1f); + phi_7265_ = false; + break; + } + case 15: { + global_20 = vec4(_e1385, _e1385, _e1385, 1f); + phi_7265_ = false; + break; + } + case 16: { + global_20 = vec4((_e1391 * _e294.member_1), (_e1393 * _e294.member_1), (_e1395 * _e294.member_1), 1f); + phi_7265_ = false; + break; + } + case 17: { + global_20 = vec4(_e1267.x, _e1267.y, _e1267.z, 1f); + phi_7265_ = false; + break; + } + case 18: { + global_20 = vec4(_e294.member.x, _e294.member.y, _e294.member.z, 1f); + phi_7265_ = false; + break; + } + case 19: { + global_20 = vec4(_e294.member_1, _e294.member_1, _e294.member_1, 1f); + phi_7265_ = false; + break; + } + default: { + phi_7265_ = false; + break; + } } - let _e1806 = phi_5563_; - global_20 = vec4(((_e1806.x + 1f) * 0.5f), ((_e1806.y + 1f) * 0.5f), ((_e1806.z + 1f) * 0.5f), 1f); - break; - } - case 8: { - let _e1779 = sqrt(fma(_e125.z, _e125.z, fma(_e125.x, _e125.x, (_e125.y * _e125.y)))); - if (_e1779 == 0f) { - phi_5514_ = vec3(0f, 0f, 0f); - } else { - phi_5514_ = (_e125 * (1f / _e1779)); + let _e3384 = phi_7265_; + if _e3384 { + break; } - let _e1784 = phi_5514_; - global_20 = vec4(((_e1784.x + 1f) * 0.5f), ((_e1784.y + 1f) * 0.5f), ((_e1784.z + 1f) * 0.5f), 1f); - break; - } - case 9: { - global_20 = vec4(_e1395.x, _e1395.y, _e1395.z, 1f); - break; - } - case 10: { - global_20 = vec4(_e1743.x, _e1743.y, _e1743.z, 1f); - break; - } - case 11: { - global_20 = vec4(_e1759.x, _e1759.y, 1f, 1f); - break; - } - case 12: { - global_20 = (vec4(_e1353, _e1356, _e1359, (_e486.w * _e289.member_2.w)) * _e120); - break; - } - case 13: { - global_20 = vec4(_e1373, _e1373, _e1373, 1f); - break; - } - case 14: { - global_20 = vec4(_e1376, _e1376, _e1376, 1f); - break; - } - case 15: { - global_20 = vec4(_e1380, _e1380, _e1380, 1f); - break; - } - case 16: { - global_20 = vec4((_e1386 * _e289.member_1), (_e1388 * _e289.member_1), (_e1390 * _e289.member_1), 1f); - break; - } - case 17: { - global_20 = vec4(_e1262.x, _e1262.y, _e1262.z, 1f); - break; - } - case 18: { - global_20 = vec4(_e289.member.x, _e289.member.y, _e289.member.z, 1f); - break; - } - case 19: { - global_20 = vec4(_e289.member_1, _e289.member_1, _e289.member_1, 1f); - break; - } - default: { break; } } diff --git a/crates/renderling/src/atlas.rs b/crates/renderling/src/atlas.rs index 84a4572..abde7f5 100644 --- a/crates/renderling/src/atlas.rs +++ b/crates/renderling/src/atlas.rs @@ -87,7 +87,6 @@ impl AtlasTexture { // Convert `clip_pos` into uv coords to figure out where in the texture // this point lives let input_uv = (clip_pos * Vec2::new(1.0, -1.0) + Vec2::splat(1.0)) * Vec2::splat(0.5); - // let input_uv = (clip_pos + Vec2::splat(1.0)) * Vec2::new(0.5, -0.5); self.uv(input_uv, atlas_size).xy() } diff --git a/crates/renderling/src/light.rs b/crates/renderling/src/light.rs index 51f3973..af76e19 100644 --- a/crates/renderling/src/light.rs +++ b/crates/renderling/src/light.rs @@ -4,12 +4,11 @@ //! //! Shadow mapping. use crabslab::{Array, Id, Slab, SlabItem}; -use glam::{Mat4, UVec2, Vec3, Vec3Swizzles, Vec4, Vec4Swizzles}; +use glam::{Mat4, UVec2, Vec2, Vec3, Vec3Swizzles, Vec4, Vec4Swizzles}; use spirv_std::spirv; use crate::{ atlas::{AtlasDescriptor, AtlasTexture}, - bvol::Frustum, math::{IsSampler, IsVector, Sample2dArray}, stage::Renderlet, transform::Transform, @@ -48,6 +47,7 @@ pub struct ShadowMapDescriptor { pub atlas_textures_array: Array>, pub bias_min: f32, pub bias_max: f32, + pub pcf_samples: u32, } #[cfg(test)] @@ -189,10 +189,12 @@ impl DirectionalLightDescriptor { pub fn shadow_mapping_projection_and_view( &self, parent_light_transform: &Mat4, - // Limits of the reach of the light - frustum: Frustum, + // Limits of the light's reach + // + // The maximum should be the `Camera`'s `Frustum::depth()`. + size: f32, ) -> (Mat4, Mat4) { - let depth = frustum.depth(); + let depth = size; let hd = depth * 0.5; let projection = Mat4::orthographic_rh(-hd, hd, -hd, hd, 0.0, depth); let direction = parent_light_transform @@ -344,6 +346,7 @@ pub struct ShadowCalculation { pub light_direction: Vec3, pub bias_min: f32, pub bias_max: f32, + pub pcf_samples: u32, } impl ShadowCalculation { @@ -381,6 +384,7 @@ impl ShadowCalculation { light_direction, bias_min: shadow_map_descr.bias_min, bias_max: shadow_map_descr.bias_max, + pcf_samples: shadow_map_descr.pcf_samples, } } @@ -401,45 +405,60 @@ impl ShadowCalculation { light_direction, bias_min, bias_max, + pcf_samples, } = self; crate::println!("frag_pos_in_light_space: {frag_pos_in_light_space}"); + if !crate::math::is_inside_clip_space(frag_pos_in_light_space.xyz()) { + return 0.0; + } // The range of coordinates in the light's clip space is -1.0 to 1.0 for x and y, // but the texture space is [0, 1], and Y increases downward, so we do this // conversion to flip Y and also normalize to the range [0.0, 1.0]. // Z should already be 0.0 to 1.0. - let proj_coords = shadow_map_atlas_texture.constrain_clip_coords_to_texture_space( - frag_pos_in_light_space.xy(), - *shadow_map_atlas_size, - ); - crate::println!("proj_coords: {proj_coords}"); + let proj_coords_uv = (frag_pos_in_light_space.xy() * Vec2::new(1.0, -1.0) + + Vec2::splat(1.0)) + * Vec2::splat(0.5); + crate::println!("proj_coords_uv: {proj_coords_uv}"); // With these projected coordinates we can sample the depth map as the // resulting [0,1] coordinates from proj_coords directly correspond to // the transformed NDC coordinates from the `ShadowMap::update` render pass. // This gives us the closest depth from the light's point of view: - let closest_depth = shadow_map - .sample_by_lod( - *shadow_map_sampler, - proj_coords.extend(shadow_map_atlas_texture.layer_index as f32), - 0.0, - ) - .x; - // To get the current depth at this fragment we simply retrieve the projected vector's z - // coordinate which equals the depth of this fragment from the light's perspective. - let current_depth = frag_pos_in_light_space.z; - - // If the `current_depth`, which is the depth of the fragment from the lights POV, is - // greater than the `closest_depth` of the shadow map at that fragment, the fragment - // is in shadow - crate::println!("current_depth: {current_depth}"); - crate::println!("closest_depth: {closest_depth}"); - let bias = (bias_max * (1.0 - surface_normal.dot(*light_direction))).max(*bias_min); - - if (current_depth - bias) > closest_depth { - 1.0 - } else { - 0.0 + let pcf_samples_2 = *pcf_samples as i32 / 2; + let texel_size = 1.0 + / Vec2::new( + shadow_map_atlas_texture.size_px.x as f32, + shadow_map_atlas_texture.size_px.y as f32, + ); + let mut shadow = 0.0f32; + for x in -pcf_samples_2..=pcf_samples_2 { + for y in -pcf_samples_2..=pcf_samples_2 { + let proj_coords = shadow_map_atlas_texture.uv( + proj_coords_uv + Vec2::new(x as f32, y as f32) * texel_size, + *shadow_map_atlas_size, + ); + let closest_depth = shadow_map + .sample_by_lod(*shadow_map_sampler, proj_coords, 0.0) + .x; + // To get the current depth at this fragment we simply retrieve the projected vector's z + // coordinate which equals the depth of this fragment from the light's perspective. + let current_depth = frag_pos_in_light_space.z; + + // If the `current_depth`, which is the depth of the fragment from the lights POV, is + // greater than the `closest_depth` of the shadow map at that fragment, the fragment + // is in shadow + crate::println!("current_depth: {current_depth}"); + crate::println!("closest_depth: {closest_depth}"); + let bias = (bias_max * (1.0 - surface_normal.dot(*light_direction))).max(*bias_min); + + shadow += if (current_depth - bias) > closest_depth { + 1.0 + } else { + 0.0 + }; + } } + shadow / ((pcf_samples_2 * 2) as f32 + 1.0) } } @@ -488,7 +507,22 @@ mod test { } #[test] - fn shadow_mapping_sanity() { - // Test that shadow mapping is working as expected. + /// Test that we can determine if a point is inside clip space or not. + fn clip_space_bounds_sanity() { + let inside = Vec3::ONE; + assert!( + crate::math::is_inside_clip_space(inside), + "should be inside" + ); + let inside = Vec3::new(0.5, -0.5, -0.8); + assert!( + crate::math::is_inside_clip_space(inside), + "should be inside" + ); + let outside = Vec3::new(0.5, 0.0, 1.3); + assert!( + !crate::math::is_inside_clip_space(outside), + "should be outside" + ); } } diff --git a/crates/renderling/src/light/cpu.rs b/crates/renderling/src/light/cpu.rs index 668f836..514b8c7 100644 --- a/crates/renderling/src/light/cpu.rs +++ b/crates/renderling/src/light/cpu.rs @@ -17,8 +17,6 @@ use snafu::prelude::*; use crate::{ atlas::{Atlas, AtlasBlitter, AtlasBlittingOperation, AtlasError, AtlasImage, AtlasTexture}, bindgroup::ManagedBindGroup, - bvol::Frustum, - camera::Camera, stage::{NestedTransform, Renderlet}, }; @@ -257,12 +255,12 @@ impl AnalyticalLightBundle { } impl AnalyticalLightBundle { - pub fn light_space_transforms(&self, frustum: Frustum) -> Vec { + pub fn light_space_transforms(&self, size: f32) -> Vec { let t = self.transform.get(); let m = Mat4::from(t); match &self.light_details { LightDetails::Directional(d) => vec![{ - let (p, j) = d.get().shadow_mapping_projection_and_view(&m, frustum); + let (p, j) = d.get().shadow_mapping_projection_and_view(&m, size); p * j }], LightDetails::Point(_) => todo!(), @@ -546,8 +544,10 @@ impl Lighting { pub fn new_shadow_map( &self, analytical_light_bundle: &AnalyticalLightBundle, + // Size of the shadow map size: UVec2, - camera: &Camera, + // Diameter of the area to cover with the shadow map, in world coordinates + depth: f32, ) -> Result { let stage_slab_buffer = self.stage_slab_buffer.read().unwrap(); let is_point_light = @@ -566,12 +566,13 @@ impl Lighting { let blitting_op = self.shadow_map_update_blitter.new_blitting_operation(atlas); let light_space_transforms = self .light_slab - .new_array(analytical_light_bundle.light_space_transforms(camera.frustum())); + .new_array(analytical_light_bundle.light_space_transforms(depth)); let shadowmap_descriptor = self.light_slab.new_value(ShadowMapDescriptor { light_space_transforms_array: light_space_transforms.array(), atlas_textures_array: atlas_textures_array.array(), - bias_min: 0.005, - bias_max: 0.05, + bias_min: 0.0005, + bias_max: 0.005, + pcf_samples: 4, }); // Set the descriptor in the light, so the shader knows to use it analytical_light_bundle.light.modify(|light| { @@ -619,13 +620,135 @@ mod test { camera::Camera, light::{ShadowCalculation, ShadowMappingVertexInfo}, math::{ConstTexture, CpuTexture2dArray, IsVector}, - pbr::PbrConfig, stage::RenderletPbrVertexInfo, texture::DepthTexture, }; use super::*; + #[test] + fn shadow_mapping_just_cuboid() { + let w = 800.0; + let h = 800.0; + let ctx = crate::Context::headless(w as u32, h as u32); + let mut stage = ctx + .new_stage() + .with_lighting(true) + .with_msaa_sample_count(4); + + // let hdr_path = + // std::path::PathBuf::from(std::env!("CARGO_WORKSPACE_DIR")).join("img/hdr/night.hdr"); + // let hdr_img = AtlasImage::from_hdr_path(hdr_path).unwrap(); + + let camera = stage.new_value(Camera::default()); + // let skybox = Skybox::new(&ctx, hdr_img, camera.id()); + // stage.set_skybox(skybox); + log::info!("camera_id: {:?}", camera.id()); + let doc = stage + .load_gltf_document_from_path( + crate::test::workspace_dir() + .join("gltf") + .join("shadow_mapping_only_cuboid.gltf"), + camera.id(), + ) + .unwrap(); + let gltf_camera = doc.cameras.first().unwrap(); + let mut c = gltf_camera.get_camera(); + c.set_projection(crate::camera::perspective(w, h)); + camera.set(c); + + let frame = ctx.get_next_frame().unwrap(); + stage.render(&frame.view()); + let img = frame.read_image().unwrap(); + frame.present(); + + // Rendering the scene without shadows as a sanity check + img_diff::save("shadows/shadow_mapping_just_cuboid/scene_before.png", img); + + let gltf_light = doc.lights.first().unwrap(); + let shadow_map = stage + .lighting() + .new_shadow_map(gltf_light, UVec2::splat(256), 20.0) + .unwrap(); + shadow_map.shadowmap_descriptor.modify(|desc| { + desc.bias_min = 0.00008; + desc.bias_max = 0.00008; + }); + shadow_map.update(stage.lighting(), doc.renderlets_iter()); + + let frame = ctx.get_next_frame().unwrap(); + stage.render(&frame.view()); + let img = frame.read_image().unwrap(); + img_diff::save("shadows/shadow_mapping_just_cuboid/scene_after.png", img); + frame.present(); + } + + #[test] + fn shadow_mapping_just_cuboid_red_and_blue() { + let w = 800.0; + let h = 800.0; + let ctx = crate::Context::headless(w as u32, h as u32); + let mut stage = ctx + .new_stage() + .with_lighting(true) + .with_msaa_sample_count(4); + + // let hdr_path = + // std::path::PathBuf::from(std::env!("CARGO_WORKSPACE_DIR")).join("img/hdr/night.hdr"); + // let hdr_img = AtlasImage::from_hdr_path(hdr_path).unwrap(); + + let camera = stage.new_value(Camera::default()); + // let skybox = Skybox::new(&ctx, hdr_img, camera.id()); + // stage.set_skybox(skybox); + log::info!("camera_id: {:?}", camera.id()); + let doc = stage + .load_gltf_document_from_path( + crate::test::workspace_dir() + .join("gltf") + .join("shadow_mapping_only_cuboid_red_and_blue.gltf"), + camera.id(), + ) + .unwrap(); + let gltf_camera = doc.cameras.first().unwrap(); + let mut c = gltf_camera.get_camera(); + c.set_projection(crate::camera::perspective(w, h)); + camera.set(c); + + let gltf_light_a = doc.lights.first().unwrap(); + let gltf_light_b = doc.lights.get(1).unwrap(); + let shadow_map_a = stage + .lighting() + .new_shadow_map(gltf_light_a, UVec2::splat(256), 20.0) + .unwrap(); + shadow_map_a.shadowmap_descriptor.modify(|desc| { + desc.bias_min = 0.00008; + desc.bias_max = 0.00008; + }); + shadow_map_a.update(stage.lighting(), doc.renderlets_iter()); + let shadow_map_b = stage + .lighting() + .new_shadow_map(gltf_light_b, UVec2::splat(256), 20.0) + .unwrap(); + shadow_map_b.shadowmap_descriptor.modify(|desc| { + desc.bias_min = 0.00008; + desc.bias_max = 0.00008; + }); + shadow_map_b.update(stage.lighting(), doc.renderlets_iter()); + + let frame = ctx.get_next_frame().unwrap(); + crate::test::capture_gpu_frame( + &ctx, + "shadows/shadow_mapping_just_cuboid/red_blue.gputrace", + || stage.render(&frame.view()), + ); + let img = frame.read_image().unwrap(); + img_diff::save( + "shadows/shadow_mapping_just_cuboid/scene_red_and_blue.png", + img, + ); + frame.present(); + } + #[test] fn shadow_mapping_sanity() { let w = 800.0; @@ -669,6 +792,7 @@ mod test { "light's global transform id is different from its transform_id" ); + let shadow_depth = 20.0; // 1. Get the light transform // 2. Create a camera to view the scene from the light's POV // 3. Render the scene to an image to sanity check the setup @@ -676,14 +800,11 @@ mod test { // 5. Extract ComparisonInfo for each vertex let (light_projection, light_view) = { let parent_light_transform = Mat4::from(gltf_light.transform.get_global_transform()); - let camera = camera.get(); match &gltf_light.light_details { LightDetails::Directional(d) => { let directional_light = d.get(); - let (projection, view) = directional_light.shadow_mapping_projection_and_view( - &parent_light_transform, - camera.frustum(), - ); + let (projection, view) = directional_light + .shadow_mapping_projection_and_view(&parent_light_transform, shadow_depth); (projection, view) } _ => panic!("wasn't supposed to be anything but directional"), @@ -764,7 +885,7 @@ mod test { let shadows = stage .lighting() - .new_shadow_map(gltf_light, UVec2::new(w as u32, h as u32), &camera.get()) + .new_shadow_map(gltf_light, UVec2::new(w as u32, h as u32), shadow_depth) .unwrap(); crate::test::capture_gpu_frame( @@ -986,22 +1107,4 @@ mod test { frame.present(); img_diff::save("shadows/shadow_mapping_sanity/stage_render.png", img); } - - #[test] - fn light_transform_depth_sanity() { - let camera = Camera::default_perspective(800.0, 800.0); - let directional_light = DirectionalLightDescriptor { - direction: Vec3::new(1.0, 1.0, 0.0), - ..Default::default() - }; - let (light_projection, light_view) = - directional_light.shadow_mapping_projection_and_view(&Mat4::IDENTITY, camera.frustum()); - let light_camera = Camera::new(light_projection, light_view); - log::info!("z_near: {}", light_camera.z_near()); - log::info!("z_far: {}", light_camera.z_far()); - log::info!("depth: {}", light_camera.depth()); - log::info!("near_plane: {}", light_camera.near_plane()); - log::info!("far_plane: {}", light_camera.far_plane()); - log::info!("position: {}", light_camera.position()); - } } diff --git a/crates/renderling/src/math.rs b/crates/renderling/src/math.rs index 2a341ed..c7d5722 100644 --- a/crates/renderling/src/math.rs +++ b/crates/renderling/src/math.rs @@ -618,6 +618,10 @@ pub fn reflect(i: Vec3, n: Vec3) -> Vec3 { i - 2.0 * n.dot(i) * n } +pub fn is_inside_clip_space(p: Vec3) -> bool { + p.x.abs() <= 1.0 && p.y.abs() <= 1.0 && p.z.abs() <= 1.0 +} + pub struct Plane { pub point: Vec3, pub norm: Vec3, diff --git a/crates/renderling/src/pbr.rs b/crates/renderling/src/pbr.rs index 1f265cf..5749670 100644 --- a/crates/renderling/src/pbr.rs +++ b/crates/renderling/src/pbr.rs @@ -598,14 +598,12 @@ where my_println!("lights: {analytical_lights_array:?}"); my_println!("n: {n:?}"); my_println!("v: {v:?}"); - // reflectance + + // accumulated outgoing radiance let mut lo = Vec3::ZERO; for i in 0..analytical_lights_array.len() { // calculate per-light radiance let light_id = light_slab.read(analytical_lights_array.at(i)); - if light_id.is_none() { - break; - } let light = light_slab.read(light_id); let transform = light_slab.read(light.transform_id); let transform = Mat4::from(transform); @@ -668,7 +666,7 @@ where let shadow = if light.shadow_map_desc_id.is_some() { // Shadow is 1.0 when the fragment is in the shadow of this light, - // and 0.0 otherwise + // and 0.0 in darkness ShadowCalculation::new(light_slab, light, in_pos, n, l) .run(shadow_map, shadow_map_sampler) } else { diff --git a/gltf/shadow_mapping_only_cuboid.bin b/gltf/shadow_mapping_only_cuboid.bin new file mode 100644 index 0000000000000000000000000000000000000000..807653c050f69e61222bb6979d0d2ca5fac5325c GIT binary patch literal 1680 zcmah|yHdkI3|uGVO&;U{EnkA;j?YNL3>_t{YyO6of{;IB*FFW^aZYY#Pb+D)zD!0y zUA{cO?ScA8bn?(|G+jLSl+NcL53^0ZgCE^{I=Op;-js!VkNN1k5qEDek4E!XM>zV1 zPR+iLZ5C>#u^6{`qy1J7aZ$S5DK#&FAENQf{-Vck$EkV_t{YyO6of{;IB*FFW^aZYY#Pb+D)zD!0y zUA{cO?ScA8bn?(|G+jLSl+NcL53^0ZgCE^{I=Op;-js!VkNN1k5qEDek4E!XM>zV1 zPR+iLZ5C>#u^6{`qy1J7aZ$S5DK#&FAENQf{-Vck$EkV