@ludicon/spark.js 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
1
+ const spark_etc2_rgb = "enable f16;alias RTArr=array<vec2u>;struct _1{_0:RTArr,}@binding(1) @group(0) var _2:sampler;@binding(0) @group(0) var _3:texture_2d<f32>;var<private>x_2042:vec3u;var<private>x_2049:vec3u;@binding(2) @group(0) var<storage,read_write>x_2140:_1;const _4=vec2i(2i,0i);const _5=vec2i(0i,2i);const _6=vec2i(2i);const _7=mat3x3h(vec3h(0.4873046875h,-0.3125h,-0.0124969482421875h),vec3h(-0.3125h,0.4873046875h,-0.0124969482421875h),vec3h(-0.0124969482421875h,-0.0124969482421875h,0.287353515625h));const _8=vec3h(1.0h);const _9=array<f32,7u>(5.0f,11.0f,19.0f,27.5f,39.0f,52.0f,69.5f);const _a=array<u32,8u>(2050u,4357u,7433u,10765u,15378u,20504u,27169u,46895u);fn _b(){var _c:array<u32,8u>;var _d:array<f32,7u>;var _e:array<f32,7u>;var _f:bool;var _g:bool;var _h:vec2u;var _i:vec2u;var _j:vec2u;switch(0u){default:{let _k=bitcast<vec2u>(vec2i(textureDimensions(_3,0i)));let _l=((_k.x+3u)/4u);let _m=x_2042;let _n=x_2042.xy;let _o=x_2042.x;let _p=(_o>=_l);_g=_p;if(!(_p)){_f=(_m.y>=((_k.y+3u)/4u));_g=_f;}if(_g){break;}var _q:f16;var _r:f16;var _s:f16;var _t:f16;var _u:f16;var _v:f16;var _w:f16;var _x:f16;var _y:f16;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:vec3h;var _1o:f16;var _1p:vec3h;var _1q:f16;var _1r:vec3h;var _1s:f16;var _1t:vec3h;var _1u:f16;var _1v:vec3h;var _1w:f16;var _1x:vec3h;var _1y:f16;var _1z:vec3h;var _20:f16;var _21:vec3h;var _22:f16;var _23:vec3h;var _24:f16;var _25:vec3h;var _26:f16;var _27:vec3h;var _28:f16;var _29:vec3h;var _2a:f16;var _2b:vec3h;var _2c:f16;var _2d:vec3h;var _2e:f16;var _2f:vec3h;var _2g:f16;var _2h:vec3h;var _2i:vec3h;var _2j:vec3h;var _2k:f16;var _2l:f16;var _2m:vec3h;var _2n:vec3h;var _2o:f16;var _2p:f16;var _2q:vec3h;var _2r:vec3h;var _2s:f16;var _2t:f16;var _2u:vec2u;var _2v:u32;var _2w:u32;var _2x:u32;var _2y:u32;var _2z:i32;var _30:i32;var _31:i32;var _32:i32;var _33:u32;var _34:u32;var _35:u32;var _36:u32;var _37:u32;var _38:u32;var _39:i32;var _3a:i32;var _3b:i32;var _3c:i32;var _3d:f16;var _3e:f16;var _3f:u32;var _3g:u32;var _3h:u32;var _3i:u32;var _3j:u32;var _3k:u32;var _3l:i32;var _3m:i32;var _3n:i32;var _3o:i32;var _3p:f16;var _3q:f16;var _3r:f16;var _3s:f16;var _3t:u32;var _3u:u32;var _3v:u32;var _3w:u32;var _3x:u32;var _3y:u32;var _3z:i32;var _40:i32;var _41:i32;var _42:i32;var _43:f16;var _44:f16;var _45:f16;var _46:f16;var _47:u32;var _48:u32;var _49:u32;var _4a:u32;var _4b:u32;var _4c:u32;var _4d:i32;var _4e:i32;var _4f:i32;var _4g:i32;var _4h:f16;var _4i:f16;var _4j:f16;var _4k:f16;var _4l:u32;var _4m:u32;var _4n:u32;var _4o:u32;var _4p:u32;var _4q:u32;var _4r:i32;var _4s:i32;var _4t:i32;var _4u:i32;var _4v:f16;var _4w:f16;var _4x:f16;var _4y:f16;var _4z:u32;var _50:u32;var _51:u32;var _52:u32;var _53:u32;var _54:u32;var _55:i32;var _56:i32;var _57:i32;var _58:i32;var _59:f16;var _5a:f16;var _5b:f16;var _5c:f16;var _5d:u32;var _5e:u32;var _5f:u32;var _5g:u32;var _5h:u32;var _5i:u32;var _5j:i32;var _5k:i32;var _5l:i32;var _5m:i32;var _5n:f16;var _5o:f16;var _5p:f16;var _5q:f16;var _5r:u32;var _5s:u32;var _5t:u32;var _5u:u32;var _5v:u32;var _5w:u32;var _5x:i32;var _5y:i32;var _5z:i32;var _60:i32;var _61:f16;var _62:f16;var _63:f16;var _64:f16;var _65:u32;var _66:u32;var _67:u32;var _68:u32;var _69:u32;var _6a:u32;var _6b:i32;var _6c:i32;var _6d:i32;var _6e:i32;var _6f:f16;var _6g:f16;var _6h:f16;var _6i:f16;var _6j:u32;var _6k:u32;var _6l:u32;var _6m:u32;var _6n:u32;var _6o:u32;var _6p:i32;var _6q:i32;var _6r:i32;var _6s:i32;var _6t:f16;var _6u:f16;var _6v:f16;var _6w:f16;var _6x:u32;var _6y:u32;var _6z:u32;var _70:u32;var _71:u32;var _72:u32;var _73:i32;var _74:i32;var _75:i32;var _76:i32;var _77:f16;var _78:f16;var _79:f16;var _7a:f16;var _7b:u32;var _7c:u32;var _7d:u32;var _7e:u32;var _7f:u32;var _7g:u32;var _7h:i32;var _7i:i32;var _7j:i32;var _7k:i32;var _7l:f16;var _7m:f16;var _7n:f16;var _7o:f16;var _7p:u32;var _7q:u32;var _7r:u32;var _7s:u32;var _7t:u32;var _7u:u32;var _7v:i32;var _7w:i32;var _7x:i32;var _7y:i32;var _7z:f16;var _80:f16;var _81:f16;var _82:f16;var _83:u32;var _84:u32;var _85:u32;var _86:u32;var _87:u32;var _88:u32;var _89:i32;var _8a:i32;var _8b:i32;var _8c:i32;var _8d:f16;var _8e:f16;var _8f:f16;var _8g:f16;var _8h:u32;var _8i:u32;var _8j:u32;var _8k:u32;var _8l:u32;var _8m:u32;var _8n:i32;var _8o:i32;var _8p:i32;var _8q:i32;var _8r:f16;var _8s:f16;var _8t:f16;var _8u:f16;var _8v:u32;var _8w:u32;var _8x:u32;var _8y:u32;var _8z:u32;var _90:u32;var _91:u32;var _92:u32;var _93:u32;var _94:u32;var _95:u32;var _96:u32;var _97:u32;var _98:u32;var _99:u32;var _9a:u32;var _9b:u32;var _9c:u32;var _9d:u32;var _9e:u32;var _9f:u32;var _9g:u32;var _9h:u32;var _9i:u32;var _9j:u32;var _9k:u32;var _9l:u32;var _9m:u32;var _9n:u32;var _9o:u32;var _9p:u32;var _9q:u32;var _9r:u32;var _9s:u32;var _9t:u32;var _9u:u32;var _9v:u32;var _9w:u32;var _9x:u32;var _9y:u32;var _9z:u32;var _a0:u32;var _a1:u32;var _a2:u32;var _a3:u32;var _a4:u32;var _a5:u32;var _a6:u32;var _a7:u32;var _a8:u32;var _a9:u32;var _aa:u32;var _ab:u32;var _ac:u32;var _ad:u32;var _ae:u32;var _af:u32;var _ag:u32;var _ah:u32;var _ai:u32;var _aj:u32;var _ak:u32;var _al:u32;var _am:u32;var _an:u32;var _ao:u32;var _ap:u32;var _aq:u32;var _ar:u32;var _as:u32;var _at:u32;var _au:u32;var _av:u32;var _aw:u32;var _ax:u32;var _ay:u32;var _az:u32;var _b0:u32;var _b1:u32;var _b2:u32;var _b3:u32;var _b4:u32;var _b5:u32;var _b6:u32;var _b7:u32;var _b8:u32;var _b9:u32;var _ba:u32;var _bb:u32;var _bc:u32;var _bd:u32;var _be:u32;var _bf:u32;let _bg=(vec2f(1.0f)/vec2f(vec2i(textureDimensions(_3,0i))));let _bh=((vec2f(bitcast<vec2i>((_n*vec2u(4u))))*_bg)+_bg);let _bi=vec4h(textureGather(0i,_3,_2,_bh,vec2i()));let _bj=vec4h(textureGather(0i,_3,_2,_bh,_4));let _bk=vec4h(textureGather(0i,_3,_2,_bh,_5));let _bl=vec4h(textureGather(0i,_3,_2,_bh,_6));_q=_bi.w;_r=_bi.z;_s=_bj.w;_t=_bj.z;_u=_bi.x;_v=_bi.y;_w=_bj.x;_x=_bj.y;_y=_bk.w;_z=_bk.z;_10=_bl.w;_11=_bl.z;_12=_bk.x;_13=_bk.y;_14=_bl.x;_15=_bl.y;let _bm=vec4h(textureGather(1i,_3,_2,_bh,vec2i()));let _bn=vec4h(textureGather(1i,_3,_2,_bh,_4));let _bo=vec4h(textureGather(1i,_3,_2,_bh,_5));let _bp=vec4h(textureGather(1i,_3,_2,_bh,_6));_16=_bm.w;_17=_bm.z;_18=_bn.w;_19=_bn.z;_1a=_bm.x;_1b=_bm.y;_1c=_bn.x;_1d=_bn.y;_1e=_bo.w;_1f=_bo.z;_1g=_bp.w;_1h=_bp.z;_1i=_bo.x;_1j=_bo.y;_1k=_bp.x;_1l=_bp.y;let _bq=vec4h(textureGather(2i,_3,_2,_bh,vec2i()));let _br=vec4h(textureGather(2i,_3,_2,_bh,_4));let _bs=vec4h(textureGather(2i,_3,_2,_bh,_5));let _bt=vec4h(textureGather(2i,_3,_2,_bh,_6));_1m=_bq.w;_1n=vec3h(_q,_16,_1m);_1o=_bq.z;_1p=vec3h(_r,_17,_1o);_1q=_br.w;_1r=vec3h(_s,_18,_1q);_1s=_br.z;_1t=vec3h(_t,_19,_1s);_1u=_bq.x;_1v=vec3h(_u,_1a,_1u);_1w=_bq.y;_1x=vec3h(_v,_1b,_1w);_1y=_br.x;_1z=vec3h(_w,_1c,_1y);_20=_br.y;_21=vec3h(_x,_1d,_20);_22=_bs.w;_23=vec3h(_y,_1e,_22);_24=_bs.z;_25=vec3h(_z,_1f,_24);_26=_bt.w;_27=vec3h(_10,_1g,_26);_28=_bt.z;_29=vec3h(_11,_1h,_28);_2a=_bs.x;_2b=vec3h(_12,_1i,_2a);_2c=_bs.y;_2d=vec3h(_13,_1j,_2c);_2e=_bt.x;_2f=vec3h(_14,_1k,_2e);_2g=_bt.y;_2h=vec3h(_15,_1l,_2g);switch(0u){default:{let _bu=(((_1n+_1p)+_1v)+_1x);let _bv=(((_1r+_1t)+_1z)+_21);let _bw=(((_23+_25)+_2b)+_2d);let _bx=(((_27+_29)+_2f)+_2h);let _by=((_q+_16)+_1m);let _bz=((_r+_17)+_1o);let _c0=((_s+_18)+_1q);let _c1=((_t+_19)+_1s);let _c2=((_u+_1a)+_1u);let _c3=((_v+_1b)+_1w);let _c4=((_w+_1c)+_1y);let _c5=((_x+_1d)+_20);let _c6=((_y+_1e)+_22);let _c7=((_z+_1f)+_24);let _c8=((_10+_1g)+_26);let _c9=((_11+_1h)+_28);let _ca=((_12+_1i)+_2a);let _cb=((_13+_1j)+_2c);let _cc=((_14+_1k)+_2e);let _cd=((_15+_1l)+_2g);let _ce=min(min(_by,_bz),min(_c2,_c3));let _cf=min(min(_c0,_c1),min(_c4,_c5));let _cg=min(min(_c6,_c7),min(_ca,_cb));let _ch=min(min(_c8,_c9),min(_cc,_cd));let _ci=max(max(_by,_bz),max(_c2,_c3));let _cj=max(max(_c0,_c1),max(_c4,_c5));let _ck=max(max(_c6,_c7),max(_ca,_cb));let _cl=max(max(_c8,_c9),max(_cc,_cd));let _cm=min(_ce,_cf);let _cn=min(_cg,_ch);let _co=min(_ce,_cg);let _cp=min(_cf,_ch);let _cq=select(0u,1u,(((max(_ce,_cf)-_cm)+(max(_cg,_ch)-_cn))<((max(_ce,_cg)-_co)+(max(_cf,_ch)-_cp))));let _cr=(_cq!=0u);let _cs=select(2i,8i,_cr);if(_cr){_2i=(_bu+_bv);_2j=(_bx+_bw);_2k=max(_ci,_cj);_2l=max(_ck,_cl);_2q=_2j;_2r=_2i;_2s=_2l;_2t=_2k;}else{_2m=(_bu+_bw);_2n=(_bx+_bv);_2o=max(_ci,_ck);_2p=max(_cj,_cl);_2q=_2n;_2r=_2m;_2s=_2p;_2t=_2o;}var _ct:f16;var _cu:vec2u;var _cv:vec2u;var _cw:vec2u;var _cx:vec2u;let _cy=select(_cp,_cn,_cr);let _cz=select(_co,_cm,_cr);_ct=(max(_2t,_2s)-min(_cz,_cy));switch(0u){default:{if((_ct>=1.0h)){_h=vec2u();break;}var _d0:f16;var _d1:f16;var _d2:f16;var _d3:f16;var _d4:f16;var _d5:f16;var _d6:f16;var _d7:f16;var _d8:f16;var _d9:f16;var _da:f16;var _db:f16;var _dc:f16;var _dd:f16;var _de:f16;var _df:f16;var _dg:f16;var _dh:f16;var _di:f16;var _dj:f16;_d0=(f16(0i)/4.0h);let _dk=(1.0h-_d0);_d1=(_dk-_d0);let _dl=(_1n*_d0);_d2=(f16(1i)/4.0h);let _dm=(1.0h-_d2);_d3=(_dm-_d0);_d4=(f16(2i)/4.0h);let _dn=(1.0h-_d4);_d5=(_dn-_d0);_d6=(f16(3i)/4.0h);let _do=(1.0h-_d6);_d7=(_do-_d0);_d8=(_dk-_d2);_d9=(_dm-_d2);let _dp=(_1x*_d2);_da=(_dn-_d2);_db=(_do-_d2);_dc=(_dk-_d4);_dd=(_dm-_d4);_de=(_dn-_d4);let _dq=(_27*_d4);_df=(_do-_d4);_dg=(_dk-_d6);_dh=(_dm-_d6);_di=(_dn-_d6);_dj=(_do-_d6);let _dr=(_2h*_d6);let _ds=(((((((((((((((_dl+(_1p*_d2))+(_1r*_d4))+(_1t*_d6))+(_1v*_d0))+_dp)+(_1z*_d4))+(_21*_d6))+(_23*_d0))+(_25*_d2))+_dq)+(_29*_d6))+(_2b*_d0))+(_2d*_d2))+(_2f*_d4))+_dr);let _dt=(((((((((((((((_dl+(_1p*_d0))+(_1r*_d0))+(_1t*_d0))+(_1v*_d2))+_dp)+(_1z*_d2))+(_21*_d2))+(_23*_d4))+(_25*_d4))+_dq)+(_29*_d4))+(_2b*_d6))+(_2d*_d6))+(_2f*_d6))+_dr);let _du=((((((((((((((((_1n*_d1)+(_1p*_d3))+(_1r*_d5))+(_1t*_d7))+(_1v*_d8))+(_1x*_d9))+(_1z*_da))+(_21*_db))+(_23*_dc))+(_25*_dd))+(_27*_de))+(_29*_df))+(_2b*_dg))+(_2d*_dh))+(_2f*_di))+(_2h*_dj));let _dv=clamp((_7*vec3h(_ds.x,_dt.x,_du.x)),vec3h(),_8);let _dw=clamp((_7*vec3h(_ds.y,_dt.y,_du.y)),vec3h(),_8);let _dx=clamp((_7*vec3h(_ds.z,_dt.z,_du.z)),vec3h(),_8);if((_ct>=0.0313720703125h)){let _dy=vec3h(_dv.x,_dw.x,_dx.x);let _dz=vec3h(_dv.y,_dw.y,_dx.y);let _e0=vec3h(_dv.z,_dw.z,_dx.z);let _e1=(_dy*_d0);let _e2=(_dz*_d0);let _e3=(((_e1+_e2)+(_e0*_d1))-_1n);let _e4=(_dy*_d2);let _e5=(((_e4+_e2)+(_e0*_d3))-_1p);let _e6=(_dy*_d4);let _e7=(((_e6+_e2)+(_e0*_d5))-_1r);let _e8=(_dy*_d6);let _e9=(((_e8+_e2)+(_e0*_d7))-_1t);let _ea=(_dz*_d2);let _eb=(((_e1+_ea)+(_e0*_d8))-_1v);let _ec=(((_e4+_ea)+(_e0*_d9))-_1x);let _ed=(((_e6+_ea)+(_e0*_da))-_1z);let _ee=(((_e8+_ea)+(_e0*_db))-_21);let _ef=(_dz*_d4);let _eg=(((_e1+_ef)+(_e0*_dc))-_23);let _eh=(((_e4+_ef)+(_e0*_dd))-_25);let _ei=(((_e6+_ef)+(_e0*_de))-_27);let _ej=(((_e8+_ef)+(_e0*_df))-_29);let _ek=(_dz*_d6);let _el=(((_e1+_ek)+(_e0*_dg))-_2b);let _em=(((_e4+_ek)+(_e0*_dh))-_2d);let _en=(((_e6+_ek)+(_e0*_di))-_2f);let _eo=(((_e8+_ek)+(_e0*_dj))-_2h);if(((((((((((((((((dot(_e3,_e3)+dot(_e5,_e5))+dot(_e7,_e7))+dot(_e9,_e9))+dot(_eb,_eb))+dot(_ec,_ec))+dot(_ed,_ed))+dot(_ee,_ee))+dot(_eg,_eg))+dot(_eh,_eh))+dot(_ei,_ei))+dot(_ej,_ej))+dot(_el,_el))+dot(_em,_em))+dot(_en,_en))+dot(_eo,_eo))>0.01279449462890625h)){_h=vec2u();break;}}let _ep=u32(((f32(_dv.x)*63.0f)+0.5f));let _eq=u32(((f32(_dv.z)*63.0f)+0.5f));let _er=u32(((f32(_dw.z)*127.0f)+0.5f));let _es=u32(((f32(_dx.z)*63.0f)+0.5f));let _et=((_ep&1u)|((_ep<<bitcast<u32>(1i))&124u));let _eu=(_es&24u);let _ev=(((_et|((((_es&7u)<<bitcast<u32>(7i))|(_eu<<bitcast<u32>(8i)))|((_es&32u)<<bitcast<u32>(11i))))|(((_er&63u)<<bitcast<u32>(17i))|((_er&64u)<<bitcast<u32>(18i))))|(_eq<<bitcast<u32>(25i)));var _ew=vec2u(_et,(((u32(((f32(_dx.y)*63.0f)+0.5f))|(u32(((f32(_dw.y)*127.0f)+0.5f))<<bitcast<u32>(6i)))|(u32(((f32(_dv.y)*63.0f)+0.5f))<<bitcast<u32>(13i)))|((u32(((f32(_dx.x)*63.0f)+0.5f))|(u32(((f32(_dw.x)*127.0f)+0.5f))<<bitcast<u32>(6i)))<<bitcast<u32>(19i))));_ew.x=_ev;let _ex=_ew;_cv=_ew;if(((_eq&32u)==0u)){_cu=_ex;_cu.x=(_ev|2147483648u);_cv=_cu;}_cx=_cv;if(((_er&32u)==0u)){_cw=_cv;_cw.x=(_cv.x|8388608u);_cx=_cw;}let _ey=(_cx.x|select(57346u,1026u,((3i-bitcast<i32>(((_es&6u)>>bitcast<u32>(1i))))>=bitcast<i32>((_eu>>bitcast<u32>(3i))))));let _ez=_cx.y;_2u=vec2u((((((_ey>>bitcast<u32>(8i))&65280u)|((_ey>>bitcast<u32>(24i))&255u))|((_ey<<bitcast<u32>(8i))&16711680u))|((_ey<<bitcast<u32>(24i))&4278190080u)),(((((_ez>>bitcast<u32>(8i))&65280u)|((_ez>>bitcast<u32>(24i))&255u))|((_ez<<bitcast<u32>(8i))&16711680u))|((_ez<<bitcast<u32>(24i))&4278190080u)));_h=_2u;}}if((_h.x!=0u)){_j=_h;break;}var _f0:f16;var _f1:u32;_f0=((_2t-_cz)*85.0h);if((_f0<27.0h)){_2w=0u;}else{var _f2:u32;if((_f0<50.0h)){_2v=1u;}else{var _f3:u32;if((_f0<77.0h)){_f1=2u;}else{var _f4:u32;if((_f0<111.0h)){_f2=3u;}else{if((_f0<152.0h)){_f3=4u;}else{_f4=select(6u,5u,(_f0<202.0h));_f3=_f4;}_f2=_f3;}_f1=_f2;}_2v=_f1;}_2w=_2v;}var _f5:f16;var _f6:u32;_e=_9;let _f7=(f16(_e[_2w])*0.0117645263671875h);_f5=((_2s-_cy)*85.0h);if((_f5<27.0h)){_2y=0u;}else{var _f8:u32;if((_f5<50.0h)){_2x=1u;}else{var _f9:u32;if((_f5<77.0h)){_f6=2u;}else{var _fa:u32;if((_f5<111.0h)){_f8=3u;}else{if((_f5<152.0h)){_f9=4u;}else{_fa=select(6u,5u,(_f5<202.0h));_f9=_fa;}_f8=_f9;}_f6=_f8;}_2x=_f6;}_2y=_2x;}_d=_9;let _fb=(f16(_d[_2y])*0.0117645263671875h);let _fc=((_2t+_cz)*0.5h);let _fd=((_2s+_cy)*0.5h);let _fe=(_by-_fc);let _ff=select(0u,1u,(_fe<0.0h));let _fg=select(0u,1u,(abs(_fe)>_f7));let _fh=(0u|((_fg<<bitcast<u32>(0i))|(_ff<<bitcast<u32>(16i))));_c=_a;let _fi=bitcast<i32>(_c[_2w]);_30=_fi;if((_fg!=0u)){_2z=(_fi>>bitcast<u32>(8i));_30=_2z;}let _fj=(_30&255i);_32=_fj;if((_ff!=0u)){_31=-(_fj);_32=_31;}let _fk=f16(_32);let _fl=((1i&_cs)!=0i);if(_fl){let _fm=(_bz-_fd);_33=select(0u,1u,(_fm<0.0h));_34=select(0u,1u,(abs(_fm)>_fb));_37=_33;_38=_34;}else{let _fn=(_bz-_fc);_35=select(0u,1u,(_fn<0.0h));_36=select(0u,1u,(abs(_fn)>_f7));_37=_35;_38=_36;}let _fo=(_fh|((_38<<bitcast<u32>(4i))|(_37<<bitcast<u32>(20i))));_c=_a;let _fp=bitcast<i32>(_c[select(_2w,_2y,_fl)]);_3a=_fp;if((_38!=0u)){_39=(_fp>>bitcast<u32>(8i));_3a=_39;}let _fq=(_3a&255i);_3c=_fq;if((_37!=0u)){_3b=-(_fq);_3c=_3b;}let _fr=f16(_3c);if(_fl){_3e=_fk;}else{_3d=(_fk+_fr);_3e=_3d;}let _fs=select(0.0h,_fr,_fl);let _ft=((2i&_cs)!=0i);if(_ft){let _fu=(_c0-_fd);_3f=select(0u,1u,(_fu<0.0h));_3g=select(0u,1u,(abs(_fu)>_fb));_3j=_3f;_3k=_3g;}else{let _fv=(_c0-_fc);_3h=select(0u,1u,(_fv<0.0h));_3i=select(0u,1u,(abs(_fv)>_f7));_3j=_3h;_3k=_3i;}let _fw=(_fo|((_3k<<bitcast<u32>(8i))|(_3j<<bitcast<u32>(24i))));_c=_a;let _fx=bitcast<i32>(_c[select(_2w,_2y,_ft)]);_3m=_fx;if((_3k!=0u)){_3l=(_fx>>bitcast<u32>(8i));_3m=_3l;}let _fy=(_3m&255i);_3o=_fy;if((_3j!=0u)){_3n=-(_fy);_3o=_3n;}let _fz=f16(_3o);if(_ft){_3p=(_fs+_fz);_3r=_3p;_3s=_3e;}else{_3q=(_3e+_fz);_3r=_fs;_3s=_3q;}let _g0=((3i&_cs)!=0i);if(_g0){let _g1=(_c1-_fd);_3t=select(0u,1u,(_g1<0.0h));_3u=select(0u,1u,(abs(_g1)>_fb));_3x=_3t;_3y=_3u;}else{let _g2=(_c1-_fc);_3v=select(0u,1u,(_g2<0.0h));_3w=select(0u,1u,(abs(_g2)>_f7));_3x=_3v;_3y=_3w;}let _g3=(_fw|((_3y<<bitcast<u32>(12i))|(_3x<<bitcast<u32>(28i))));_c=_a;let _g4=bitcast<i32>(_c[select(_2w,_2y,_g0)]);_40=_g4;if((_3y!=0u)){_3z=(_g4>>bitcast<u32>(8i));_40=_3z;}let _g5=(_40&255i);_42=_g5;if((_3x!=0u)){_41=-(_g5);_42=_41;}let _g6=f16(_42);if(_g0){_43=(_3r+_g6);_45=_43;_46=_3s;}else{_44=(_3s+_g6);_45=_3r;_46=_44;}let _g7=((4i&_cs)!=0i);if(_g7){let _g8=(_c2-_fd);_47=select(0u,1u,(_g8<0.0h));_48=select(0u,1u,(abs(_g8)>_fb));_4b=_47;_4c=_48;}else{let _g9=(_c2-_fc);_49=select(0u,1u,(_g9<0.0h));_4a=select(0u,1u,(abs(_g9)>_f7));_4b=_49;_4c=_4a;}let _ga=(_g3|((_4c<<bitcast<u32>(1i))|(_4b<<bitcast<u32>(17i))));_c=_a;let _gb=bitcast<i32>(_c[select(_2w,_2y,_g7)]);_4e=_gb;if((_4c!=0u)){_4d=(_gb>>bitcast<u32>(8i));_4e=_4d;}let _gc=(_4e&255i);_4g=_gc;if((_4b!=0u)){_4f=-(_gc);_4g=_4f;}let _gd=f16(_4g);if(_g7){_4h=(_45+_gd);_4j=_4h;_4k=_46;}else{_4i=(_46+_gd);_4j=_45;_4k=_4i;}let _ge=((5i&_cs)!=0i);if(_ge){let _gf=(_c3-_fd);_4l=select(0u,1u,(_gf<0.0h));_4m=select(0u,1u,(abs(_gf)>_fb));_4p=_4l;_4q=_4m;}else{let _gg=(_c3-_fc);_4n=select(0u,1u,(_gg<0.0h));_4o=select(0u,1u,(abs(_gg)>_f7));_4p=_4n;_4q=_4o;}let _gh=(_ga|((_4q<<bitcast<u32>(5i))|(_4p<<bitcast<u32>(21i))));_c=_a;let _gi=bitcast<i32>(_c[select(_2w,_2y,_ge)]);_4s=_gi;if((_4q!=0u)){_4r=(_gi>>bitcast<u32>(8i));_4s=_4r;}let _gj=(_4s&255i);_4u=_gj;if((_4p!=0u)){_4t=-(_gj);_4u=_4t;}let _gk=f16(_4u);if(_ge){_4v=(_4j+_gk);_4x=_4v;_4y=_4k;}else{_4w=(_4k+_gk);_4x=_4j;_4y=_4w;}let _gl=((6i&_cs)!=0i);if(_gl){let _gm=(_c4-_fd);_4z=select(0u,1u,(_gm<0.0h));_50=select(0u,1u,(abs(_gm)>_fb));_53=_4z;_54=_50;}else{let _gn=(_c4-_fc);_51=select(0u,1u,(_gn<0.0h));_52=select(0u,1u,(abs(_gn)>_f7));_53=_51;_54=_52;}let _go=(_gh|((_54<<bitcast<u32>(9i))|(_53<<bitcast<u32>(25i))));_c=_a;let _gp=bitcast<i32>(_c[select(_2w,_2y,_gl)]);_56=_gp;if((_54!=0u)){_55=(_gp>>bitcast<u32>(8i));_56=_55;}let _gq=(_56&255i);_58=_gq;if((_53!=0u)){_57=-(_gq);_58=_57;}let _gr=f16(_58);if(_gl){_59=(_4x+_gr);_5b=_59;_5c=_4y;}else{_5a=(_4y+_gr);_5b=_4x;_5c=_5a;}let _gs=((7i&_cs)!=0i);if(_gs){let _gt=(_c5-_fd);_5d=select(0u,1u,(_gt<0.0h));_5e=select(0u,1u,(abs(_gt)>_fb));_5h=_5d;_5i=_5e;}else{let _gu=(_c5-_fc);_5f=select(0u,1u,(_gu<0.0h));_5g=select(0u,1u,(abs(_gu)>_f7));_5h=_5f;_5i=_5g;}let _gv=(_go|((_5i<<bitcast<u32>(13i))|(_5h<<bitcast<u32>(29i))));_c=_a;let _gw=bitcast<i32>(_c[select(_2w,_2y,_gs)]);_5k=_gw;if((_5i!=0u)){_5j=(_gw>>bitcast<u32>(8i));_5k=_5j;}let _gx=(_5k&255i);_5m=_gx;if((_5h!=0u)){_5l=-(_gx);_5m=_5l;}let _gy=f16(_5m);if(_gs){_5n=(_5b+_gy);_5p=_5n;_5q=_5c;}else{_5o=(_5c+_gy);_5p=_5b;_5q=_5o;}let _gz=((8i&_cs)!=0i);if(_gz){let _h0=(_c6-_fd);_5r=select(0u,1u,(_h0<0.0h));_5s=select(0u,1u,(abs(_h0)>_fb));_5v=_5r;_5w=_5s;}else{let _h1=(_c6-_fc);_5t=select(0u,1u,(_h1<0.0h));_5u=select(0u,1u,(abs(_h1)>_f7));_5v=_5t;_5w=_5u;}let _h2=(_gv|((_5w<<bitcast<u32>(2i))|(_5v<<bitcast<u32>(18i))));_c=_a;let _h3=bitcast<i32>(_c[select(_2w,_2y,_gz)]);_5y=_h3;if((_5w!=0u)){_5x=(_h3>>bitcast<u32>(8i));_5y=_5x;}let _h4=(_5y&255i);_60=_h4;if((_5v!=0u)){_5z=-(_h4);_60=_5z;}let _h5=f16(_60);if(_gz){_61=(_5p+_h5);_63=_61;_64=_5q;}else{_62=(_5q+_h5);_63=_5p;_64=_62;}let _h6=((9i&_cs)!=0i);if(_h6){let _h7=(_c7-_fd);_65=select(0u,1u,(_h7<0.0h));_66=select(0u,1u,(abs(_h7)>_fb));_69=_65;_6a=_66;}else{let _h8=(_c7-_fc);_67=select(0u,1u,(_h8<0.0h));_68=select(0u,1u,(abs(_h8)>_f7));_69=_67;_6a=_68;}let _h9=(_h2|((_6a<<bitcast<u32>(6i))|(_69<<bitcast<u32>(22i))));_c=_a;let _ha=bitcast<i32>(_c[select(_2w,_2y,_h6)]);_6c=_ha;if((_6a!=0u)){_6b=(_ha>>bitcast<u32>(8i));_6c=_6b;}let _hb=(_6c&255i);_6e=_hb;if((_69!=0u)){_6d=-(_hb);_6e=_6d;}let _hc=f16(_6e);if(_h6){_6f=(_63+_hc);_6h=_6f;_6i=_64;}else{_6g=(_64+_hc);_6h=_63;_6i=_6g;}let _hd=((10i&_cs)!=0i);if(_hd){let _he=(_c8-_fd);_6j=select(0u,1u,(_he<0.0h));_6k=select(0u,1u,(abs(_he)>_fb));_6n=_6j;_6o=_6k;}else{let _hf=(_c8-_fc);_6l=select(0u,1u,(_hf<0.0h));_6m=select(0u,1u,(abs(_hf)>_f7));_6n=_6l;_6o=_6m;}let _hg=(_h9|((_6o<<bitcast<u32>(10i))|(_6n<<bitcast<u32>(26i))));_c=_a;let _hh=bitcast<i32>(_c[select(_2w,_2y,_hd)]);_6q=_hh;if((_6o!=0u)){_6p=(_hh>>bitcast<u32>(8i));_6q=_6p;}let _hi=(_6q&255i);_6s=_hi;if((_6n!=0u)){_6r=-(_hi);_6s=_6r;}let _hj=f16(_6s);if(_hd){_6t=(_6h+_hj);_6v=_6t;_6w=_6i;}else{_6u=(_6i+_hj);_6v=_6h;_6w=_6u;}let _hk=((11i&_cs)!=0i);if(_hk){let _hl=(_c9-_fd);_6x=select(0u,1u,(_hl<0.0h));_6y=select(0u,1u,(abs(_hl)>_fb));_71=_6x;_72=_6y;}else{let _hm=(_c9-_fc);_6z=select(0u,1u,(_hm<0.0h));_70=select(0u,1u,(abs(_hm)>_f7));_71=_6z;_72=_70;}let _hn=(_hg|((_72<<bitcast<u32>(14i))|(_71<<bitcast<u32>(30i))));_c=_a;let _ho=bitcast<i32>(_c[select(_2w,_2y,_hk)]);_74=_ho;if((_72!=0u)){_73=(_ho>>bitcast<u32>(8i));_74=_73;}let _hp=(_74&255i);_76=_hp;if((_71!=0u)){_75=-(_hp);_76=_75;}let _hq=f16(_76);if(_hk){_77=(_6v+_hq);_79=_77;_7a=_6w;}else{_78=(_6w+_hq);_79=_6v;_7a=_78;}let _hr=((12i&_cs)!=0i);if(_hr){let _hs=(_ca-_fd);_7b=select(0u,1u,(_hs<0.0h));_7c=select(0u,1u,(abs(_hs)>_fb));_7f=_7b;_7g=_7c;}else{let _ht=(_ca-_fc);_7d=select(0u,1u,(_ht<0.0h));_7e=select(0u,1u,(abs(_ht)>_f7));_7f=_7d;_7g=_7e;}let _hu=(_hn|((_7g<<bitcast<u32>(3i))|(_7f<<bitcast<u32>(19i))));_c=_a;let _hv=bitcast<i32>(_c[select(_2w,_2y,_hr)]);_7i=_hv;if((_7g!=0u)){_7h=(_hv>>bitcast<u32>(8i));_7i=_7h;}let _hw=(_7i&255i);_7k=_hw;if((_7f!=0u)){_7j=-(_hw);_7k=_7j;}let _hx=f16(_7k);if(_hr){_7l=(_79+_hx);_7n=_7l;_7o=_7a;}else{_7m=(_7a+_hx);_7n=_79;_7o=_7m;}let _hy=((13i&_cs)!=0i);if(_hy){let _hz=(_cb-_fd);_7p=select(0u,1u,(_hz<0.0h));_7q=select(0u,1u,(abs(_hz)>_fb));_7t=_7p;_7u=_7q;}else{let _i0=(_cb-_fc);_7r=select(0u,1u,(_i0<0.0h));_7s=select(0u,1u,(abs(_i0)>_f7));_7t=_7r;_7u=_7s;}let _i1=(_hu|((_7u<<bitcast<u32>(7i))|(_7t<<bitcast<u32>(23i))));_c=_a;let _i2=bitcast<i32>(_c[select(_2w,_2y,_hy)]);_7w=_i2;if((_7u!=0u)){_7v=(_i2>>bitcast<u32>(8i));_7w=_7v;}let _i3=(_7w&255i);_7y=_i3;if((_7t!=0u)){_7x=-(_i3);_7y=_7x;}let _i4=f16(_7y);if(_hy){_7z=(_7n+_i4);_81=_7z;_82=_7o;}else{_80=(_7o+_i4);_81=_7n;_82=_80;}let _i5=((14i&_cs)!=0i);if(_i5){let _i6=(_cc-_fd);_83=select(0u,1u,(_i6<0.0h));_84=select(0u,1u,(abs(_i6)>_fb));_87=_83;_88=_84;}else{let _i7=(_cc-_fc);_85=select(0u,1u,(_i7<0.0h));_86=select(0u,1u,(abs(_i7)>_f7));_87=_85;_88=_86;}let _i8=(_i1|((_88<<bitcast<u32>(11i))|(_87<<bitcast<u32>(27i))));_c=_a;let _i9=bitcast<i32>(_c[select(_2w,_2y,_i5)]);_8a=_i9;if((_88!=0u)){_89=(_i9>>bitcast<u32>(8i));_8a=_89;}let _ia=(_8a&255i);_8c=_ia;if((_87!=0u)){_8b=-(_ia);_8c=_8b;}let _ib=f16(_8c);if(_i5){_8d=(_81+_ib);_8f=_8d;_8g=_82;}else{_8e=(_82+_ib);_8f=_81;_8g=_8e;}let _ic=((15i&_cs)!=0i);if(_ic){let _id=(_cd-_fd);_8h=select(0u,1u,(_id<0.0h));_8i=select(0u,1u,(abs(_id)>_fb));_8l=_8h;_8m=_8i;}else{let _ie=(_cd-_fc);_8j=select(0u,1u,(_ie<0.0h));_8k=select(0u,1u,(abs(_ie)>_f7));_8l=_8j;_8m=_8k;}let _if=(_i8|((_8m<<bitcast<u32>(15i))|(_8l<<bitcast<u32>(31i))));_c=_a;let _ig=bitcast<i32>(_c[select(_2w,_2y,_ic)]);_8o=_ig;if((_8m!=0u)){_8n=(_ig>>bitcast<u32>(8i));_8o=_8n;}let _ih=(_8o&255i);_8q=_ih;if((_8l!=0u)){_8p=-(_ih);_8q=_8p;}let _ii=f16(_8q);if(_ic){_8r=(_8f+_ii);_8t=_8r;_8u=_8g;}else{_8s=(_8g+_ii);_8t=_8f;_8u=_8s;}var _ij:vec3h;var _ik:f16;var _il:vec3h;var _im:vec3h;var _in:vec3h;var _io:vec3h;var _ip:vec3h;var _iq:vec3h;let _ir=clamp(((_2r-vec3h((_8u*0.0039215087890625h)))*0.125h),vec3h(),_8);let _is=clamp(((_2q-vec3h((_8t*0.0039215087890625h)))*0.125h),vec3h(),_8);let _it=_ir.x;let _iu=trunc((round((_it*31.0h))*8.25h));let _iv=_ir.y;let _iw=trunc((round((_iv*31.0h))*8.25h));let _ix=_ir.z;let _iy=trunc((round((_ix*31.0h))*8.25h));let _iz=_is.x;let _j0=trunc((round((_iz*31.0h))*8.25h));let _j1=_is.y;let _j2=trunc((round((_j1*31.0h))*8.25h));let _j3=_is.z;let _j4=trunc((round((_j3*31.0h))*8.25h));_ij=trunc(((vec3h(_j0,_j2,_j4)-vec3h(_iu,_iw,_iy))*0.125h));_ik=_ij.x;let _j5=(max(max(abs(_ik),abs(_ij.y)),abs(_ij.z))<4.0h);if(_j5){_im=_ij;if((_ik<0.0h)){_il=_ij;_il.x=(_ik+8.0h);_im=_il;}let _j6=_im.y;_io=_im;if((_j6<0.0h)){_in=_im;_in.y=(_j6+8.0h);_io=_in;}let _j7=_io.z;_iq=_io;if((_j7<0.0h)){_ip=_io;_ip.z=(_j7+8.0h);_iq=_ip;}_8v=((((u32(_iy)&248u)|((u32(_iw)&248u)<<bitcast<u32>(8i)))|((u32(_iu)&248u)<<bitcast<u32>(16i)))|(((u32(_iq.z)&7u)|((u32(_iq.y)&7u)<<bitcast<u32>(8i)))|((u32(_iq.x)&7u)<<bitcast<u32>(16i))));_8x=_8v;}else{_8w=((((u32(trunc((round((_ix*15.0h))*17.0h)))&240u)|((u32(trunc((round((_iv*15.0h))*17.0h)))&240u)<<bitcast<u32>(8i)))|((u32(trunc((round((_it*15.0h))*17.0h)))&240u)<<bitcast<u32>(16i)))|((((u32(trunc((round((_j3*15.0h))*17.0h)))&240u)>>bitcast<u32>(4i))|((u32(trunc((round((_j1*15.0h))*17.0h)))&240u)<<bitcast<u32>(4i)))|((u32(trunc((round((_iz*15.0h))*17.0h)))&240u)<<bitcast<u32>(12i))));_8x=_8w;}let _j8=select(0u,1u,_j5);let _j9=(((_iu+_iw)+_iy)*0.0039215087890625h);let _ja=(((_j0+_j2)+_j4)*0.0039215087890625h);let _jb=(_by-_j9);let _jc=(_if|((select(0u,1u,(abs(_jb)>_f7))<<bitcast<u32>(0i))|(select(0u,1u,(_jb<0.0h))<<bitcast<u32>(16i))));if(_fl){let _jd=(_bz-_ja);_8y=select(0u,1u,(_jd<0.0h));_8z=select(0u,1u,(abs(_jd)>_fb));_92=_8y;_93=_8z;}else{let _je=(_bz-_j9);_90=select(0u,1u,(_je<0.0h));_91=select(0u,1u,(abs(_je)>_f7));_92=_90;_93=_91;}let _jf=(_jc|((_93<<bitcast<u32>(4i))|(_92<<bitcast<u32>(20i))));if(_ft){let _jg=(_c0-_ja);_94=select(0u,1u,(_jg<0.0h));_95=select(0u,1u,(abs(_jg)>_fb));_98=_94;_99=_95;}else{let _jh=(_c0-_j9);_96=select(0u,1u,(_jh<0.0h));_97=select(0u,1u,(abs(_jh)>_f7));_98=_96;_99=_97;}let _ji=(_jf|((_99<<bitcast<u32>(8i))|(_98<<bitcast<u32>(24i))));if(_g0){let _jj=(_c1-_ja);_9a=select(0u,1u,(_jj<0.0h));_9b=select(0u,1u,(abs(_jj)>_fb));_9e=_9a;_9f=_9b;}else{let _jk=(_c1-_j9);_9c=select(0u,1u,(_jk<0.0h));_9d=select(0u,1u,(abs(_jk)>_f7));_9e=_9c;_9f=_9d;}let _jl=(_ji|((_9f<<bitcast<u32>(12i))|(_9e<<bitcast<u32>(28i))));if(_g7){let _jm=(_c2-_ja);_9g=select(0u,1u,(_jm<0.0h));_9h=select(0u,1u,(abs(_jm)>_fb));_9k=_9g;_9l=_9h;}else{let _jn=(_c2-_j9);_9i=select(0u,1u,(_jn<0.0h));_9j=select(0u,1u,(abs(_jn)>_f7));_9k=_9i;_9l=_9j;}let _jo=(_jl|((_9l<<bitcast<u32>(1i))|(_9k<<bitcast<u32>(17i))));if(_ge){let _jp=(_c3-_ja);_9m=select(0u,1u,(_jp<0.0h));_9n=select(0u,1u,(abs(_jp)>_fb));_9q=_9m;_9r=_9n;}else{let _jq=(_c3-_j9);_9o=select(0u,1u,(_jq<0.0h));_9p=select(0u,1u,(abs(_jq)>_f7));_9q=_9o;_9r=_9p;}let _jr=(_jo|((_9r<<bitcast<u32>(5i))|(_9q<<bitcast<u32>(21i))));if(_gl){let _js=(_c4-_ja);_9s=select(0u,1u,(_js<0.0h));_9t=select(0u,1u,(abs(_js)>_fb));_9w=_9s;_9x=_9t;}else{let _jt=(_c4-_j9);_9u=select(0u,1u,(_jt<0.0h));_9v=select(0u,1u,(abs(_jt)>_f7));_9w=_9u;_9x=_9v;}let _ju=(_jr|((_9x<<bitcast<u32>(9i))|(_9w<<bitcast<u32>(25i))));if(_gs){let _jv=(_c5-_ja);_9y=select(0u,1u,(_jv<0.0h));_9z=select(0u,1u,(abs(_jv)>_fb));_a2=_9y;_a3=_9z;}else{let _jw=(_c5-_j9);_a0=select(0u,1u,(_jw<0.0h));_a1=select(0u,1u,(abs(_jw)>_f7));_a2=_a0;_a3=_a1;}let _jx=(_ju|((_a3<<bitcast<u32>(13i))|(_a2<<bitcast<u32>(29i))));if(_gz){let _jy=(_c6-_ja);_a4=select(0u,1u,(_jy<0.0h));_a5=select(0u,1u,(abs(_jy)>_fb));_a8=_a4;_a9=_a5;}else{let _jz=(_c6-_j9);_a6=select(0u,1u,(_jz<0.0h));_a7=select(0u,1u,(abs(_jz)>_f7));_a8=_a6;_a9=_a7;}let _k0=(_jx|((_a9<<bitcast<u32>(2i))|(_a8<<bitcast<u32>(18i))));if(_h6){let _k1=(_c7-_ja);_aa=select(0u,1u,(_k1<0.0h));_ab=select(0u,1u,(abs(_k1)>_fb));_ae=_aa;_af=_ab;}else{let _k2=(_c7-_j9);_ac=select(0u,1u,(_k2<0.0h));_ad=select(0u,1u,(abs(_k2)>_f7));_ae=_ac;_af=_ad;}let _k3=(_k0|((_af<<bitcast<u32>(6i))|(_ae<<bitcast<u32>(22i))));if(_hd){let _k4=(_c8-_ja);_ag=select(0u,1u,(_k4<0.0h));_ah=select(0u,1u,(abs(_k4)>_fb));_ak=_ag;_al=_ah;}else{let _k5=(_c8-_j9);_ai=select(0u,1u,(_k5<0.0h));_aj=select(0u,1u,(abs(_k5)>_f7));_ak=_ai;_al=_aj;}let _k6=(_k3|((_al<<bitcast<u32>(10i))|(_ak<<bitcast<u32>(26i))));if(_hk){let _k7=(_c9-_ja);_am=select(0u,1u,(_k7<0.0h));_an=select(0u,1u,(abs(_k7)>_fb));_aq=_am;_ar=_an;}else{let _k8=(_c9-_j9);_ao=select(0u,1u,(_k8<0.0h));_ap=select(0u,1u,(abs(_k8)>_f7));_aq=_ao;_ar=_ap;}let _k9=(_k6|((_ar<<bitcast<u32>(14i))|(_aq<<bitcast<u32>(30i))));if(_hr){let _ka=(_ca-_ja);_as=select(0u,1u,(_ka<0.0h));_at=select(0u,1u,(abs(_ka)>_fb));_aw=_as;_ax=_at;}else{let _kb=(_ca-_j9);_au=select(0u,1u,(_kb<0.0h));_av=select(0u,1u,(abs(_kb)>_f7));_aw=_au;_ax=_av;}let _kc=(_k9|((_ax<<bitcast<u32>(3i))|(_aw<<bitcast<u32>(19i))));if(_hy){let _kd=(_cb-_ja);_ay=select(0u,1u,(_kd<0.0h));_az=select(0u,1u,(abs(_kd)>_fb));_b2=_ay;_b3=_az;}else{let _ke=(_cb-_j9);_b0=select(0u,1u,(_ke<0.0h));_b1=select(0u,1u,(abs(_ke)>_f7));_b2=_b0;_b3=_b1;}let _kf=(_kc|((_b3<<bitcast<u32>(7i))|(_b2<<bitcast<u32>(23i))));if(_i5){let _kg=(_cc-_ja);_b4=select(0u,1u,(_kg<0.0h));_b5=select(0u,1u,(abs(_kg)>_fb));_b8=_b4;_b9=_b5;}else{let _kh=(_cc-_j9);_b6=select(0u,1u,(_kh<0.0h));_b7=select(0u,1u,(abs(_kh)>_f7));_b8=_b6;_b9=_b7;}let _ki=(_kf|((_b9<<bitcast<u32>(11i))|(_b8<<bitcast<u32>(27i))));if(_ic){let _kj=(_cd-_ja);_ba=select(0u,1u,(_kj<0.0h));_bb=select(0u,1u,(abs(_kj)>_fb));_be=_ba;_bf=_bb;}else{let _kk=(_cd-_j9);_bc=select(0u,1u,(_kk<0.0h));_bd=select(0u,1u,(abs(_kk)>_f7));_be=_bc;_bf=_bd;}let _kl=(_ki|((_bf<<bitcast<u32>(15i))|(_be<<bitcast<u32>(31i))));_i=vec2u((((((((_2w<<bitcast<u32>(29i))|(_2y<<bitcast<u32>(26i)))|(_j8<<bitcast<u32>(25i)))|(_cq<<bitcast<u32>(24i)))|((_8x&255u)<<bitcast<u32>(16i)))|(_8x&65280u))|(_8x>>bitcast<u32>(16i))),(((((_kl>>bitcast<u32>(8i))&65280u)|((_kl>>bitcast<u32>(24i))&255u))|((_kl<<bitcast<u32>(8i))&16711680u))|((_kl<<bitcast<u32>(24i))&4278190080u)));_j=_i;}}x_2140._0[((_m.y*((_l+31u)&4294967264u))+_o)]=_j;}}return;}@compute @workgroup_size(16i, 16i, 1i) fn main(@builtin(global_invocation_id) _km:vec3u,@builtin(local_invocation_id) _kn:vec3u,@builtin(workgroup_id) _ko:vec3u){x_2042=_km;x_2049=_kn;_b();}";
2
+ export {
3
+ spark_etc2_rgb as default
4
+ };
@@ -0,0 +1,4 @@
1
+ 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();}";
2
+ export {
3
+ spark_etc2_rgba as default
4
+ };
@@ -0,0 +1,4 @@
1
+ const utils = "struct Params {\n to_srgb: u32,\n};\n\n@group(0) @binding(0) var src : texture_2d<f32>;\n@group(0) @binding(1) var dst : texture_storage_2d<rgba8unorm, write>;\n@group(0) @binding(2) var smp: sampler;\n@group(0) @binding(3) var<uniform> params: Params;\n\nfn linear_to_srgb_vec3(c: vec3<f32>) -> vec3<f32> {\n return select(\n 1.055 * pow(c, vec3<f32>(1.0 / 2.4)) - 0.055,\n c * 12.92,\n c <= vec3<f32>(0.0031308)\n );\n}\n\nfn linear_to_srgb_vec4(c: vec4<f32>) -> vec4<f32> {\n return vec4<f32>(linear_to_srgb_vec3(c.xyz), 1.0);\n}\n\n@compute @workgroup_size(8, 8)\nfn mipmap(@builtin(global_invocation_id) id : vec3<u32>) {\n let dstSize = textureDimensions(dst).xy;\n if (id.x >= dstSize.x || id.y >= dstSize.y) {\n return;\n }\n\n let size_rcp = vec2f(1.0) / vec2f(dstSize);\n let uv0 = vec2f(id.xy) * size_rcp;\n let uv1 = uv0 + size_rcp;\n\n var color = vec4f(0.0);\n color += textureSampleLevel(src, smp, vec2f(uv0.x, uv0.y), 0);\n color += textureSampleLevel(src, smp, vec2f(uv1.x, uv0.y), 0);\n color += textureSampleLevel(src, smp, vec2f(uv0.x, uv1.y), 0);\n color += textureSampleLevel(src, smp, vec2f(uv1.x, uv1.y), 0);\n color *= 0.25; \n\n if (params.to_srgb != 0) {\n color = linear_to_srgb_vec4(color);\n }\n\n textureStore(dst, id.xy, color);\n}\n\n@compute @workgroup_size(8, 8)\nfn resize(@builtin(global_invocation_id) id : vec3<u32>) {\n let dstSize = textureDimensions(dst).xy;\n if (id.x >= dstSize.x || id.y >= dstSize.y) {\n return;\n }\n\n let uv = (vec2f(id.xy) + vec2f(0.5)) / vec2f(dstSize);\n var color = textureSampleLevel(src, smp, uv, 0);\n\n if (params.to_srgb != 0) {\n color = linear_to_srgb_vec4(color);\n }\n\n textureStore(dst, id.xy, color);\n}\n\n@compute @workgroup_size(8, 8)\nfn flipy(@builtin(global_invocation_id) id : vec3<u32>) {\n let dstSize = textureDimensions(dst).xy;\n if (id.x >= dstSize.x || id.y >= dstSize.y) {\n return;\n }\n\n let uv = vec2f(f32(id.x), f32(dstSize.y - 1u - id.y)) / vec2f(dstSize);\n var color = textureSampleLevel(src, smp, uv, 0);\n\n if (params.to_srgb != 0) {\n color = linear_to_srgb_vec4(color);\n }\n\n textureStore(dst, id.xy, color);\n}\n\n\n@group(0) @binding(1) var<storage, read_write> global_counters: array<atomic<u32>, 3>;\n\nvar<workgroup> local_opaque: atomic<u32>;\nvar<workgroup> local_grayscale: atomic<u32>;\nvar<workgroup> local_invalid_normals: atomic<u32>;\n\n@compute @workgroup_size(8, 8)\nfn detect_channel_count(@builtin(global_invocation_id) global_id: vec3<u32>,\n @builtin(local_invocation_index) local_id: u32) {\n \n if (local_id == 0u) {\n atomicStore(&local_opaque, 1u);\n atomicStore(&local_grayscale, 1u);\n atomicStore(&local_invalid_normals, 0u);\n }\n workgroupBarrier();\n\n let tex_size = textureDimensions(src);\n if (global_id.x < tex_size.x && global_id.y < tex_size.y) {\n\n let color = textureLoad(src, vec2<i32>(global_id.xy), 0);\n\n // Alpha check\n if (color.a < 1.0) {\n atomicStore(&local_opaque, 0u);\n }\n\n // Grayscale check\n if (color.r != color.g || color.g != color.b) {\n atomicStore(&local_grayscale, 0u);\n }\n\n // Normal check\n let n = color.rgb * 2.0 - vec3(1.0);\n let len = length(n);\n\n if (abs(len - 1.0) > 0.2 || n.z < -0.1) {\n atomicAdd(&local_invalid_normals, 1u);\n }\n }\n\n workgroupBarrier();\n\n if (local_id == 0u) {\n // If not opaque, write not-opaque flag.\n if (atomicLoad(&local_opaque) == 0u) {\n atomicStore(&global_counters[0], 1u);\n }\n\n // If not greyscale, write not greyscale flag.\n if (atomicLoad(&local_grayscale) == 0u) {\n atomicStore(&global_counters[1], 1u);\n }\n\n // Add number of texels that are not normal.\n atomicAdd(&global_counters[2], atomicLoad(&local_invalid_normals));\n }\n}\n\n\n// @@ Compute RMSE?\n\n\n";
2
+ export {
3
+ utils as default
4
+ };
package/package.json ADDED
@@ -0,0 +1,74 @@
1
+ {
2
+ "name": "@ludicon/spark.js",
3
+ "version": "0.0.1",
4
+ "description": "Real-Time GPU Texture Codecs for the Web",
5
+ "main": "dist/index.esm.js",
6
+ "module": "dist/index.esm.js",
7
+ "type": "module",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.esm.js"
11
+ }
12
+ },
13
+ "files": [
14
+ "dist",
15
+ "README.md",
16
+ "LICENSE"
17
+ ],
18
+ "scripts": {
19
+ "build": "vite build",
20
+ "dev": "vite build --watch",
21
+ "serve": "vite --host",
22
+ "lint": "eslint .",
23
+ "lint:fix": "eslint . --fix",
24
+ "format": "prettier --write \"src/**/*.{js,jsx}\"",
25
+ "prepublishOnly": "npm run build",
26
+ "clean": "rimraf dist"
27
+ },
28
+ "keywords": [
29
+ "gpu",
30
+ "webgpu",
31
+ "texture",
32
+ "compression",
33
+ "transcoding",
34
+ "astc",
35
+ "bc1",
36
+ "bc3",
37
+ "bc4",
38
+ "bc5",
39
+ "bc7",
40
+ "etc2",
41
+ "eac",
42
+ "graphics",
43
+ "wgsl",
44
+ "image",
45
+ "codec",
46
+ "real-time",
47
+ "spark"
48
+ ],
49
+ "author": "Ignacio Castano <castano@ludicon.com> (https://ludicon.com/)",
50
+ "license": "MIT",
51
+ "repository": {
52
+ "type": "git",
53
+ "url": "git+https://github.com/ludicon/spark.js.git"
54
+ },
55
+ "devDependencies": {
56
+ "@types/node": "^20.0.0",
57
+ "@vitejs/plugin-basic-ssl": "^2.1.0",
58
+ "eslint": "^9.0.0",
59
+ "globals": "^15.0.0",
60
+ "prettier": "^3.0.0",
61
+ "rimraf": "^5.0.0",
62
+ "vite": "^7.0.0"
63
+ },
64
+ "publishConfig": {
65
+ "access": "public"
66
+ },
67
+ "directories": {
68
+ "example": "examples"
69
+ },
70
+ "bugs": {
71
+ "url": "https://github.com/ludicon/spark.js/issues"
72
+ },
73
+ "homepage": "https://ludicon.com/ludicon/sparkjs#readme"
74
+ }