@ludicon/spark.js
Version:
Real-Time GPU Texture Codecs for the Web
5 lines (4 loc) • 40.9 kB
JavaScript
const spark_etc2_rgba = "enable f16;alias RTArr=array<vec4u>;struct _1{_0:RTArr,}@binding(1) @group(0) var _2:sampler;@binding(0) @group(0) var _3:texture_2d<f32>;var<private>x_3160:vec3u;var<private>x_3167:vec3u;@binding(2) @group(0) var<storage,read_write>x_3257:_1;const _4=vec2i(2i,0i);const _5=vec2i(0i,2i);const _6=vec2i(2i);const _7=array<u32,4u>(28143u,14526u,26814u,27070u);const _8=mat3x3h(vec3h(0.4873046875h,-0.3125h,-0.0124969482421875h),vec3h(-0.3125h,0.4873046875h,-0.0124969482421875h),vec3h(-0.0124969482421875h,-0.0124969482421875h,0.287353515625h));const _9=vec3h(1.0h);const _a=array<f32,7u>(5.0f,11.0f,19.0f,27.5f,39.0f,52.0f,69.5f);const _b=array<u32,8u>(2050u,4357u,7433u,10765u,15378u,20504u,27169u,46895u);fn _c(){var _d:array<u32,8u>;var _e:array<f32,7u>;var _f:array<f32,7u>;var _g:array<u32,4u>;var _h:array<u32,4u>;var _i:array<f16,16u>;var _j:array<f32,4u>;var _k:array<u32,4u>;var _l:array<u32,4u>;var _m:array<u32,4u>;var _n:array<f16,16u>;var _o:bool;var _p:bool;var _q:f16;var _r:f16;var _s:f16;var _t:i32;var _u:f16;var _v:f16;var _w:vec2u;var _x:u32;var _y:i32;var _z:f16;var _10:f16;var _11:f16;var _12:f16;var _13:f16;var _14:f16;var _15:f16;var _16:f16;var _17:f16;var _18:f16;var _19:f16;var _1a:f16;var _1b:f16;var _1c:f16;var _1d:f16;var _1e:f16;var _1f:f16;var _1g:f16;var _1h:f16;var _1i:f16;var _1j:f16;var _1k:f16;var _1l:f16;var _1m:f16;var _1n:f16;var _1o:f16;var _1p:f16;var _1q:f16;var _1r:f16;var _1s:f16;var _1t:f16;var _1u:f16;var _1v:vec2u;var _1w:vec2u;var _1x:vec2u;switch(0u){default:{let _1y=bitcast<vec2u>(vec2i(textureDimensions(_3,0i)));let _1z=((_1y.x+3u)/4u);let _20=x_3160;let _21=x_3160.xy;let _22=x_3160.x;let _23=(_22>=_1z);_p=_23;if(!(_23)){_o=(_20.y>=((_1y.y+3u)/4u));_p=_o;}if(_p){break;}let _24=(vec2f(1.0f)/vec2f(vec2i(textureDimensions(_3,0i))));let _25=((vec2f(bitcast<vec2i>((_21*vec2u(4u))))*_24)+_24);let _26=vec4h(textureGather(0i,_3,_2,_25,vec2i()));let _27=vec4h(textureGather(0i,_3,_2,_25,_4));let _28=vec4h(textureGather(0i,_3,_2,_25,_5));let _29=vec4h(textureGather(0i,_3,_2,_25,_6));let _2a=_26.w;let _2b=_26.z;let _2c=_27.w;let _2d=_27.z;let _2e=_26.x;let _2f=_26.y;let _2g=_27.x;let _2h=_27.y;let _2i=_28.w;let _2j=_28.z;let _2k=_29.w;let _2l=_29.z;let _2m=_28.x;let _2n=_28.y;let _2o=_29.x;let _2p=_29.y;let _2q=vec4h(textureGather(1i,_3,_2,_25,vec2i()));let _2r=vec4h(textureGather(1i,_3,_2,_25,_4));let _2s=vec4h(textureGather(1i,_3,_2,_25,_5));let _2t=vec4h(textureGather(1i,_3,_2,_25,_6));let _2u=_2q.w;let _2v=_2q.z;let _2w=_2r.w;let _2x=_2r.z;let _2y=_2q.x;let _2z=_2q.y;let _30=_2r.x;let _31=_2r.y;let _32=_2s.w;let _33=_2s.z;let _34=_2t.w;let _35=_2t.z;let _36=_2s.x;let _37=_2s.y;let _38=_2t.x;let _39=_2t.y;let _3a=vec4h(textureGather(2i,_3,_2,_25,vec2i()));let _3b=vec4h(textureGather(2i,_3,_2,_25,_4));let _3c=vec4h(textureGather(2i,_3,_2,_25,_5));let _3d=vec4h(textureGather(2i,_3,_2,_25,_6));let _3e=_3a.w;let _3f=_3a.z;let _3g=_3b.w;let _3h=_3b.z;let _3i=_3a.x;let _3j=_3a.y;let _3k=_3b.x;let _3l=_3b.y;let _3m=_3c.w;let _3n=_3c.z;let _3o=_3d.w;let _3p=_3d.z;let _3q=_3c.x;let _3r=_3c.y;let _3s=_3d.x;let _3t=_3d.y;let _3u=vec4h(textureGather(3i,_3,_2,_25,vec2i()));let _3v=vec4h(textureGather(3i,_3,_2,_25,_4));let _3w=vec4h(textureGather(3i,_3,_2,_25,_5));let _3x=vec4h(textureGather(3i,_3,_2,_25,_6));let _3y=_3u.w;let _3z=_3u.z;let _40=_3v.w;let _41=_3v.z;let _42=_3u.x;let _43=_3u.y;let _44=_3v.x;let _45=_3v.y;let _46=_3w.w;let _47=_3w.z;let _48=_3x.w;let _49=_3x.z;let _4a=_3w.x;let _4b=_3w.y;let _4c=_3x.x;let _4d=_3x.y;let _4e=vec4h(_2a,_2u,_3e,_3y).xyz;let _4f=vec4h(_2b,_2v,_3f,_3z).xyz;let _4g=vec4h(_2c,_2w,_3g,_40).xyz;let _4h=vec4h(_2d,_2x,_3h,_41).xyz;let _4i=vec4h(_2e,_2y,_3i,_42).xyz;let _4j=vec4h(_2f,_2z,_3j,_43).xyz;let _4k=vec4h(_2g,_30,_3k,_44).xyz;let _4l=vec4h(_2h,_31,_3l,_45).xyz;let _4m=vec4h(_2i,_32,_3m,_46).xyz;let _4n=vec4h(_2j,_33,_3n,_47).xyz;let _4o=vec4h(_2k,_34,_3o,_48).xyz;let _4p=vec4h(_2l,_35,_3p,_49).xyz;let _4q=vec4h(_2m,_36,_3q,_4a).xyz;let _4r=vec4h(_2n,_37,_3r,_4b).xyz;let _4s=vec4h(_2o,_38,_3s,_4c).xyz;let _4t=vec4h(_2p,_39,_3t,_4d).xyz;let _4u=array<f16,16u>(_3y,_3z,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_4a,_4b,_4c,_4d);_n=_4u;_i=_4u;let _4v=_i[0i];_q=_4v;_r=_4v;_s=_4v;_t=1i;loop{var _4w:f16;var _4x:f16;var _4y:f16;var _4z:i32;if((_t<16i)){}else{break;}continuing{let _50=_i[_t];_4w=min(_s,_50);_4x=max(_r,_50);_4y=(_q+_50);_4z=(_t+1i);_q=_4y;_r=_4x;_s=_4w;_t=_4z;}}let _51=(_s*255.0h);let _52=(_r*255.0h);let _53=(_52-_51);let _54=(_51+_52);let _55=(_q*15.9375h);_u=65504.0h;_v=0.0h;_w=vec2u();_x=0u;_y=0i;loop{var _56:u32;var _57:u32;var _58:f16;var _59:f16;var _5a:u32;var _5b:u32;var _5c:f16;var _5d:f16;var _5e:u32;var _5f:u32;var _5g:f16;var _5h:f16;var _5i:u32;var _5j:u32;var _5k:f16;var _5l:f16;var _5m:u32;var _5n:u32;var _5o:f16;var _5p:f16;var _5q:u32;var _5r:u32;var _5s:f16;var _5t:f16;var _5u:u32;var _5v:u32;var _5w:f16;var _5x:f16;var _5y:u32;var _5z:u32;var _60:f16;var _61:f16;var _62:u32;var _63:u32;var _64:f16;var _65:f16;var _66:u32;var _67:u32;var _68:f16;var _69:f16;var _6a:u32;var _6b:u32;var _6c:f16;var _6d:f16;var _6e:u32;var _6f:u32;var _6g:f16;var _6h:f16;var _6i:u32;var _6j:u32;var _6k:f16;var _6l:f16;var _6m:u32;var _6n:u32;var _6o:f16;var _6p:f16;var _6q:u32;var _6r:u32;var _6s:f16;var _6t:f16;var _6u:u32;var _6v:u32;var _6w:f16;var _6x:f16;var _6y:u32;var _6z:u32;var _70:i32;if((_y<4i)){}else{break;}_j=array<f32,4u>(0.05432900041341781616f,0.04129000008106231689f,0.05432900041341781616f,0.05432900041341781616f);let _71=clamp(trunc((_53*f16(_j[_y]))),1.0h,15.0h);let _72=trunc((0.5h*(_71+_54)));let _73=(2.0h/_71);let _74=(255.0h*_73);let _75=(30.0h-(_72*_73));let _76=(_71*0.00390625h);let _77=((_72*0.00390625h)+0.001953125h);_k=array<u32,4u>(4289374800u,2857717760u,2857717760u,2861912064u);let _78=_k[_y];_l=array<u32,4u>(1073741823u,1073741738u,1073741822u,1073741823u);let _79=_l[_y];_h=_7;let _7a=~(_h[_y]);let _7b=_n[0i];let _7c=clamp(u32(((_7b*_74)+_75)),0u,59u);let _7d=select(0u,1u,(_7c>28u));let _7e=(_7c-29u);let _7f=(_7d==0u);if(_7f){_56=~(_7e);_57=_56;}else{_57=_7e;}let _7g=((select(_78,_79,(_57>15u))>>((2u*_57)&31u))&3u);let _7h=f16(((_7a>>(4u*_7g))&15u));if(_7f){_58=(-1.0h-_7h);_59=_58;}else{_59=_7h;}let _7i=(0u|((_7g|(_7d<<2u))<<bitcast<u32>(21i)));let _7j=(clamp(((_59*_76)+_77),0.0h,1.0h)-_7b);let _7k=(_7j*_7j);let _7l=_n[4i];let _7m=clamp(u32(((_7l*_74)+_75)),0u,59u);let _7n=select(0u,1u,(_7m>28u));let _7o=(_7m-29u);let _7p=(_7n==0u);if(_7p){_5a=~(_7o);_5b=_5a;}else{_5b=_7o;}let _7q=((select(_78,_79,(_5b>15u))>>((2u*_5b)&31u))&3u);let _7r=f16(((_7a>>(4u*_7q))&15u));if(_7p){_5c=(-1.0h-_7r);_5d=_5c;}else{_5d=_7r;}let _7s=(_7i|((_7q|(_7n<<2u))<<bitcast<u32>(18i)));let _7t=(clamp(((_5d*_76)+_77),0.0h,1.0h)-_7l);let _7u=(_7k+(_7t*_7t));let _7v=_n[8i];let _7w=clamp(u32(((_7v*_74)+_75)),0u,59u);let _7x=select(0u,1u,(_7w>28u));let _7y=(_7w-29u);let _7z=(_7x==0u);if(_7z){_5e=~(_7y);_5f=_5e;}else{_5f=_7y;}let _80=((select(_78,_79,(_5f>15u))>>((2u*_5f)&31u))&3u);let _81=f16(((_7a>>(4u*_80))&15u));if(_7z){_5g=(-1.0h-_81);_5h=_5g;}else{_5h=_81;}let _82=(_7s|((_80|(_7x<<2u))<<bitcast<u32>(15i)));let _83=(clamp(((_5h*_76)+_77),0.0h,1.0h)-_7v);let _84=(_7u+(_83*_83));let _85=_n[12i];let _86=clamp(u32(((_85*_74)+_75)),0u,59u);let _87=select(0u,1u,(_86>28u));let _88=(_86-29u);let _89=(_87==0u);if(_89){_5i=~(_88);_5j=_5i;}else{_5j=_88;}let _8a=((select(_78,_79,(_5j>15u))>>((2u*_5j)&31u))&3u);let _8b=f16(((_7a>>(4u*_8a))&15u));if(_89){_5k=(-1.0h-_8b);_5l=_5k;}else{_5l=_8b;}let _8c=(_82|((_8a|(_87<<2u))<<bitcast<u32>(12i)));let _8d=(clamp(((_5l*_76)+_77),0.0h,1.0h)-_85);let _8e=(_84+(_8d*_8d));let _8f=_n[1i];let _8g=clamp(u32(((_8f*_74)+_75)),0u,59u);let _8h=select(0u,1u,(_8g>28u));let _8i=(_8g-29u);let _8j=(_8h==0u);if(_8j){_5m=~(_8i);_5n=_5m;}else{_5n=_8i;}let _8k=((select(_78,_79,(_5n>15u))>>((2u*_5n)&31u))&3u);let _8l=f16(((_7a>>(4u*_8k))&15u));if(_8j){_5o=(-1.0h-_8l);_5p=_5o;}else{_5p=_8l;}let _8m=(_8c|((_8k|(_8h<<2u))<<bitcast<u32>(9i)));let _8n=(clamp(((_5p*_76)+_77),0.0h,1.0h)-_8f);let _8o=(_8e+(_8n*_8n));let _8p=_n[5i];let _8q=clamp(u32(((_8p*_74)+_75)),0u,59u);let _8r=select(0u,1u,(_8q>28u));let _8s=(_8q-29u);let _8t=(_8r==0u);if(_8t){_5q=~(_8s);_5r=_5q;}else{_5r=_8s;}let _8u=((select(_78,_79,(_5r>15u))>>((2u*_5r)&31u))&3u);let _8v=f16(((_7a>>(4u*_8u))&15u));if(_8t){_5s=(-1.0h-_8v);_5t=_5s;}else{_5t=_8v;}let _8w=(_8m|((_8u|(_8r<<2u))<<bitcast<u32>(6i)));let _8x=(clamp(((_5t*_76)+_77),0.0h,1.0h)-_8p);let _8y=(_8o+(_8x*_8x));let _8z=_n[9i];let _90=clamp(u32(((_8z*_74)+_75)),0u,59u);let _91=select(0u,1u,(_90>28u));let _92=(_90-29u);let _93=(_91==0u);if(_93){_5u=~(_92);_5v=_5u;}else{_5v=_92;}let _94=((select(_78,_79,(_5v>15u))>>((2u*_5v)&31u))&3u);let _95=f16(((_7a>>(4u*_94))&15u));if(_93){_5w=(-1.0h-_95);_5x=_5w;}else{_5x=_95;}let _96=(_8w|((_94|(_91<<2u))<<bitcast<u32>(3i)));let _97=(clamp(((_5x*_76)+_77),0.0h,1.0h)-_8z);let _98=(_8y+(_97*_97));let _99=_n[13i];let _9a=clamp(u32(((_99*_74)+_75)),0u,59u);let _9b=select(0u,1u,(_9a>28u));let _9c=(_9a-29u);let _9d=(_9b==0u);if(_9d){_5y=~(_9c);_5z=_5y;}else{_5z=_9c;}let _9e=((select(_78,_79,(_5z>15u))>>((2u*_5z)&31u))&3u);let _9f=f16(((_7a>>(4u*_9e))&15u));if(_9d){_60=(-1.0h-_9f);_61=_60;}else{_61=_9f;}let _9g=(_96|((_9e|(_9b<<2u))<<bitcast<u32>(0i)));let _9h=(clamp(((_61*_76)+_77),0.0h,1.0h)-_99);let _9i=(_98+(_9h*_9h));let _9j=_n[2i];let _9k=clamp(u32(((_9j*_74)+_75)),0u,59u);let _9l=select(0u,1u,(_9k>28u));let _9m=(_9k-29u);let _9n=(_9l==0u);if(_9n){_62=~(_9m);_63=_62;}else{_63=_9m;}let _9o=((select(_78,_79,(_63>15u))>>((2u*_63)&31u))&3u);let _9p=f16(((_7a>>(4u*_9o))&15u));if(_9n){_64=(-1.0h-_9p);_65=_64;}else{_65=_9p;}let _9q=(0u|((_9o|(_9l<<2u))<<bitcast<u32>(21i)));let _9r=vec2u(_9g,_9q);let _9s=(clamp(((_65*_76)+_77),0.0h,1.0h)-_9j);let _9t=(_9i+(_9s*_9s));let _9u=_n[6i];let _9v=clamp(u32(((_9u*_74)+_75)),0u,59u);let _9w=select(0u,1u,(_9v>28u));let _9x=(_9v-29u);let _9y=(_9w==0u);if(_9y){_66=~(_9x);_67=_66;}else{_67=_9x;}let _9z=((select(_78,_79,(_67>15u))>>((2u*_67)&31u))&3u);let _a0=f16(((_7a>>(4u*_9z))&15u));if(_9y){_68=(-1.0h-_a0);_69=_68;}else{_69=_a0;}let _a1=(_9q|((_9z|(_9w<<2u))<<bitcast<u32>(18i)));let _a2=(clamp(((_69*_76)+_77),0.0h,1.0h)-_9u);let _a3=(_9t+(_a2*_a2));let _a4=_n[10i];let _a5=clamp(u32(((_a4*_74)+_75)),0u,59u);let _a6=select(0u,1u,(_a5>28u));let _a7=(_a5-29u);let _a8=(_a6==0u);if(_a8){_6a=~(_a7);_6b=_6a;}else{_6b=_a7;}let _a9=((select(_78,_79,(_6b>15u))>>((2u*_6b)&31u))&3u);let _aa=f16(((_7a>>(4u*_a9))&15u));if(_a8){_6c=(-1.0h-_aa);_6d=_6c;}else{_6d=_aa;}let _ab=(_a1|((_a9|(_a6<<2u))<<bitcast<u32>(15i)));let _ac=(clamp(((_6d*_76)+_77),0.0h,1.0h)-_a4);let _ad=(_a3+(_ac*_ac));let _ae=_n[14i];let _af=clamp(u32(((_ae*_74)+_75)),0u,59u);let _ag=select(0u,1u,(_af>28u));let _ah=(_af-29u);let _ai=(_ag==0u);if(_ai){_6e=~(_ah);_6f=_6e;}else{_6f=_ah;}let _aj=((select(_78,_79,(_6f>15u))>>((2u*_6f)&31u))&3u);let _ak=f16(((_7a>>(4u*_aj))&15u));if(_ai){_6g=(-1.0h-_ak);_6h=_6g;}else{_6h=_ak;}let _al=(_ab|((_aj|(_ag<<2u))<<bitcast<u32>(12i)));let _am=(clamp(((_6h*_76)+_77),0.0h,1.0h)-_ae);let _an=(_ad+(_am*_am));let _ao=_n[3i];let _ap=clamp(u32(((_ao*_74)+_75)),0u,59u);let _aq=select(0u,1u,(_ap>28u));let _ar=(_ap-29u);let _as=(_aq==0u);if(_as){_6i=~(_ar);_6j=_6i;}else{_6j=_ar;}let _at=((select(_78,_79,(_6j>15u))>>((2u*_6j)&31u))&3u);let _au=f16(((_7a>>(4u*_at))&15u));if(_as){_6k=(-1.0h-_au);_6l=_6k;}else{_6l=_au;}let _av=(_al|((_at|(_aq<<2u))<<bitcast<u32>(9i)));let _aw=(clamp(((_6l*_76)+_77),0.0h,1.0h)-_ao);let _ax=(_an+(_aw*_aw));let _ay=_n[7i];let _az=clamp(u32(((_ay*_74)+_75)),0u,59u);let _b0=select(0u,1u,(_az>28u));let _b1=(_az-29u);let _b2=(_b0==0u);if(_b2){_6m=~(_b1);_6n=_6m;}else{_6n=_b1;}let _b3=((select(_78,_79,(_6n>15u))>>((2u*_6n)&31u))&3u);let _b4=f16(((_7a>>(4u*_b3))&15u));if(_b2){_6o=(-1.0h-_b4);_6p=_6o;}else{_6p=_b4;}let _b5=(_av|((_b3|(_b0<<2u))<<bitcast<u32>(6i)));let _b6=(clamp(((_6p*_76)+_77),0.0h,1.0h)-_ay);let _b7=(_ax+(_b6*_b6));let _b8=_n[11i];let _b9=clamp(u32(((_b8*_74)+_75)),0u,59u);let _ba=select(0u,1u,(_b9>28u));let _bb=(_b9-29u);let _bc=(_ba==0u);if(_bc){_6q=~(_bb);_6r=_6q;}else{_6r=_bb;}let _bd=((select(_78,_79,(_6r>15u))>>((2u*_6r)&31u))&3u);let _be=f16(((_7a>>(4u*_bd))&15u));if(_bc){_6s=(-1.0h-_be);_6t=_6s;}else{_6t=_be;}let _bf=(_b5|((_bd|(_ba<<2u))<<bitcast<u32>(3i)));let _bg=(clamp(((_6t*_76)+_77),0.0h,1.0h)-_b8);let _bh=(_b7+(_bg*_bg));let _bi=_n[15i];let _bj=clamp(u32(((_bi*_74)+_75)),0u,59u);let _bk=select(0u,1u,(_bj>28u));let _bl=(_bj-29u);let _bm=(_bk==0u);if(_bm){_6u=~(_bl);_6v=_6u;}else{_6v=_bl;}let _bn=((select(_78,_79,(_6v>15u))>>((2u*_6v)&31u))&3u);let _bo=f16(((_7a>>(4u*_bn))&15u));if(_bm){_6w=(-1.0h-_bo);_6x=_6w;}else{_6x=_bo;}var _bp=_9r;_bp.y=(_bf|((_bn|(_bk<<2u))<<bitcast<u32>(0i)));let _bq=_bp;let _br=(clamp(((_6x*_76)+_77),0.0h,1.0h)-_bi);let _bs=(_bh+(_br*_br));let _bt=(_bs<_u);_6z=_x;if(_bt){_6y=bitcast<u32>(_y);_6z=_6y;}continuing{_70=(_y+1i);_u=select(_u,_bs,_bt);_v=select(_v,_71,_bt);_w=select(_w,_bq,vec2<bool>(_bt));_x=_6z;_y=_70;}}_g=_7;let _bu=~(_g[bitcast<i32>(_x)]);let _bv=_w.x;let _bw=f16(((_bu>>(4u*(_bv&3u)))&15u));if(((_bv&4u)==0u)){_z=(-1.0h-_bw);_10=_z;}else{_10=_bw;}let _bx=(_bv>>bitcast<u32>(3i));let _by=f16(((_bu>>(4u*(_bx&3u)))&15u));if(((_bx&4u)==0u)){_11=(-1.0h-_by);_12=_11;}else{_12=_by;}let _bz=(_10+_12);let _c0=(_bx>>bitcast<u32>(3i));let _c1=f16(((_bu>>(4u*(_c0&3u)))&15u));if(((_c0&4u)==0u)){_13=(-1.0h-_c1);_14=_13;}else{_14=_c1;}let _c2=(_bz+_14);let _c3=(_c0>>bitcast<u32>(3i));let _c4=f16(((_bu>>(4u*(_c3&3u)))&15u));if(((_c3&4u)==0u)){_15=(-1.0h-_c4);_16=_15;}else{_16=_c4;}let _c5=(_c2+_16);let _c6=(_c3>>bitcast<u32>(3i));let _c7=f16(((_bu>>(4u*(_c6&3u)))&15u));if(((_c6&4u)==0u)){_17=(-1.0h-_c7);_18=_17;}else{_18=_c7;}let _c8=(_c5+_18);let _c9=(_c6>>bitcast<u32>(3i));let _ca=f16(((_bu>>(4u*(_c9&3u)))&15u));if(((_c9&4u)==0u)){_19=(-1.0h-_ca);_1a=_19;}else{_1a=_ca;}let _cb=(_c8+_1a);let _cc=(_c9>>bitcast<u32>(3i));let _cd=f16(((_bu>>(4u*(_cc&3u)))&15u));if(((_cc&4u)==0u)){_1b=(-1.0h-_cd);_1c=_1b;}else{_1c=_cd;}let _ce=(_cb+_1c);let _cf=(_cc>>bitcast<u32>(3i));let _cg=f16(((_bu>>(4u*(_cf&3u)))&15u));if(((_cf&4u)==0u)){_1d=(-1.0h-_cg);_1e=_1d;}else{_1e=_cg;}let _ch=(_ce+_1e);let _ci=_w.y;let _cj=f16(((_bu>>(4u*(_ci&3u)))&15u));if(((_ci&4u)==0u)){_1f=(-1.0h-_cj);_1g=_1f;}else{_1g=_cj;}let _ck=(_ch+_1g);let _cl=(_ci>>bitcast<u32>(3i));let _cm=f16(((_bu>>(4u*(_cl&3u)))&15u));if(((_cl&4u)==0u)){_1h=(-1.0h-_cm);_1i=_1h;}else{_1i=_cm;}let _cn=(_ck+_1i);let _co=(_cl>>bitcast<u32>(3i));let _cp=f16(((_bu>>(4u*(_co&3u)))&15u));if(((_co&4u)==0u)){_1j=(-1.0h-_cp);_1k=_1j;}else{_1k=_cp;}let _cq=(_cn+_1k);let _cr=(_co>>bitcast<u32>(3i));let _cs=f16(((_bu>>(4u*(_cr&3u)))&15u));if(((_cr&4u)==0u)){_1l=(-1.0h-_cs);_1m=_1l;}else{_1m=_cs;}let _ct=(_cq+_1m);let _cu=(_cr>>bitcast<u32>(3i));let _cv=f16(((_bu>>(4u*(_cu&3u)))&15u));if(((_cu&4u)==0u)){_1n=(-1.0h-_cv);_1o=_1n;}else{_1o=_cv;}let _cw=(_ct+_1o);let _cx=(_cu>>bitcast<u32>(3i));let _cy=f16(((_bu>>(4u*(_cx&3u)))&15u));if(((_cx&4u)==0u)){_1p=(-1.0h-_cy);_1q=_1p;}else{_1q=_cy;}let _cz=(_cw+_1q);let _d0=(_cx>>bitcast<u32>(3i));let _d1=f16(((_bu>>(4u*(_d0&3u)))&15u));if(((_d0&4u)==0u)){_1r=(-1.0h-_d1);_1s=_1r;}else{_1s=_d1;}let _d2=(_cz+_1s);let _d3=(_d0>>bitcast<u32>(3i));let _d4=f16(((_bu>>(4u*(_d3&3u)))&15u));if(((_d3&4u)==0u)){_1t=(-1.0h-_d4);_1u=_1t;}else{_1u=_d4;}var _d5:vec3h;var _d6:vec3h;var _d7:f16;var _d8:f16;var _d9:vec3h;var _da:vec3h;var _db:f16;var _dc:f16;var _dd:vec3h;var _de:vec3h;var _df:f16;var _dg:f16;var _dh:vec2u;var _di:u32;var _dj:u32;var _dk:u32;var _dl:u32;var _dm:i32;var _dn:i32;var _do:i32;var _dp:i32;var _dq:u32;var _dr:u32;var _ds:u32;var _dt:u32;var _du:u32;var _dv:u32;var _dw:i32;var _dx:i32;var _dy:i32;var _dz:i32;var _e0:f16;var _e1:f16;var _e2:u32;var _e3:u32;var _e4:u32;var _e5:u32;var _e6:u32;var _e7:u32;var _e8:i32;var _e9:i32;var _ea:i32;var _eb:i32;var _ec:f16;var _ed:f16;var _ee:f16;var _ef:f16;var _eg:u32;var _eh:u32;var _ei:u32;var _ej:u32;var _ek:u32;var _el:u32;var _em:i32;var _en:i32;var _eo:i32;var _ep:i32;var _eq:f16;var _er:f16;var _es:f16;var _et:f16;var _eu:u32;var _ev:u32;var _ew:u32;var _ex:u32;var _ey:u32;var _ez:u32;var _f0:i32;var _f1:i32;var _f2:i32;var _f3:i32;var _f4:f16;var _f5:f16;var _f6:f16;var _f7:f16;var _f8:u32;var _f9:u32;var _fa:u32;var _fb:u32;var _fc:u32;var _fd:u32;var _fe:i32;var _ff:i32;var _fg:i32;var _fh:i32;var _fi:f16;var _fj:f16;var _fk:f16;var _fl:f16;var _fm:u32;var _fn:u32;var _fo:u32;var _fp:u32;var _fq:u32;var _fr:u32;var _fs:i32;var _ft:i32;var _fu:i32;var _fv:i32;var _fw:f16;var _fx:f16;var _fy:f16;var _fz:f16;var _g0:u32;var _g1:u32;var _g2:u32;var _g3:u32;var _g4:u32;var _g5:u32;var _g6:i32;var _g7:i32;var _g8:i32;var _g9:i32;var _ga:f16;var _gb:f16;var _gc:f16;var _gd:f16;var _ge:u32;var _gf:u32;var _gg:u32;var _gh:u32;var _gi:u32;var _gj:u32;var _gk:i32;var _gl:i32;var _gm:i32;var _gn:i32;var _go:f16;var _gp:f16;var _gq:f16;var _gr:f16;var _gs:u32;var _gt:u32;var _gu:u32;var _gv:u32;var _gw:u32;var _gx:u32;var _gy:i32;var _gz:i32;var _h0:i32;var _h1:i32;var _h2:f16;var _h3:f16;var _h4:f16;var _h5:f16;var _h6:u32;var _h7:u32;var _h8:u32;var _h9:u32;var _ha:u32;var _hb:u32;var _hc:i32;var _hd:i32;var _he:i32;var _hf:i32;var _hg:f16;var _hh:f16;var _hi:f16;var _hj:f16;var _hk:u32;var _hl:u32;var _hm:u32;var _hn:u32;var _ho:u32;var _hp:u32;var _hq:i32;var _hr:i32;var _hs:i32;var _ht:i32;var _hu:f16;var _hv:f16;var _hw:f16;var _hx:f16;var _hy:u32;var _hz:u32;var _i0:u32;var _i1:u32;var _i2:u32;var _i3:u32;var _i4:i32;var _i5:i32;var _i6:i32;var _i7:i32;var _i8:f16;var _i9:f16;var _ia:f16;var _ib:f16;var _ic:u32;var _id:u32;var _ie:u32;var _if:u32;var _ig:u32;var _ih:u32;var _ii:i32;var _ij:i32;var _ik:i32;var _il:i32;var _im:f16;var _in:f16;var _io:f16;var _ip:f16;var _iq:u32;var _ir:u32;var _is:u32;var _it:u32;var _iu:u32;var _iv:u32;var _iw:i32;var _ix:i32;var _iy:i32;var _iz:i32;var _j0:f16;var _j1:f16;var _j2:f16;var _j3:f16;var _j4:u32;var _j5:u32;var _j6:u32;var _j7:u32;var _j8:u32;var _j9:u32;var _ja:i32;var _jb:i32;var _jc:i32;var _jd:i32;var _je:f16;var _jf:f16;var _jg:f16;var _jh:f16;var _ji:u32;var _jj:u32;var _jk:u32;var _jl:u32;var _jm:u32;var _jn:u32;var _jo:u32;var _jp:u32;var _jq:u32;var _jr:u32;var _js:u32;var _jt:u32;var _ju:u32;var _jv:u32;var _jw:u32;var _jx:u32;var _jy:u32;var _jz:u32;var _k0:u32;var _k1:u32;var _k2:u32;var _k3:u32;var _k4:u32;var _k5:u32;var _k6:u32;var _k7:u32;var _k8:u32;var _k9:u32;var _ka:u32;var _kb:u32;var _kc:u32;var _kd:u32;var _ke:u32;var _kf:u32;var _kg:u32;var _kh:u32;var _ki:u32;var _kj:u32;var _kk:u32;var _kl:u32;var _km:u32;var _kn:u32;var _ko:u32;var _kp:u32;var _kq:u32;var _kr:u32;var _ks:u32;var _kt:u32;var _ku:u32;var _kv:u32;var _kw:u32;var _kx:u32;var _ky:u32;var _kz:u32;var _l0:u32;var _l1:u32;var _l2:u32;var _l3:u32;var _l4:u32;var _l5:u32;var _l6:u32;var _l7:u32;var _l8:u32;var _l9:u32;var _la:u32;var _lb:u32;var _lc:u32;var _ld:u32;var _le:u32;var _lf:u32;var _lg:u32;var _lh:u32;var _li:u32;var _lj:u32;var _lk:u32;var _ll:u32;var _lm:u32;var _ln:u32;var _lo:u32;var _lp:u32;var _lq:u32;var _lr:u32;var _ls:u32;var _lt:u32;var _lu:u32;var _lv:u32;var _lw:u32;var _lx:u32;var _ly:u32;var _lz:u32;var _m0:u32;var _m1:u32;var _m2:u32;_m=array<u32,4u>(13u,2u,9u,11u);let _m3=(((u32(clamp(((f32(_55)-f32((((_d2+_1u)*_v)*0.0625h)))+0.5f),0.0f,255.0f))|((u32(_v)<<bitcast<u32>(12i))|(_m[_x]<<bitcast<u32>(8i))))|(_bv&16711680u))|((_bv&65280u)<<bitcast<u32>(16i)));let _m4=((((_bv&255u)|((_ci&16711680u)>>bitcast<u32>(8i)))|((_ci&65280u)<<bitcast<u32>(8i)))|((_ci&255u)<<bitcast<u32>(24i)));switch(0u){default:{let _m5=(((_4e+_4f)+_4i)+_4j);let _m6=(((_4g+_4h)+_4k)+_4l);let _m7=(((_4m+_4n)+_4q)+_4r);let _m8=(((_4o+_4p)+_4s)+_4t);let _m9=((_2a+_2u)+_3e);let _ma=((_2b+_2v)+_3f);let _mb=((_2c+_2w)+_3g);let _mc=((_2d+_2x)+_3h);let _md=((_2e+_2y)+_3i);let _me=((_2f+_2z)+_3j);let _mf=((_2g+_30)+_3k);let _mg=((_2h+_31)+_3l);let _mh=((_2i+_32)+_3m);let _mi=((_2j+_33)+_3n);let _mj=((_2k+_34)+_3o);let _mk=((_2l+_35)+_3p);let _ml=((_2m+_36)+_3q);let _mm=((_2n+_37)+_3r);let _mn=((_2o+_38)+_3s);let _mo=((_2p+_39)+_3t);let _mp=min(min(_m9,_ma),min(_md,_me));let _mq=min(min(_mb,_mc),min(_mf,_mg));let _mr=min(min(_mh,_mi),min(_ml,_mm));let _ms=min(min(_mj,_mk),min(_mn,_mo));let _mt=max(max(_m9,_ma),max(_md,_me));let _mu=max(max(_mb,_mc),max(_mf,_mg));let _mv=max(max(_mh,_mi),max(_ml,_mm));let _mw=max(max(_mj,_mk),max(_mn,_mo));let _mx=min(_mp,_mq);let _my=min(_mr,_ms);let _mz=min(_mp,_mr);let _n0=min(_mq,_ms);let _n1=select(0u,1u,(((max(_mp,_mq)-_mx)+(max(_mr,_ms)-_my))<((max(_mp,_mr)-_mz)+(max(_mq,_ms)-_n0))));let _n2=(_n1!=0u);let _n3=select(2i,8i,_n2);if(_n2){_d5=(_m5+_m6);_d6=(_m8+_m7);_d7=max(_mt,_mu);_d8=max(_mv,_mw);_dd=_d6;_de=_d5;_df=_d8;_dg=_d7;}else{_d9=(_m5+_m7);_da=(_m8+_m6);_db=max(_mt,_mv);_dc=max(_mu,_mw);_dd=_da;_de=_d9;_df=_dc;_dg=_db;}var _n4:f16;var _n5:vec2u;var _n6:vec2u;var _n7:vec2u;var _n8:vec2u;let _n9=select(_n0,_my,_n2);let _na=select(_mz,_mx,_n2);_n4=(max(_dg,_df)-min(_na,_n9));switch(0u){default:{if((_n4>=1.0h)){_1v=vec2u();break;}var _nb:f16;var _nc:f16;var _nd:f16;var _ne:f16;var _nf:f16;var _ng:f16;var _nh:f16;var _ni:f16;var _nj:f16;var _nk:f16;var _nl:f16;var _nm:f16;var _nn:f16;var _no:f16;var _np:f16;var _nq:f16;var _nr:f16;var _ns:f16;var _nt:f16;var _nu:f16;_nb=(f16(0i)/4.0h);let _nv=(1.0h-_nb);_nc=(_nv-_nb);let _nw=(_4e*_nb);_nd=(f16(1i)/4.0h);let _nx=(1.0h-_nd);_ne=(_nx-_nb);_nf=(f16(2i)/4.0h);let _ny=(1.0h-_nf);_ng=(_ny-_nb);_nh=(f16(3i)/4.0h);let _nz=(1.0h-_nh);_ni=(_nz-_nb);_nj=(_nv-_nd);_nk=(_nx-_nd);let _o0=(_4j*_nd);_nl=(_ny-_nd);_nm=(_nz-_nd);_nn=(_nv-_nf);_no=(_nx-_nf);_np=(_ny-_nf);let _o1=(_4o*_nf);_nq=(_nz-_nf);_nr=(_nv-_nh);_ns=(_nx-_nh);_nt=(_ny-_nh);_nu=(_nz-_nh);let _o2=(_4t*_nh);let _o3=(((((((((((((((_nw+(_4f*_nd))+(_4g*_nf))+(_4h*_nh))+(_4i*_nb))+_o0)+(_4k*_nf))+(_4l*_nh))+(_4m*_nb))+(_4n*_nd))+_o1)+(_4p*_nh))+(_4q*_nb))+(_4r*_nd))+(_4s*_nf))+_o2);let _o4=(((((((((((((((_nw+(_4f*_nb))+(_4g*_nb))+(_4h*_nb))+(_4i*_nd))+_o0)+(_4k*_nd))+(_4l*_nd))+(_4m*_nf))+(_4n*_nf))+_o1)+(_4p*_nf))+(_4q*_nh))+(_4r*_nh))+(_4s*_nh))+_o2);let _o5=((((((((((((((((_4e*_nc)+(_4f*_ne))+(_4g*_ng))+(_4h*_ni))+(_4i*_nj))+(_4j*_nk))+(_4k*_nl))+(_4l*_nm))+(_4m*_nn))+(_4n*_no))+(_4o*_np))+(_4p*_nq))+(_4q*_nr))+(_4r*_ns))+(_4s*_nt))+(_4t*_nu));let _o6=clamp((_8*vec3h(_o3.x,_o4.x,_o5.x)),vec3h(),_9);let _o7=clamp((_8*vec3h(_o3.y,_o4.y,_o5.y)),vec3h(),_9);let _o8=clamp((_8*vec3h(_o3.z,_o4.z,_o5.z)),vec3h(),_9);if((_n4>=0.0313720703125h)){let _o9=vec3h(_o6.x,_o7.x,_o8.x);let _oa=vec3h(_o6.y,_o7.y,_o8.y);let _ob=vec3h(_o6.z,_o7.z,_o8.z);let _oc=(_o9*_nb);let _od=(_oa*_nb);let _oe=(((_oc+_od)+(_ob*_nc))-_4e);let _of=(_o9*_nd);let _og=(((_of+_od)+(_ob*_ne))-_4f);let _oh=(_o9*_nf);let _oi=(((_oh+_od)+(_ob*_ng))-_4g);let _oj=(_o9*_nh);let _ok=(((_oj+_od)+(_ob*_ni))-_4h);let _ol=(_oa*_nd);let _om=(((_oc+_ol)+(_ob*_nj))-_4i);let _on=(((_of+_ol)+(_ob*_nk))-_4j);let _oo=(((_oh+_ol)+(_ob*_nl))-_4k);let _op=(((_oj+_ol)+(_ob*_nm))-_4l);let _oq=(_oa*_nf);let _or=(((_oc+_oq)+(_ob*_nn))-_4m);let _os=(((_of+_oq)+(_ob*_no))-_4n);let _ot=(((_oh+_oq)+(_ob*_np))-_4o);let _ou=(((_oj+_oq)+(_ob*_nq))-_4p);let _ov=(_oa*_nh);let _ow=(((_oc+_ov)+(_ob*_nr))-_4q);let _ox=(((_of+_ov)+(_ob*_ns))-_4r);let _oy=(((_oh+_ov)+(_ob*_nt))-_4s);let _oz=(((_oj+_ov)+(_ob*_nu))-_4t);if(((((((((((((((((dot(_oe,_oe)+dot(_og,_og))+dot(_oi,_oi))+dot(_ok,_ok))+dot(_om,_om))+dot(_on,_on))+dot(_oo,_oo))+dot(_op,_op))+dot(_or,_or))+dot(_os,_os))+dot(_ot,_ot))+dot(_ou,_ou))+dot(_ow,_ow))+dot(_ox,_ox))+dot(_oy,_oy))+dot(_oz,_oz))>0.01279449462890625h)){_1v=vec2u();break;}}let _p0=u32(((f32(_o6.x)*63.0f)+0.5f));let _p1=u32(((f32(_o6.z)*63.0f)+0.5f));let _p2=u32(((f32(_o7.z)*127.0f)+0.5f));let _p3=u32(((f32(_o8.z)*63.0f)+0.5f));let _p4=((_p0&1u)|((_p0<<bitcast<u32>(1i))&124u));let _p5=(_p3&24u);let _p6=(((_p4|((((_p3&7u)<<bitcast<u32>(7i))|(_p5<<bitcast<u32>(8i)))|((_p3&32u)<<bitcast<u32>(11i))))|(((_p2&63u)<<bitcast<u32>(17i))|((_p2&64u)<<bitcast<u32>(18i))))|(_p1<<bitcast<u32>(25i)));var _p7=vec2u(_p4,(((u32(((f32(_o8.y)*63.0f)+0.5f))|(u32(((f32(_o7.y)*127.0f)+0.5f))<<bitcast<u32>(6i)))|(u32(((f32(_o6.y)*63.0f)+0.5f))<<bitcast<u32>(13i)))|((u32(((f32(_o8.x)*63.0f)+0.5f))|(u32(((f32(_o7.x)*127.0f)+0.5f))<<bitcast<u32>(6i)))<<bitcast<u32>(19i))));_p7.x=_p6;let _p8=_p7;_n6=_p7;if(((_p1&32u)==0u)){_n5=_p8;_n5.x=(_p6|2147483648u);_n6=_n5;}_n8=_n6;if(((_p2&32u)==0u)){_n7=_n6;_n7.x=(_n6.x|8388608u);_n8=_n7;}let _p9=(_n8.x|select(57346u,1026u,((3i-bitcast<i32>(((_p3&6u)>>bitcast<u32>(1i))))>=bitcast<i32>((_p5>>bitcast<u32>(3i))))));let _pa=_n8.y;_dh=vec2u((((((_p9>>bitcast<u32>(8i))&65280u)|((_p9>>bitcast<u32>(24i))&255u))|((_p9<<bitcast<u32>(8i))&16711680u))|((_p9<<bitcast<u32>(24i))&4278190080u)),(((((_pa>>bitcast<u32>(8i))&65280u)|((_pa>>bitcast<u32>(24i))&255u))|((_pa<<bitcast<u32>(8i))&16711680u))|((_pa<<bitcast<u32>(24i))&4278190080u)));_1v=_dh;}}if((_1v.x!=0u)){_1x=_1v;break;}var _pb:f16;var _pc:u32;_pb=((_dg-_na)*85.0h);if((_pb<27.0h)){_dj=0u;}else{var _pd:u32;if((_pb<50.0h)){_di=1u;}else{var _pe:u32;if((_pb<77.0h)){_pc=2u;}else{var _pf:u32;if((_pb<111.0h)){_pd=3u;}else{if((_pb<152.0h)){_pe=4u;}else{_pf=select(6u,5u,(_pb<202.0h));_pe=_pf;}_pd=_pe;}_pc=_pd;}_di=_pc;}_dj=_di;}var _pg:f16;var _ph:u32;_f=_a;let _pi=(f16(_f[_dj])*0.0117645263671875h);_pg=((_df-_n9)*85.0h);if((_pg<27.0h)){_dl=0u;}else{var _pj:u32;if((_pg<50.0h)){_dk=1u;}else{var _pk:u32;if((_pg<77.0h)){_ph=2u;}else{var _pl:u32;if((_pg<111.0h)){_pj=3u;}else{if((_pg<152.0h)){_pk=4u;}else{_pl=select(6u,5u,(_pg<202.0h));_pk=_pl;}_pj=_pk;}_ph=_pj;}_dk=_ph;}_dl=_dk;}_e=_a;let _pm=(f16(_e[_dl])*0.0117645263671875h);let _pn=((_dg+_na)*0.5h);let _po=((_df+_n9)*0.5h);let _pp=(_m9-_pn);let _pq=select(0u,1u,(_pp<0.0h));let _pr=select(0u,1u,(abs(_pp)>_pi));let _ps=(0u|((_pr<<bitcast<u32>(0i))|(_pq<<bitcast<u32>(16i))));_d=_b;let _pt=bitcast<i32>(_d[_dj]);_dn=_pt;if((_pr!=0u)){_dm=(_pt>>bitcast<u32>(8i));_dn=_dm;}let _pu=(_dn&255i);_dp=_pu;if((_pq!=0u)){_do=-(_pu);_dp=_do;}let _pv=f16(_dp);let _pw=((1i&_n3)!=0i);if(_pw){let _px=(_ma-_po);_dq=select(0u,1u,(_px<0.0h));_dr=select(0u,1u,(abs(_px)>_pm));_du=_dq;_dv=_dr;}else{let _py=(_ma-_pn);_ds=select(0u,1u,(_py<0.0h));_dt=select(0u,1u,(abs(_py)>_pi));_du=_ds;_dv=_dt;}let _pz=(_ps|((_dv<<bitcast<u32>(4i))|(_du<<bitcast<u32>(20i))));_d=_b;let _q0=bitcast<i32>(_d[select(_dj,_dl,_pw)]);_dx=_q0;if((_dv!=0u)){_dw=(_q0>>bitcast<u32>(8i));_dx=_dw;}let _q1=(_dx&255i);_dz=_q1;if((_du!=0u)){_dy=-(_q1);_dz=_dy;}let _q2=f16(_dz);if(_pw){_e1=_pv;}else{_e0=(_pv+_q2);_e1=_e0;}let _q3=select(0.0h,_q2,_pw);let _q4=((2i&_n3)!=0i);if(_q4){let _q5=(_mb-_po);_e2=select(0u,1u,(_q5<0.0h));_e3=select(0u,1u,(abs(_q5)>_pm));_e6=_e2;_e7=_e3;}else{let _q6=(_mb-_pn);_e4=select(0u,1u,(_q6<0.0h));_e5=select(0u,1u,(abs(_q6)>_pi));_e6=_e4;_e7=_e5;}let _q7=(_pz|((_e7<<bitcast<u32>(8i))|(_e6<<bitcast<u32>(24i))));_d=_b;let _q8=bitcast<i32>(_d[select(_dj,_dl,_q4)]);_e9=_q8;if((_e7!=0u)){_e8=(_q8>>bitcast<u32>(8i));_e9=_e8;}let _q9=(_e9&255i);_eb=_q9;if((_e6!=0u)){_ea=-(_q9);_eb=_ea;}let _qa=f16(_eb);if(_q4){_ec=(_q3+_qa);_ee=_ec;_ef=_e1;}else{_ed=(_e1+_qa);_ee=_q3;_ef=_ed;}let _qb=((3i&_n3)!=0i);if(_qb){let _qc=(_mc-_po);_eg=select(0u,1u,(_qc<0.0h));_eh=select(0u,1u,(abs(_qc)>_pm));_ek=_eg;_el=_eh;}else{let _qd=(_mc-_pn);_ei=select(0u,1u,(_qd<0.0h));_ej=select(0u,1u,(abs(_qd)>_pi));_ek=_ei;_el=_ej;}let _qe=(_q7|((_el<<bitcast<u32>(12i))|(_ek<<bitcast<u32>(28i))));_d=_b;let _qf=bitcast<i32>(_d[select(_dj,_dl,_qb)]);_en=_qf;if((_el!=0u)){_em=(_qf>>bitcast<u32>(8i));_en=_em;}let _qg=(_en&255i);_ep=_qg;if((_ek!=0u)){_eo=-(_qg);_ep=_eo;}let _qh=f16(_ep);if(_qb){_eq=(_ee+_qh);_es=_eq;_et=_ef;}else{_er=(_ef+_qh);_es=_ee;_et=_er;}let _qi=((4i&_n3)!=0i);if(_qi){let _qj=(_md-_po);_eu=select(0u,1u,(_qj<0.0h));_ev=select(0u,1u,(abs(_qj)>_pm));_ey=_eu;_ez=_ev;}else{let _qk=(_md-_pn);_ew=select(0u,1u,(_qk<0.0h));_ex=select(0u,1u,(abs(_qk)>_pi));_ey=_ew;_ez=_ex;}let _ql=(_qe|((_ez<<bitcast<u32>(1i))|(_ey<<bitcast<u32>(17i))));_d=_b;let _qm=bitcast<i32>(_d[select(_dj,_dl,_qi)]);_f1=_qm;if((_ez!=0u)){_f0=(_qm>>bitcast<u32>(8i));_f1=_f0;}let _qn=(_f1&255i);_f3=_qn;if((_ey!=0u)){_f2=-(_qn);_f3=_f2;}let _qo=f16(_f3);if(_qi){_f4=(_es+_qo);_f6=_f4;_f7=_et;}else{_f5=(_et+_qo);_f6=_es;_f7=_f5;}let _qp=((5i&_n3)!=0i);if(_qp){let _qq=(_me-_po);_f8=select(0u,1u,(_qq<0.0h));_f9=select(0u,1u,(abs(_qq)>_pm));_fc=_f8;_fd=_f9;}else{let _qr=(_me-_pn);_fa=select(0u,1u,(_qr<0.0h));_fb=select(0u,1u,(abs(_qr)>_pi));_fc=_fa;_fd=_fb;}let _qs=(_ql|((_fd<<bitcast<u32>(5i))|(_fc<<bitcast<u32>(21i))));_d=_b;let _qt=bitcast<i32>(_d[select(_dj,_dl,_qp)]);_ff=_qt;if((_fd!=0u)){_fe=(_qt>>bitcast<u32>(8i));_ff=_fe;}let _qu=(_ff&255i);_fh=_qu;if((_fc!=0u)){_fg=-(_qu);_fh=_fg;}let _qv=f16(_fh);if(_qp){_fi=(_f6+_qv);_fk=_fi;_fl=_f7;}else{_fj=(_f7+_qv);_fk=_f6;_fl=_fj;}let _qw=((6i&_n3)!=0i);if(_qw){let _qx=(_mf-_po);_fm=select(0u,1u,(_qx<0.0h));_fn=select(0u,1u,(abs(_qx)>_pm));_fq=_fm;_fr=_fn;}else{let _qy=(_mf-_pn);_fo=select(0u,1u,(_qy<0.0h));_fp=select(0u,1u,(abs(_qy)>_pi));_fq=_fo;_fr=_fp;}let _qz=(_qs|((_fr<<bitcast<u32>(9i))|(_fq<<bitcast<u32>(25i))));_d=_b;let _r0=bitcast<i32>(_d[select(_dj,_dl,_qw)]);_ft=_r0;if((_fr!=0u)){_fs=(_r0>>bitcast<u32>(8i));_ft=_fs;}let _r1=(_ft&255i);_fv=_r1;if((_fq!=0u)){_fu=-(_r1);_fv=_fu;}let _r2=f16(_fv);if(_qw){_fw=(_fk+_r2);_fy=_fw;_fz=_fl;}else{_fx=(_fl+_r2);_fy=_fk;_fz=_fx;}let _r3=((7i&_n3)!=0i);if(_r3){let _r4=(_mg-_po);_g0=select(0u,1u,(_r4<0.0h));_g1=select(0u,1u,(abs(_r4)>_pm));_g4=_g0;_g5=_g1;}else{let _r5=(_mg-_pn);_g2=select(0u,1u,(_r5<0.0h));_g3=select(0u,1u,(abs(_r5)>_pi));_g4=_g2;_g5=_g3;}let _r6=(_qz|((_g5<<bitcast<u32>(13i))|(_g4<<bitcast<u32>(29i))));_d=_b;let _r7=bitcast<i32>(_d[select(_dj,_dl,_r3)]);_g7=_r7;if((_g5!=0u)){_g6=(_r7>>bitcast<u32>(8i));_g7=_g6;}let _r8=(_g7&255i);_g9=_r8;if((_g4!=0u)){_g8=-(_r8);_g9=_g8;}let _r9=f16(_g9);if(_r3){_ga=(_fy+_r9);_gc=_ga;_gd=_fz;}else{_gb=(_fz+_r9);_gc=_fy;_gd=_gb;}let _ra=((8i&_n3)!=0i);if(_ra){let _rb=(_mh-_po);_ge=select(0u,1u,(_rb<0.0h));_gf=select(0u,1u,(abs(_rb)>_pm));_gi=_ge;_gj=_gf;}else{let _rc=(_mh-_pn);_gg=select(0u,1u,(_rc<0.0h));_gh=select(0u,1u,(abs(_rc)>_pi));_gi=_gg;_gj=_gh;}let _rd=(_r6|((_gj<<bitcast<u32>(2i))|(_gi<<bitcast<u32>(18i))));_d=_b;let _re=bitcast<i32>(_d[select(_dj,_dl,_ra)]);_gl=_re;if((_gj!=0u)){_gk=(_re>>bitcast<u32>(8i));_gl=_gk;}let _rf=(_gl&255i);_gn=_rf;if((_gi!=0u)){_gm=-(_rf);_gn=_gm;}let _rg=f16(_gn);if(_ra){_go=(_gc+_rg);_gq=_go;_gr=_gd;}else{_gp=(_gd+_rg);_gq=_gc;_gr=_gp;}let _rh=((9i&_n3)!=0i);if(_rh){let _ri=(_mi-_po);_gs=select(0u,1u,(_ri<0.0h));_gt=select(0u,1u,(abs(_ri)>_pm));_gw=_gs;_gx=_gt;}else{let _rj=(_mi-_pn);_gu=select(0u,1u,(_rj<0.0h));_gv=select(0u,1u,(abs(_rj)>_pi));_gw=_gu;_gx=_gv;}let _rk=(_rd|((_gx<<bitcast<u32>(6i))|(_gw<<bitcast<u32>(22i))));_d=_b;let _rl=bitcast<i32>(_d[select(_dj,_dl,_rh)]);_gz=_rl;if((_gx!=0u)){_gy=(_rl>>bitcast<u32>(8i));_gz=_gy;}let _rm=(_gz&255i);_h1=_rm;if((_gw!=0u)){_h0=-(_rm);_h1=_h0;}let _rn=f16(_h1);if(_rh){_h2=(_gq+_rn);_h4=_h2;_h5=_gr;}else{_h3=(_gr+_rn);_h4=_gq;_h5=_h3;}let _ro=((10i&_n3)!=0i);if(_ro){let _rp=(_mj-_po);_h6=select(0u,1u,(_rp<0.0h));_h7=select(0u,1u,(abs(_rp)>_pm));_ha=_h6;_hb=_h7;}else{let _rq=(_mj-_pn);_h8=select(0u,1u,(_rq<0.0h));_h9=select(0u,1u,(abs(_rq)>_pi));_ha=_h8;_hb=_h9;}let _rr=(_rk|((_hb<<bitcast<u32>(10i))|(_ha<<bitcast<u32>(26i))));_d=_b;let _rs=bitcast<i32>(_d[select(_dj,_dl,_ro)]);_hd=_rs;if((_hb!=0u)){_hc=(_rs>>bitcast<u32>(8i));_hd=_hc;}let _rt=(_hd&255i);_hf=_rt;if((_ha!=0u)){_he=-(_rt);_hf=_he;}let _ru=f16(_hf);if(_ro){_hg=(_h4+_ru);_hi=_hg;_hj=_h5;}else{_hh=(_h5+_ru);_hi=_h4;_hj=_hh;}let _rv=((11i&_n3)!=0i);if(_rv){let _rw=(_mk-_po);_hk=select(0u,1u,(_rw<0.0h));_hl=select(0u,1u,(abs(_rw)>_pm));_ho=_hk;_hp=_hl;}else{let _rx=(_mk-_pn);_hm=select(0u,1u,(_rx<0.0h));_hn=select(0u,1u,(abs(_rx)>_pi));_ho=_hm;_hp=_hn;}let _ry=(_rr|((_hp<<bitcast<u32>(14i))|(_ho<<bitcast<u32>(30i))));_d=_b;let _rz=bitcast<i32>(_d[select(_dj,_dl,_rv)]);_hr=_rz;if((_hp!=0u)){_hq=(_rz>>bitcast<u32>(8i));_hr=_hq;}let _s0=(_hr&255i);_ht=_s0;if((_ho!=0u)){_hs=-(_s0);_ht=_hs;}let _s1=f16(_ht);if(_rv){_hu=(_hi+_s1);_hw=_hu;_hx=_hj;}else{_hv=(_hj+_s1);_hw=_hi;_hx=_hv;}let _s2=((12i&_n3)!=0i);if(_s2){let _s3=(_ml-_po);_hy=select(0u,1u,(_s3<0.0h));_hz=select(0u,1u,(abs(_s3)>_pm));_i2=_hy;_i3=_hz;}else{let _s4=(_ml-_pn);_i0=select(0u,1u,(_s4<0.0h));_i1=select(0u,1u,(abs(_s4)>_pi));_i2=_i0;_i3=_i1;}let _s5=(_ry|((_i3<<bitcast<u32>(3i))|(_i2<<bitcast<u32>(19i))));_d=_b;let _s6=bitcast<i32>(_d[select(_dj,_dl,_s2)]);_i5=_s6;if((_i3!=0u)){_i4=(_s6>>bitcast<u32>(8i));_i5=_i4;}let _s7=(_i5&255i);_i7=_s7;if((_i2!=0u)){_i6=-(_s7);_i7=_i6;}let _s8=f16(_i7);if(_s2){_i8=(_hw+_s8);_ia=_i8;_ib=_hx;}else{_i9=(_hx+_s8);_ia=_hw;_ib=_i9;}let _s9=((13i&_n3)!=0i);if(_s9){let _sa=(_mm-_po);_ic=select(0u,1u,(_sa<0.0h));_id=select(0u,1u,(abs(_sa)>_pm));_ig=_ic;_ih=_id;}else{let _sb=(_mm-_pn);_ie=select(0u,1u,(_sb<0.0h));_if=select(0u,1u,(abs(_sb)>_pi));_ig=_ie;_ih=_if;}let _sc=(_s5|((_ih<<bitcast<u32>(7i))|(_ig<<bitcast<u32>(23i))));_d=_b;let _sd=bitcast<i32>(_d[select(_dj,_dl,_s9)]);_ij=_sd;if((_ih!=0u)){_ii=(_sd>>bitcast<u32>(8i));_ij=_ii;}let _se=(_ij&255i);_il=_se;if((_ig!=0u)){_ik=-(_se);_il=_ik;}let _sf=f16(_il);if(_s9){_im=(_ia+_sf);_io=_im;_ip=_ib;}else{_in=(_ib+_sf);_io=_ia;_ip=_in;}let _sg=((14i&_n3)!=0i);if(_sg){let _sh=(_mn-_po);_iq=select(0u,1u,(_sh<0.0h));_ir=select(0u,1u,(abs(_sh)>_pm));_iu=_iq;_iv=_ir;}else{let _si=(_mn-_pn);_is=select(0u,1u,(_si<0.0h));_it=select(0u,1u,(abs(_si)>_pi));_iu=_is;_iv=_it;}let _sj=(_sc|((_iv<<bitcast<u32>(11i))|(_iu<<bitcast<u32>(27i))));_d=_b;let _sk=bitcast<i32>(_d[select(_dj,_dl,_sg)]);_ix=_sk;if((_iv!=0u)){_iw=(_sk>>bitcast<u32>(8i));_ix=_iw;}let _sl=(_ix&255i);_iz=_sl;if((_iu!=0u)){_iy=-(_sl);_iz=_iy;}let _sm=f16(_iz);if(_sg){_j0=(_io+_sm);_j2=_j0;_j3=_ip;}else{_j1=(_ip+_sm);_j2=_io;_j3=_j1;}let _sn=((15i&_n3)!=0i);if(_sn){let _so=(_mo-_po);_j4=select(0u,1u,(_so<0.0h));_j5=select(0u,1u,(abs(_so)>_pm));_j8=_j4;_j9=_j5;}else{let _sp=(_mo-_pn);_j6=select(0u,1u,(_sp<0.0h));_j7=select(0u,1u,(abs(_sp)>_pi));_j8=_j6;_j9=_j7;}let _sq=(_sj|((_j9<<bitcast<u32>(15i))|(_j8<<bitcast<u32>(31i))));_d=_b;let _sr=bitcast<i32>(_d[select(_dj,_dl,_sn)]);_jb=_sr;if((_j9!=0u)){_ja=(_sr>>bitcast<u32>(8i));_jb=_ja;}let _ss=(_jb&255i);_jd=_ss;if((_j8!=0u)){_jc=-(_ss);_jd=_jc;}let _st=f16(_jd);if(_sn){_je=(_j2+_st);_jg=_je;_jh=_j3;}else{_jf=(_j3+_st);_jg=_j2;_jh=_jf;}var _su:vec3h;var _sv:f16;var _sw:vec3h;var _sx:vec3h;var _sy:vec3h;var _sz:vec3h;var _t0:vec3h;var _t1:vec3h;let _t2=clamp(((_de-vec3h((_jh*0.0039215087890625h)))*0.125h),vec3h(),_9);let _t3=clamp(((_dd-vec3h((_jg*0.0039215087890625h)))*0.125h),vec3h(),_9);let _t4=_t2.x;let _t5=trunc((round((_t4*31.0h))*8.25h));let _t6=_t2.y;let _t7=trunc((round((_t6*31.0h))*8.25h));let _t8=_t2.z;let _t9=trunc((round((_t8*31.0h))*8.25h));let _ta=_t3.x;let _tb=trunc((round((_ta*31.0h))*8.25h));let _tc=_t3.y;let _td=trunc((round((_tc*31.0h))*8.25h));let _te=_t3.z;let _tf=trunc((round((_te*31.0h))*8.25h));_su=trunc(((vec3h(_tb,_td,_tf)-vec3h(_t5,_t7,_t9))*0.125h));_sv=_su.x;let _tg=(max(max(abs(_sv),abs(_su.y)),abs(_su.z))<4.0h);if(_tg){_sx=_su;if((_sv<0.0h)){_sw=_su;_sw.x=(_sv+8.0h);_sx=_sw;}let _th=_sx.y;_sz=_sx;if((_th<0.0h)){_sy=_sx;_sy.y=(_th+8.0h);_sz=_sy;}let _ti=_sz.z;_t1=_sz;if((_ti<0.0h)){_t0=_sz;_t0.z=(_ti+8.0h);_t1=_t0;}_ji=((((u32(_t9)&248u)|((u32(_t7)&248u)<<bitcast<u32>(8i)))|((u32(_t5)&248u)<<bitcast<u32>(16i)))|(((u32(_t1.z)&7u)|((u32(_t1.y)&7u)<<bitcast<u32>(8i)))|((u32(_t1.x)&7u)<<bitcast<u32>(16i))));_jk=_ji;}else{_jj=((((u32(trunc((round((_t8*15.0h))*17.0h)))&240u)|((u32(trunc((round((_t6*15.0h))*17.0h)))&240u)<<bitcast<u32>(8i)))|((u32(trunc((round((_t4*15.0h))*17.0h)))&240u)<<bitcast<u32>(16i)))|((((u32(trunc((round((_te*15.0h))*17.0h)))&240u)>>bitcast<u32>(4i))|((u32(trunc((round((_tc*15.0h))*17.0h)))&240u)<<bitcast<u32>(4i)))|((u32(trunc((round((_ta*15.0h))*17.0h)))&240u)<<bitcast<u32>(12i))));_jk=_jj;}let _tj=select(0u,1u,_tg);let _tk=(((_t5+_t7)+_t9)*0.0039215087890625h);let _tl=(((_tb+_td)+_tf)*0.0039215087890625h);let _tm=(_m9-_tk);let _tn=(_sq|((select(0u,1u,(abs(_tm)>_pi))<<bitcast<u32>(0i))|(select(0u,1u,(_tm<0.0h))<<bitcast<u32>(16i))));if(_pw){let _to=(_ma-_tl);_jl=select(0u,1u,(_to<0.0h));_jm=select(0u,1u,(abs(_to)>_pm));_jp=_jl;_jq=_jm;}else{let _tp=(_ma-_tk);_jn=select(0u,1u,(_tp<0.0h));_jo=select(0u,1u,(abs(_tp)>_pi));_jp=_jn;_jq=_jo;}let _tq=(_tn|((_jq<<bitcast<u32>(4i))|(_jp<<bitcast<u32>(20i))));if(_q4){let _tr=(_mb-_tl);_jr=select(0u,1u,(_tr<0.0h));_js=select(0u,1u,(abs(_tr)>_pm));_jv=_jr;_jw=_js;}else{let _ts=(_mb-_tk);_jt=select(0u,1u,(_ts<0.0h));_ju=select(0u,1u,(abs(_ts)>_pi));_jv=_jt;_jw=_ju;}let _tt=(_tq|((_jw<<bitcast<u32>(8i))|(_jv<<bitcast<u32>(24i))));if(_qb){let _tu=(_mc-_tl);_jx=select(0u,1u,(_tu<0.0h));_jy=select(0u,1u,(abs(_tu)>_pm));_k1=_jx;_k2=_jy;}else{let _tv=(_mc-_tk);_jz=select(0u,1u,(_tv<0.0h));_k0=select(0u,1u,(abs(_tv)>_pi));_k1=_jz;_k2=_k0;}let _tw=(_tt|((_k2<<bitcast<u32>(12i))|(_k1<<bitcast<u32>(28i))));if(_qi){let _tx=(_md-_tl);_k3=select(0u,1u,(_tx<0.0h));_k4=select(0u,1u,(abs(_tx)>_pm));_k7=_k3;_k8=_k4;}else{let _ty=(_md-_tk);_k5=select(0u,1u,(_ty<0.0h));_k6=select(0u,1u,(abs(_ty)>_pi));_k7=_k5;_k8=_k6;}let _tz=(_tw|((_k8<<bitcast<u32>(1i))|(_k7<<bitcast<u32>(17i))));if(_qp){let _u0=(_me-_tl);_k9=select(0u,1u,(_u0<0.0h));_ka=select(0u,1u,(abs(_u0)>_pm));_kd=_k9;_ke=_ka;}else{let _u1=(_me-_tk);_kb=select(0u,1u,(_u1<0.0h));_kc=select(0u,1u,(abs(_u1)>_pi));_kd=_kb;_ke=_kc;}let _u2=(_tz|((_ke<<bitcast<u32>(5i))|(_kd<<bitcast<u32>(21i))));if(_qw){let _u3=(_mf-_tl);_kf=select(0u,1u,(_u3<0.0h));_kg=select(0u,1u,(abs(_u3)>_pm));_kj=_kf;_kk=_kg;}else{let _u4=(_mf-_tk);_kh=select(0u,1u,(_u4<0.0h));_ki=select(0u,1u,(abs(_u4)>_pi));_kj=_kh;_kk=_ki;}let _u5=(_u2|((_kk<<bitcast<u32>(9i))|(_kj<<bitcast<u32>(25i))));if(_r3){let _u6=(_mg-_tl);_kl=select(0u,1u,(_u6<0.0h));_km=select(0u,1u,(abs(_u6)>_pm));_kp=_kl;_kq=_km;}else{let _u7=(_mg-_tk);_kn=select(0u,1u,(_u7<0.0h));_ko=select(0u,1u,(abs(_u7)>_pi));_kp=_kn;_kq=_ko;}let _u8=(_u5|((_kq<<bitcast<u32>(13i))|(_kp<<bitcast<u32>(29i))));if(_ra){let _u9=(_mh-_tl);_kr=select(0u,1u,(_u9<0.0h));_ks=select(0u,1u,(abs(_u9)>_pm));_kv=_kr;_kw=_ks;}else{let _ua=(_mh-_tk);_kt=select(0u,1u,(_ua<0.0h));_ku=select(0u,1u,(abs(_ua)>_pi));_kv=_kt;_kw=_ku;}let _ub=(_u8|((_kw<<bitcast<u32>(2i))|(_kv<<bitcast<u32>(18i))));if(_rh){let _uc=(_mi-_tl);_kx=select(0u,1u,(_uc<0.0h));_ky=select(0u,1u,(abs(_uc)>_pm));_l1=_kx;_l2=_ky;}else{let _ud=(_mi-_tk);_kz=select(0u,1u,(_ud<0.0h));_l0=select(0u,1u,(abs(_ud)>_pi));_l1=_kz;_l2=_l0;}let _ue=(_ub|((_l2<<bitcast<u32>(6i))|(_l1<<bitcast<u32>(22i))));if(_ro){let _uf=(_mj-_tl);_l3=select(0u,1u,(_uf<0.0h));_l4=select(0u,1u,(abs(_uf)>_pm));_l7=_l3;_l8=_l4;}else{let _ug=(_mj-_tk);_l5=select(0u,1u,(_ug<0.0h));_l6=select(0u,1u,(abs(_ug)>_pi));_l7=_l5;_l8=_l6;}let _uh=(_ue|((_l8<<bitcast<u32>(10i))|(_l7<<bitcast<u32>(26i))));if(_rv){let _ui=(_mk-_tl);_l9=select(0u,1u,(_ui<0.0h));_la=select(0u,1u,(abs(_ui)>_pm));_ld=_l9;_le=_la;}else{let _uj=(_mk-_tk);_lb=select(0u,1u,(_uj<0.0h));_lc=select(0u,1u,(abs(_uj)>_pi));_ld=_lb;_le=_lc;}let _uk=(_uh|((_le<<bitcast<u32>(14i))|(_ld<<bitcast<u32>(30i))));if(_s2){let _ul=(_ml-_tl);_lf=select(0u,1u,(_ul<0.0h));_lg=select(0u,1u,(abs(_ul)>_pm));_lj=_lf;_lk=_lg;}else{let _um=(_ml-_tk);_lh=select(0u,1u,(_um<0.0h));_li=select(0u,1u,(abs(_um)>_pi));_lj=_lh;_lk=_li;}let _un=(_uk|((_lk<<bitcast<u32>(3i))|(_lj<<bitcast<u32>(19i))));if(_s9){let _uo=(_mm-_tl);_ll=select(0u,1u,(_uo<0.0h));_lm=select(0u,1u,(abs(_uo)>_pm));_lp=_ll;_lq=_lm;}else{let _up=(_mm-_tk);_ln=select(0u,1u,(_up<0.0h));_lo=select(0u,1u,(abs(_up)>_pi));_lp=_ln;_lq=_lo;}let _uq=(_un|((_lq<<bitcast<u32>(7i))|(_lp<<bitcast<u32>(23i))));if(_sg){let _ur=(_mn-_tl);_lr=select(0u,1u,(_ur<0.0h));_ls=select(0u,1u,(abs(_ur)>_pm));_lv=_lr;_lw=_ls;}else{let _us=(_mn-_tk);_lt=select(0u,1u,(_us<0.0h));_lu=select(0u,1u,(abs(_us)>_pi));_lv=_lt;_lw=_lu;}let _ut=(_uq|((_lw<<bitcast<u32>(11i))|(_lv<<bitcast<u32>(27i))));if(_sn){let _uu=(_mo-_tl);_lx=select(0u,1u,(_uu<0.0h));_ly=select(0u,1u,(abs(_uu)>_pm));_m1=_lx;_m2=_ly;}else{let _uv=(_mo-_tk);_lz=select(0u,1u,(_uv<0.0h));_m0=select(0u,1u,(abs(_uv)>_pi));_m1=_lz;_m2=_m0;}let _uw=(_ut|((_m2<<bitcast<u32>(15i))|(_m1<<bitcast<u32>(31i))));_1w=vec2u((((((((_dj<<bitcast<u32>(29i))|(_dl<<bitcast<u32>(26i)))|(_tj<<bitcast<u32>(25i)))|(_n1<<bitcast<u32>(24i)))|((_jk&255u)<<bitcast<u32>(16i)))|(_jk&65280u))|(_jk>>bitcast<u32>(16i))),(((((_uw>>bitcast<u32>(8i))&65280u)|((_uw>>bitcast<u32>(24i))&255u))|((_uw<<bitcast<u32>(8i))&16711680u))|((_uw<<bitcast<u32>(24i))&4278190080u)));_1x=_1w;}}x_3257._0[((_20.y*((_1z+15u)&4294967280u))+_22)]=vec4u(_m3,_m4,_1x.x,_1x.y);}}return;}@compute @workgroup_size(16i, 16i, 1i) fn main(@builtin(global_invocation_id) _ux:vec3u,@builtin(local_invocation_id) _uy:vec3u,@builtin(workgroup_id) _uz:vec3u){x_3160=_ux;x_3167=_uy;_c();}";
export {
spark_etc2_rgba as default
};