@ludicon/spark.js
Version:
Real-Time GPU Texture Codecs for the Web
5 lines (4 loc) • 22.2 kB
JavaScript
const _ = "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_2118:vec3u;var<private>x_2124:vec3u;@binding(2) @group(0) var<storage,read_write>x_2214:_1;const _4=vec2i(2i,0i);const _5=vec2i(0i,2i);const _6=vec2i(2i);const _7=vec3h(1.0h);const _8=vec3h(0.85986328125h,1.7099609375h,0.429931640625h);const _9=array<u32,256u>(0u,0u,134283264u,134283264u,2049u,2049u,2049u,134285313u,134285313u,134285313u,268568577u,268568577u,134287362u,134287362u,134287362u,268570626u,268570626u,268570626u,402853890u,402853890u,402853890u,268572675u,537137154u,402855939u,402855939u,402855939u,537139203u,537139203u,537139203u,402857988u,402857988u,402857988u,537141252u,537141252u,537141252u,402860037u,671424516u,537143301u,537143301u,537143301u,671426565u,671426565u,671426565u,805709829u,805709829u,671428614u,671428614u,671428614u,805711878u,805711878u,805711878u,939995142u,939995142u,939995142u,805713927u,1074278406u,939997191u,939997191u,939997191u,1074280455u,1074280455u,1074280455u,939999240u,939999240u,939999240u,1074282504u,1074282504u,1074282504u,940001289u,1208565768u,1074284553u,1074284553u,1074284553u,1208567817u,1208567817u,1208567817u,1342851081u,1342851081u,1208569866u,1208569866u,1208569866u,1342853130u,1342853130u,1342853130u,1477136394u,1477136394u,1477136394u,1342855179u,1611419658u,1477138443u,1477138443u,1477138443u,1611421707u,1611421707u,1611421707u,1477140492u,1477140492u,1477140492u,1611423756u,1611423756u,1611423756u,1477142541u,1745707020u,1611425805u,1611425805u,1611425805u,1745709069u,1745709069u,1745709069u,1879992333u,1879992333u,1745711118u,1745711118u,1745711118u,1879994382u,1879994382u,1879994382u,2014277646u,2014277646u,2014277646u,1879996431u,2148560910u,2014279695u,2014279695u,2014279695u,2148562959u,2148562959u,2148562959u,2014281744u,2014281744u,2014281744u,2148565008u,2148565008u,2148565008u,2014283793u,2282848272u,2148567057u,2148567057u,2148567057u,2282850321u,2282850321u,2282850321u,2417133585u,2417133585u,2282852370u,2282852370u,2282852370u,2417135634u,2417135634u,2417135634u,2551418898u,2551418898u,2551418898u,2417137683u,2685702162u,2551420947u,2551420947u,2551420947u,2685704211u,2685704211u,2685704211u,2551422996u,2551422996u,2551422996u,2685706260u,2685706260u,2685706260u,2551425045u,2819989524u,2685708309u,2685708309u,2685708309u,2819991573u,2819991573u,2819991573u,2954274837u,2954274837u,2819993622u,2819993622u,2819993622u,2954276886u,2954276886u,2954276886u,3088560150u,3088560150u,3088560150u,2954278935u,3222843414u,3088562199u,3088562199u,3088562199u,3222845463u,3222845463u,3222845463u,3088564248u,3088564248u,3088564248u,3222847512u,3222847512u,3222847512u,3088566297u,3357130776u,3222849561u,3222849561u,3222849561u,3357132825u,3357132825u,3357132825u,3491416089u,3491416089u,3357134874u,3357134874u,3357134874u,3491418138u,3491418138u,3491418138u,3625701402u,3625701402u,3625701402u,3491420187u,3759984666u,3625703451u,3625703451u,3625703451u,3759986715u,3759986715u,3759986715u,3625705500u,3625705500u,3625705500u,3759988764u,3759988764u,3759988764u,3625707549u,3894272028u,3759990813u,3759990813u,3759990813u,3894274077u,3894274077u,3894274077u,4028557341u,4028557341u,3894276126u,3894276126u,3894276126u,4028559390u,4028559390u,4028559390u,4162842654u,4162842654u,4162842654u,4028561439u,4028561439u,4162844703u,4162844703u);fn _a(){var _b:array<u32,256u>;var _c:array<u32,256u>;var _d:array<u32,256u>;var _e:bool;var _f:bool;var _g:vec2u;var _h:vec2u;var _i:vec2u;switch(0u){default:{let _j=bitcast<vec2u>(vec2i(textureDimensions(_3,0i)));let _k=((_j.x+3u)/4u);let _l=x_2118;let _m=x_2118.xy;let _n=x_2118.x;let _o=(_n>=_k);_f=_o;if(!(_o)){_e=(_l.y>=((_j.y+3u)/4u));_f=_e;}if(_f){break;}var _p:vec3h;var _q:vec3h;var _r:vec3h;var _s:vec3h;var _t:vec3h;var _u:vec3h;var _v:vec3h;var _w:vec3h;var _x:vec3h;var _y:vec3h;var _z:vec3h;var _10:vec3h;var _11:vec3h;var _12:vec3h;var _13:vec3h;var _14:vec3h;var _15:f16;var _16:f16;var _17:f16;var _18:f16;var _19:vec3h;var _1a:vec3h;var _1b:vec3h;var _1c:vec3h;var _1d:bool;var _1e:u32;var _1f:u32;var _1g:u32;var _1h:u32;let _1i=(vec2f(1.0f)/vec2f(vec2i(textureDimensions(_3,0i))));let _1j=((vec2f(bitcast<vec2i>((_m*vec2u(4u))))*_1i)+_1i);let _1k=vec4h(textureGather(0i,_3,_2,_1j,vec2i()));let _1l=vec4h(textureGather(0i,_3,_2,_1j,_4));let _1m=vec4h(textureGather(0i,_3,_2,_1j,_5));let _1n=vec4h(textureGather(0i,_3,_2,_1j,_6));let _1o=vec4h(textureGather(1i,_3,_2,_1j,vec2i()));let _1p=vec4h(textureGather(1i,_3,_2,_1j,_4));let _1q=vec4h(textureGather(1i,_3,_2,_1j,_5));let _1r=vec4h(textureGather(1i,_3,_2,_1j,_6));let _1s=vec4h(textureGather(2i,_3,_2,_1j,vec2i()));let _1t=vec4h(textureGather(2i,_3,_2,_1j,_4));let _1u=vec4h(textureGather(2i,_3,_2,_1j,_5));let _1v=vec4h(textureGather(2i,_3,_2,_1j,_6));_p=vec3h(_1k.w,_1o.w,_1s.w);_q=vec3h(_1k.z,_1o.z,_1s.z);_r=vec3h(_1l.w,_1p.w,_1t.w);_s=vec3h(_1l.z,_1p.z,_1t.z);_t=vec3h(_1k.x,_1o.x,_1s.x);_u=vec3h(_1k.y,_1o.y,_1s.y);_v=vec3h(_1l.x,_1p.x,_1t.x);_w=vec3h(_1l.y,_1p.y,_1t.y);_x=vec3h(_1m.w,_1q.w,_1u.w);_y=vec3h(_1m.z,_1q.z,_1u.z);_z=vec3h(_1n.w,_1r.w,_1v.w);_10=vec3h(_1n.z,_1r.z,_1v.z);_11=vec3h(_1m.x,_1q.x,_1u.x);_12=vec3h(_1m.y,_1q.y,_1u.y);_13=vec3h(_1n.x,_1r.x,_1v.x);_14=vec3h(_1n.y,_1r.y,_1v.y);switch(0u){default:{let _1w=(((((((((((((((_p+_q)+_r)+_s)+_t)+_u)+_v)+_w)+_x)+_y)+_z)+_10)+_11)+_12)+_13)+_14);let _1x=((_p*16.0h)-_1w);let _1y=_1x.x;let _1z=_1x.y;let _20=_1x.z;let _21=((_q*16.0h)-_1w);let _22=_21.x;let _23=_21.y;let _24=_21.z;let _25=((_r*16.0h)-_1w);let _26=_25.x;let _27=_25.y;let _28=_25.z;let _29=((_s*16.0h)-_1w);let _2a=_29.x;let _2b=_29.y;let _2c=_29.z;let _2d=((_t*16.0h)-_1w);let _2e=_2d.x;let _2f=_2d.y;let _2g=_2d.z;let _2h=((_u*16.0h)-_1w);let _2i=_2h.x;let _2j=_2h.y;let _2k=_2h.z;let _2l=((_v*16.0h)-_1w);let _2m=_2l.x;let _2n=_2l.y;let _2o=_2l.z;let _2p=((_w*16.0h)-_1w);let _2q=_2p.x;let _2r=_2p.y;let _2s=_2p.z;let _2t=((_x*16.0h)-_1w);let _2u=_2t.x;let _2v=_2t.y;let _2w=_2t.z;let _2x=((_y*16.0h)-_1w);let _2y=_2x.x;let _2z=_2x.y;let _30=_2x.z;let _31=((_z*16.0h)-_1w);let _32=_31.x;let _33=_31.y;let _34=_31.z;let _35=((_10*16.0h)-_1w);let _36=_35.x;let _37=_35.y;let _38=_35.z;let _39=((_11*16.0h)-_1w);let _3a=_39.x;let _3b=_39.y;let _3c=_39.z;let _3d=((_12*16.0h)-_1w);let _3e=_3d.x;let _3f=_3d.y;let _3g=_3d.z;let _3h=((_13*16.0h)-_1w);let _3i=_3h.x;let _3j=_3h.y;let _3k=_3h.z;let _3l=((_14*16.0h)-_1w);let _3m=_3l.x;let _3n=((((((((((((((((_1y*_1y)+(_22*_22))+(_26*_26))+(_2a*_2a))+(_2e*_2e))+(_2i*_2i))+(_2m*_2m))+(_2q*_2q))+(_2u*_2u))+(_2y*_2y))+(_32*_32))+(_36*_36))+(_3a*_3a))+(_3e*_3e))+(_3i*_3i))+(_3m*_3m));let _3o=_3l.y;let _3p=_3l.z;let _3q=((((((((((((((((_1z*_1z)+(_23*_23))+(_27*_27))+(_2b*_2b))+(_2f*_2f))+(_2j*_2j))+(_2n*_2n))+(_2r*_2r))+(_2v*_2v))+(_2z*_2z))+(_33*_33))+(_37*_37))+(_3b*_3b))+(_3f*_3f))+(_3j*_3j))+(_3o*_3o));let _3r=((((((((((((((((_20*_20)+(_24*_24))+(_28*_28))+(_2c*_2c))+(_2g*_2g))+(_2k*_2k))+(_2o*_2o))+(_2s*_2s))+(_2w*_2w))+(_30*_30))+(_34*_34))+(_38*_38))+(_3c*_3c))+(_3g*_3g))+(_3k*_3k))+(_3p*_3p));let _3s=select(1.0h,0.015625h,(max(max(_3n,_3q),_3r)>64.0h));let _3t=(_3n*_3s);let _3u=(((((((((((((((((_1y*_1z)+(_22*_23))+(_26*_27))+(_2a*_2b))+(_2e*_2f))+(_2i*_2j))+(_2m*_2n))+(_2q*_2r))+(_2u*_2v))+(_2y*_2z))+(_32*_33))+(_36*_37))+(_3a*_3b))+(_3e*_3f))+(_3i*_3j))+(_3m*_3o))*_3s);let _3v=(((((((((((((((((_1y*_20)+(_22*_24))+(_26*_28))+(_2a*_2c))+(_2e*_2g))+(_2i*_2k))+(_2m*_2o))+(_2q*_2s))+(_2u*_2w))+(_2y*_30))+(_32*_34))+(_36*_38))+(_3a*_3c))+(_3e*_3g))+(_3i*_3k))+(_3m*_3p))*_3s);let _3w=(_3q*_3s);let _3x=(((((((((((((((((_1z*_20)+(_23*_24))+(_27*_28))+(_2b*_2c))+(_2f*_2g))+(_2j*_2k))+(_2n*_2o))+(_2r*_2s))+(_2v*_2w))+(_2z*_30))+(_33*_34))+(_37*_38))+(_3b*_3c))+(_3f*_3g))+(_3j*_3k))+(_3o*_3p))*_3s);let _3y=(_3r*_3s);let _3z=(vec3h(_3t,_3w,_3y)+vec3h(0.0001220703125h));let _40=vec3h((vec3f(_3z)*(1.0f/f32(max(max(_3z.x,_3z.y),_3z.z)))));let _41=_40.x;_16=_41;if((_3u<0.0h)){_15=-(_41);_16=_15;}let _42=_40.z;_18=_42;if((_3x<0.0h)){_17=-(_42);_18=_17;}let _43=_40.y;let _44=(((_16*_3t)+(_43*_3u))+(_18*_3v));let _45=(((_16*_3u)+(_43*_3w))+(_18*_3x));let _46=(((_16*_3v)+(_43*_3x))+(_18*_3y));let _47=max(max(abs(_44),abs(_45)),abs(_46));let _48=vec3h((vec3f(f32(_44),f32(_45),f32(_46))*(1.0f/f32(select(_47,1.0h,(_47==0.0h))))));let _49=_48.x;let _4a=_48.y;let _4b=_48.z;let _4c=(((_49*_3t)+(_4a*_3u))+(_4b*_3v));let _4d=(((_49*_3u)+(_4a*_3w))+(_4b*_3x));let _4e=(((_49*_3v)+(_4a*_3x))+(_4b*_3y));let _4f=max(max(abs(_4c),abs(_4d)),abs(_4e));let _4g=(_4f==0.0h);let _4h=select(vec3h((vec3f(f32(_4c),f32(_4d),f32(_4e))*(1.0f/f32(select(_4f,1.0h,_4g))))),_7,vec3<bool>(_4g));let _4i=(_1w*0.0625h);let _4j=(_4h*_8);let _4k=(1.0h/dot(_4j,_4j));let _4l=((_4j*_4k)*_8);let _4m=dot(_p,_4l);let _4n=dot(_q,_4l);let _4o=(_4n<_4m);let _4p=select(1u,0u,_4o);let _4q=select(_4m,_4n,_4o);let _4r=(_4n>_4m);let _4s=select(1u,0u,_4r);let _4t=select(_4m,_4n,_4r);let _4u=dot(_r,_4l);let _4v=(_4u<_4q);let _4w=select(select(_4p,(_4p+1u),(_4n==_4q)),0u,_4v);let _4x=select(_4q,_4u,_4v);let _4y=(_4u>_4t);let _4z=select(select(_4s,(_4s+1u),(_4n==_4t)),0u,_4y);let _50=select(_4t,_4u,_4y);let _51=dot(_s,_4l);let _52=(_51<_4x);let _53=select(select(_4w,(_4w+1u),(_4u==_4x)),0u,_52);let _54=select(_4x,_51,_52);let _55=(_51>_50);let _56=select(select(_4z,(_4z+1u),(_4u==_50)),0u,_55);let _57=select(_50,_51,_55);let _58=dot(_t,_4l);let _59=(_58<_54);let _5a=select(select(_53,(_53+1u),(_51==_54)),0u,_59);let _5b=select(_54,_58,_59);let _5c=(_58>_57);let _5d=select(select(_56,(_56+1u),(_51==_57)),0u,_5c);let _5e=select(_57,_58,_5c);let _5f=dot(_u,_4l);let _5g=(_5f<_5b);let _5h=select(select(_5a,(_5a+1u),(_58==_5b)),0u,_5g);let _5i=select(_5b,_5f,_5g);let _5j=(_5f>_5e);let _5k=select(select(_5d,(_5d+1u),(_58==_5e)),0u,_5j);let _5l=select(_5e,_5f,_5j);let _5m=dot(_v,_4l);let _5n=(_5m<_5i);let _5o=select(select(_5h,(_5h+1u),(_5f==_5i)),0u,_5n);let _5p=select(_5i,_5m,_5n);let _5q=(_5m>_5l);let _5r=select(select(_5k,(_5k+1u),(_5f==_5l)),0u,_5q);let _5s=select(_5l,_5m,_5q);let _5t=dot(_w,_4l);let _5u=(_5t<_5p);let _5v=select(select(_5o,(_5o+1u),(_5m==_5p)),0u,_5u);let _5w=select(_5p,_5t,_5u);let _5x=(_5t>_5s);let _5y=select(select(_5r,(_5r+1u),(_5m==_5s)),0u,_5x);let _5z=select(_5s,_5t,_5x);let _60=dot(_x,_4l);let _61=(_60<_5w);let _62=select(select(_5v,(_5v+1u),(_5t==_5w)),0u,_61);let _63=select(_5w,_60,_61);let _64=(_60>_5z);let _65=select(select(_5y,(_5y+1u),(_5t==_5z)),0u,_64);let _66=select(_5z,_60,_64);let _67=dot(_y,_4l);let _68=(_67<_63);let _69=select(select(_62,(_62+1u),(_60==_63)),0u,_68);let _6a=select(_63,_67,_68);let _6b=(_67>_66);let _6c=select(select(_65,(_65+1u),(_60==_66)),0u,_6b);let _6d=select(_66,_67,_6b);let _6e=dot(_z,_4l);let _6f=(_6e<_6a);let _6g=select(select(_69,(_69+1u),(_67==_6a)),0u,_6f);let _6h=select(_6a,_6e,_6f);let _6i=(_6e>_6d);let _6j=select(select(_6c,(_6c+1u),(_67==_6d)),0u,_6i);let _6k=select(_6d,_6e,_6i);let _6l=dot(_10,_4l);let _6m=(_6l<_6h);let _6n=select(select(_6g,(_6g+1u),(_6e==_6h)),0u,_6m);let _6o=select(_6h,_6l,_6m);let _6p=(_6l>_6k);let _6q=select(select(_6j,(_6j+1u),(_6e==_6k)),0u,_6p);let _6r=select(_6k,_6l,_6p);let _6s=dot(_11,_4l);let _6t=(_6s<_6o);let _6u=select(select(_6n,(_6n+1u),(_6l==_6o)),0u,_6t);let _6v=select(_6o,_6s,_6t);let _6w=(_6s>_6r);let _6x=select(select(_6q,(_6q+1u),(_6l==_6r)),0u,_6w);let _6y=select(_6r,_6s,_6w);let _6z=dot(_12,_4l);let _70=(_6z<_6v);let _71=select(select(_6u,(_6u+1u),(_6s==_6v)),0u,_70);let _72=select(_6v,_6z,_70);let _73=(_6z>_6y);let _74=select(select(_6x,(_6x+1u),(_6s==_6y)),0u,_73);let _75=select(_6y,_6z,_73);let _76=dot(_13,_4l);let _77=(_76<_72);let _78=select(select(_71,(_71+1u),(_6z==_72)),0u,_77);let _79=select(_72,_76,_77);let _7a=(_76>_75);let _7b=select(select(_74,(_74+1u),(_6z==_75)),0u,_7a);let _7c=select(_75,_76,_7a);let _7d=dot(_14,_4l);let _7e=(_7d<_79);let _7f=select(select(_78,(_78+1u),(_76==_79)),0u,_7e);let _7g=select(_79,_7d,_7e);let _7h=(_7d>_7c);let _7i=select(select(_7b,(_7b+1u),(_76==_7c)),0u,_7h);let _7j=select(_7c,_7d,_7h);let _7k=dot(_4i,_4l);let _7l=(_7g-_7k);let _7m=(_7j-_7k);let _7n=(((_7m-_7l)*0.0625h)*(1.0h-clamp((f16(((select(_7f,(_7f+1u),(_7d==_7g))+select(_7i,(_7i+1u),(_7d==_7j)))-2u))*0.0714111328125h),0.0h,1.0h)));let _7o=(_7l+_7n);let _7p=(_7m-_7n);let _7q=max(0.0h,(((((0.6357421875h*0.03125h)*_4k)+(0.36376953125h*0.03125h))-(_7p-_7o))*0.5h));let _7r=clamp(((_4h*(_7o-_7q))+_4i),vec3h(),_7);let _7s=clamp(((_4h*(_7p+_7q))+_4i),vec3h(),_7);let _7t=_7r.x;let _7u=(trunc((_7t*31.0h))*8.25h);let _7v=trunc(_7u);let _7w=min(255.0h,trunc((_7u+8.25h)));let _7x=_7r.y;let _7y=(trunc((_7x*63.0h))*4.0625h);let _7z=min(255.0h,trunc(_7y));let _80=min(255.0h,trunc((_7y+4.0625h)));let _81=_7r.z;let _82=(trunc((_81*31.0h))*8.25h);let _83=trunc(_82);let _84=min(255.0h,trunc((_82+8.25h)));let _85=vec3h(select(_7v,_7w,((255.0h*_7t)>(0.5h*(_7v+_7w)))),select(_7z,_80,((255.0h*_7x)>(0.5h*(_7z+_80)))),select(_83,_84,((255.0h*_81)>(0.5h*(_83+_84)))));let _86=_7s.x;let _87=(trunc((_86*31.0h))*8.25h);let _88=trunc(_87);let _89=min(255.0h,trunc((_87+8.25h)));let _8a=_7s.y;let _8b=(trunc((_8a*63.0h))*4.0625h);let _8c=min(255.0h,trunc(_8b));let _8d=min(255.0h,trunc((_8b+4.0625h)));let _8e=_7s.z;let _8f=(trunc((_8e*31.0h))*8.25h);let _8g=trunc(_8f);let _8h=min(255.0h,trunc((_8f+8.25h)));let _8i=vec3h(select(_88,_89,((255.0h*_86)>(0.5h*(_88+_89)))),select(_8c,_8d,((255.0h*_8a)>(0.5h*(_8c+_8d)))),select(_8g,_8h,((255.0h*_8e)>(0.5h*(_8g+_8h)))));let _8j=(((_8i-_85)*_8)*0.0039215087890625h);let _8k=((_8j*(1.0h/dot(_8j,_8j)))*_8);let _8l=(dot(_85,_8k)*0.0039215087890625h);let _8m=((((((((((((((((0u|(u32(((3.0h*clamp((dot(_p,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(0i)))|(u32(((3.0h*clamp((dot(_q,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(2i)))|(u32(((3.0h*clamp((dot(_r,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(4i)))|(u32(((3.0h*clamp((dot(_s,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(6i)))|(u32(((3.0h*clamp((dot(_t,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(8i)))|(u32(((3.0h*clamp((dot(_u,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(10i)))|(u32(((3.0h*clamp((dot(_v,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(12i)))|(u32(((3.0h*clamp((dot(_w,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(14i)))|(u32(((3.0h*clamp((dot(_x,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(16i)))|(u32(((3.0h*clamp((dot(_y,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(18i)))|(u32(((3.0h*clamp((dot(_z,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(20i)))|(u32(((3.0h*clamp((dot(_10,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(22i)))|(u32(((3.0h*clamp((dot(_11,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(24i)))|(u32(((3.0h*clamp((dot(_12,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(26i)))|(u32(((3.0h*clamp((dot(_13,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(28i)))|(u32(((3.0h*clamp((dot(_14,_8k)-_8l),0.0h,1.0h))+0.5h))<<bitcast<u32>(30i)));switch(0u){default:{if(((_8m^(_8m<<bitcast<u32>(2i)))<4u)){_1b=_8i;_1c=_85;_1d=false;break;}let _8n=(_8m>>bitcast<u32>(1i));let _8o=f16(bitcast<i32>(countOneBits(((1431655765u&~(_8n))&_8m))));let _8p=(1431655765u&_8n);let _8q=f16(bitcast<i32>(countOneBits((_8p&~(_8m)))));let _8r=f16(bitcast<i32>(countOneBits((_8p&_8m))));let _8s=(((3.0h*_8r)+(2.0h*_8q))+_8o);let _8t=(((9.0h*_8r)+(4.0h*_8q))+_8o);let _8u=((144.0h-(6.0h*_8s))+_8t);let _8v=((3.0h*_8s)-_8t);let _8w=(((((((((((((((((_p*f16(((_8m>>bitcast<u32>(0i))&3u)))+(_q*f16(((_8m>>bitcast<u32>(2i))&3u))))+(_r*f16(((_8m>>bitcast<u32>(4i))&3u))))+(_s*f16(((_8m>>bitcast<u32>(6i))&3u))))+(_t*f16(((_8m>>bitcast<u32>(8i))&3u))))+(_u*f16(((_8m>>bitcast<u32>(10i))&3u))))+(_v*f16(((_8m>>bitcast<u32>(12i))&3u))))+(_w*f16(((_8m>>bitcast<u32>(14i))&3u))))+(_x*f16(((_8m>>bitcast<u32>(16i))&3u))))+(_y*f16(((_8m>>bitcast<u32>(18i))&3u))))+(_z*f16(((_8m>>bitcast<u32>(20i))&3u))))+(_10*f16(((_8m>>bitcast<u32>(22i))&3u))))+(_11*f16(((_8m>>bitcast<u32>(24i))&3u))))+(_12*f16(((_8m>>bitcast<u32>(26i))&3u))))+(_13*f16(((_8m>>bitcast<u32>(28i))&3u))))+(_14*f16(((_8m>>bitcast<u32>(30i))&3u))))*3.0h);let _8x=((_1w*9.0h)-_8w);let _8y=(1.0f/f32(((_8u*_8t)-(_8v*_8v))));let _8z=f16((f32(_8v)*_8y));let _90=clamp(((_8x*f16((f32(_8t)*_8y)))-(_8w*_8z)),vec3h(),_7);let _91=clamp(((_8w*f16((f32(_8u)*_8y)))-(_8x*_8z)),vec3h(),_7);let _92=_90.x;let _93=(trunc((_92*31.0h))*8.25h);let _94=trunc(_93);let _95=min(255.0h,trunc((_93+8.25h)));let _96=_90.y;let _97=(trunc((_96*63.0h))*4.0625h);let _98=min(255.0h,trunc(_97));let _99=min(255.0h,trunc((_97+4.0625h)));let _9a=_90.z;let _9b=(trunc((_9a*31.0h))*8.25h);let _9c=trunc(_9b);let _9d=min(255.0h,trunc((_9b+8.25h)));_19=vec3h(select(_94,_95,((255.0h*_92)>(0.5h*(_94+_95)))),select(_98,_99,((255.0h*_96)>(0.5h*(_98+_99)))),select(_9c,_9d,((255.0h*_9a)>(0.5h*(_9c+_9d)))));let _9e=_91.x;let _9f=(trunc((_9e*31.0h))*8.25h);let _9g=trunc(_9f);let _9h=min(255.0h,trunc((_9f+8.25h)));let _9i=_91.y;let _9j=(trunc((_9i*63.0h))*4.0625h);let _9k=min(255.0h,trunc(_9j));let _9l=min(255.0h,trunc((_9j+4.0625h)));let _9m=_91.z;let _9n=(trunc((_9m*31.0h))*8.25h);let _9o=trunc(_9n);let _9p=min(255.0h,trunc((_9n+8.25h)));_1a=vec3h(select(_9g,_9h,((255.0h*_9e)>(0.5h*(_9g+_9h)))),select(_9k,_9l,((255.0h*_9i)>(0.5h*(_9k+_9l)))),select(_9o,_9p,((255.0h*_9m)>(0.5h*(_9o+_9p)))));_1b=_1a;_1c=_19;_1d=true;}}_1f=_8m;if(_1d){let _9q=(((_1b-_1c)*_8)*0.0039215087890625h);let _9r=((_9q*(1.0h/dot(_9q,_9q)))*_8);let _9s=(dot(_1c,_9r)*0.0039215087890625h);_1e=((((((((((((((((0u|(u32(((3.0h*clamp((dot(_p,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(0i)))|(u32(((3.0h*clamp((dot(_q,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(2i)))|(u32(((3.0h*clamp((dot(_r,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(4i)))|(u32(((3.0h*clamp((dot(_s,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(6i)))|(u32(((3.0h*clamp((dot(_t,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(8i)))|(u32(((3.0h*clamp((dot(_u,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(10i)))|(u32(((3.0h*clamp((dot(_v,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(12i)))|(u32(((3.0h*clamp((dot(_w,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(14i)))|(u32(((3.0h*clamp((dot(_x,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(16i)))|(u32(((3.0h*clamp((dot(_y,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(18i)))|(u32(((3.0h*clamp((dot(_z,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(20i)))|(u32(((3.0h*clamp((dot(_10,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(22i)))|(u32(((3.0h*clamp((dot(_11,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(24i)))|(u32(((3.0h*clamp((dot(_12,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(26i)))|(u32(((3.0h*clamp((dot(_13,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(28i)))|(u32(((3.0h*clamp((dot(_14,_9r)-_9s),0.0h,1.0h))+0.5h))<<bitcast<u32>(30i)));_1f=_1e;}if(((_1f^(_1f<<bitcast<u32>(2i)))<4u)){let _9t=(_1w*15.9375h);_b=_9;let _9u=_b[i32(_9t.x)];_c=_9;let _9v=_c[i32(_9t.z)];_d=array<u32,256u>(0u,0u,32u,2097184u,2097184u,2097184u,2097216u,4194368u,4194368u,4194368u,4194400u,6291552u,6291552u,6291552u,6291584u,8388736u,8388736u,8388736u,8388768u,10485920u,10485920u,10485920u,10485952u,12583104u,12583104u,12583104u,12583136u,14680288u,14680288u,14680288u,14680320u,16777472u,16777472u,16777472u,16777504u,18874656u,18874656u,18874656u,18874688u,20971840u,20971840u,20971840u,20971872u,23069024u,23069024u,23069024u,23069056u,25166208u,25166208u,25166208u,25166240u,27263392u,27263392u,27263392u,27263424u,29360576u,29360576u,29360576u,29360608u,31457760u,31457760u,31457760u,31457792u,31457792u,33554944u,33554944u,33554944u,33554976u,35652128u,35652128u,35652128u,35652160u,37749312u,37749312u,37749312u,37749344u,39846496u,39846496u,39846496u,39846528u,41943680u,41943680u,41943680u,41943712u,44040864u,44040864u,44040864u,44040896u,46138048u,46138048u,46138048u,46138080u,48235232u,48235232u,48235232u,48235264u,50332416u,50332416u,50332416u,50332448u,52429600u,52429600u,52429600u,52429632u,54526784u,54526784u,54526784u,54526816u,56623968u,56623968u,56623968u,56624000u,58721152u,58721152u,58721152u,58721184u,60818336u,60818336u,60818336u,60818368u,62915520u,62915520u,62915520u,62915552u,65012704u,65012704u,65012704u,65012736u,65012736u,67109888u,67109888u,67109888u,67109920u,69207072u,69207072u,69207072u,69207104u,71304256u,71304256u,71304256u,71304288u,73401440u,73401440u,73401440u,73401472u,75498624u,75498624u,75498624u,75498656u,77595808u,77595808u,77595808u,77595840u,79692992u,79692992u,79692992u,79693024u,81790176u,81790176u,81790176u,81790208u,83887360u,83887360u,83887360u,83887392u,85984544u,85984544u,85984544u,85984576u,88081728u,88081728u,88081728u,88081760u,90178912u,90178912u,90178912u,90178944u,92276096u,92276096u,92276096u,92276128u,94373280u,94373280u,94373280u,94373312u,96470464u,96470464u,96470464u,96470496u,98567648u,98567648u,98567648u,98567680u,98567680u,100664832u,100664832u,100664832u,100664864u,102762016u,102762016u,102762016u,102762048u,104859200u,104859200u,104859200u,104859232u,106956384u,106956384u,106956384u,106956416u,109053568u,109053568u,109053568u,109053600u,111150752u,111150752u,111150752u,111150784u,113247936u,113247936u,113247936u,113247968u,115345120u,115345120u,115345120u,115345152u,117442304u,117442304u,117442304u,117442336u,119539488u,119539488u,119539488u,119539520u,121636672u,121636672u,121636672u,121636704u,123733856u,123733856u,123733856u,123733888u,125831040u,125831040u,125831040u,125831072u,127928224u,127928224u,127928224u,127928256u,130025408u,130025408u,130025408u,130025440u,132122592u,132122592u);_g=vec2u((((_9u&4160813056u)|(_9v&2031647u))|_d[i32(_9t.y)]),2863311530u);_i=_g;break;}let _9w=((((u32(_1c.x)>>bitcast<u32>(3i))<<bitcast<u32>(11i))|((u32(_1c.y)>>bitcast<u32>(2i))<<bitcast<u32>(5i)))|(u32(_1c.z)>>bitcast<u32>(3i)));let _9x=((((u32(_1b.x)>>bitcast<u32>(3i))<<bitcast<u32>(11i))|((u32(_1b.y)>>bitcast<u32>(2i))<<bitcast<u32>(5i)))|(u32(_1b.z)>>bitcast<u32>(3i)));let _9y=(_9w<_9x);_1h=_1f;if(_9y){_1g=~(_1f);_1h=_1g;}let _9z=((_1h&2863311530u)>>bitcast<u32>(1i));_h=vec2u((select(_9w,_9x,_9y)|(select(_9x,_9w,_9y)<<bitcast<u32>(16i))),((((_1h&1431655765u)^_9z)<<bitcast<u32>(1i))|_9z));_i=_h;}}x_2214._0[((_l.y*((_k+31u)&4294967264u))+_n)]=_i;}}return;}@compute @workgroup_size(16i, 16i, 1i) fn main(@builtin(global_invocation_id) _a0:vec3u,@builtin(local_invocation_id) _a1:vec3u,@builtin(workgroup_id) _a2:vec3u){x_2118=_a0;x_2124=_a1;_a();}";
export {
_ as default
};