UNPKG

@ludicon/spark.js

Version:

Real-Time GPU Texture Codecs for the Web

5 lines (4 loc) 19.1 kB
const spark_bc7_rgb = "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_3542:vec3u;var<private>x_3548:vec3u;@binding(2) @group(0) var<storage,read_write>x_3637:_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);fn _9(){var _a:bool;var _b:bool;var _c:f16;var _d:f16;var _e:f16;var _f:f16;var _g:i32;var _h:i32;var _i:f16;var _j:f16;var _k:vec3h;var _l:vec3h;var _m:vec3h;var _n:vec3h;var _o:vec3h;var _p:vec3h;var _q:f16;var _r:vec3h;var _s:u32;var _t:f16;var _u:vec3h;var _v:u32;var _w:u32;var _x:u32;var _y:u32;var _z:u32;var _10:vec4u;var _11:vec4u;var _12:vec4u;switch(0u){default:{let _13=bitcast<vec2u>(vec2i(textureDimensions(_3,0i)));let _14=((_13.x+3u)/4u);let _15=x_3542;let _16=x_3542.xy;let _17=x_3542.x;let _18=(_17>=_14);_b=_18;if(!(_18)){_a=(_15.y>=((_13.y+3u)/4u));_b=_a;}if(_b){break;}let _19=(vec2f(1.0f)/vec2f(vec2i(textureDimensions(_3,0i))));let _1a=((vec2f(bitcast<vec2i>((_16*vec2u(4u))))*_19)+_19);let _1b=vec4h(textureGather(0i,_3,_2,_1a,vec2i()));let _1c=vec4h(textureGather(0i,_3,_2,_1a,_4));let _1d=vec4h(textureGather(0i,_3,_2,_1a,_5));let _1e=vec4h(textureGather(0i,_3,_2,_1a,_6));let _1f=vec4h(textureGather(1i,_3,_2,_1a,vec2i()));let _1g=vec4h(textureGather(1i,_3,_2,_1a,_4));let _1h=vec4h(textureGather(1i,_3,_2,_1a,_5));let _1i=vec4h(textureGather(1i,_3,_2,_1a,_6));let _1j=vec4h(textureGather(2i,_3,_2,_1a,vec2i()));let _1k=vec4h(textureGather(2i,_3,_2,_1a,_4));let _1l=vec4h(textureGather(2i,_3,_2,_1a,_5));let _1m=vec4h(textureGather(2i,_3,_2,_1a,_6));let _1n=vec3h(_1b.w,_1f.w,_1j.w);let _1o=vec3h(_1b.z,_1f.z,_1j.z);let _1p=vec3h(_1c.w,_1g.w,_1k.w);let _1q=vec3h(_1c.z,_1g.z,_1k.z);let _1r=vec3h(_1b.x,_1f.x,_1j.x);let _1s=vec3h(_1b.y,_1f.y,_1j.y);let _1t=vec3h(_1c.x,_1g.x,_1k.x);let _1u=vec3h(_1c.y,_1g.y,_1k.y);let _1v=vec3h(_1d.w,_1h.w,_1l.w);let _1w=vec3h(_1d.z,_1h.z,_1l.z);let _1x=vec3h(_1e.w,_1i.w,_1m.w);let _1y=vec3h(_1e.z,_1i.z,_1m.z);let _1z=vec3h(_1d.x,_1h.x,_1l.x);let _20=vec3h(_1d.y,_1h.y,_1l.y);let _21=vec3h(_1e.x,_1i.x,_1m.x);let _22=vec3h(_1e.y,_1i.y,_1m.y);let _23=(((((((((((((((_1n+_1o)+_1p)+_1q)+_1r)+_1s)+_1t)+_1u)+_1v)+_1w)+_1x)+_1y)+_1z)+_20)+_21)+_22);let _24=min(min(min(min(min(min(min(min(min(min(min(min(min(min(min(_1n,_1o),_1p),_1q),_1r),_1s),_1t),_1u),_1v),_1w),_1x),_1y),_1z),_20),_21),_22);let _25=max(max(max(max(max(max(max(max(max(max(max(max(max(max(max(_1n,_1o),_1p),_1q),_1r),_1s),_1t),_1u),_1v),_1w),_1x),_1y),_1z),_20),_21),_22);let _26=((_1n*16.0h)-_23);let _27=_26.x;let _28=_26.y;let _29=_26.z;let _2a=((_1o*16.0h)-_23);let _2b=_2a.x;let _2c=_2a.y;let _2d=_2a.z;let _2e=((_1p*16.0h)-_23);let _2f=_2e.x;let _2g=_2e.y;let _2h=_2e.z;let _2i=((_1q*16.0h)-_23);let _2j=_2i.x;let _2k=_2i.y;let _2l=_2i.z;let _2m=((_1r*16.0h)-_23);let _2n=_2m.x;let _2o=_2m.y;let _2p=_2m.z;let _2q=((_1s*16.0h)-_23);let _2r=_2q.x;let _2s=_2q.y;let _2t=_2q.z;let _2u=((_1t*16.0h)-_23);let _2v=_2u.x;let _2w=_2u.y;let _2x=_2u.z;let _2y=((_1u*16.0h)-_23);let _2z=_2y.x;let _30=_2y.y;let _31=_2y.z;let _32=((_1v*16.0h)-_23);let _33=_32.x;let _34=_32.y;let _35=_32.z;let _36=((_1w*16.0h)-_23);let _37=_36.x;let _38=_36.y;let _39=_36.z;let _3a=((_1x*16.0h)-_23);let _3b=_3a.x;let _3c=_3a.y;let _3d=_3a.z;let _3e=((_1y*16.0h)-_23);let _3f=_3e.x;let _3g=_3e.y;let _3h=_3e.z;let _3i=((_1z*16.0h)-_23);let _3j=_3i.x;let _3k=_3i.y;let _3l=_3i.z;let _3m=((_20*16.0h)-_23);let _3n=_3m.x;let _3o=_3m.y;let _3p=_3m.z;let _3q=((_21*16.0h)-_23);let _3r=_3q.x;let _3s=_3q.y;let _3t=_3q.z;let _3u=((_22*16.0h)-_23);let _3v=_3u.x;let _3w=((((((((((((((((_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))+(_3n*_3n))+(_3r*_3r))+(_3v*_3v));let _3x=_3u.y;let _3y=_3u.z;let _3z=((((((((((((((((_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))+(_3o*_3o))+(_3s*_3s))+(_3x*_3x));let _40=((((((((((((((((_29*_29)+(_2d*_2d))+(_2h*_2h))+(_2l*_2l))+(_2p*_2p))+(_2t*_2t))+(_2x*_2x))+(_31*_31))+(_35*_35))+(_39*_39))+(_3d*_3d))+(_3h*_3h))+(_3l*_3l))+(_3p*_3p))+(_3t*_3t))+(_3y*_3y));let _41=select(1.0h,0.015625h,(max(max(_3w,_3z),_40)>64.0h));let _42=(_3w*_41);let _43=(((((((((((((((((_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))+(_3n*_3o))+(_3r*_3s))+(_3v*_3x))*_41);let _44=(((((((((((((((((_27*_29)+(_2b*_2d))+(_2f*_2h))+(_2j*_2l))+(_2n*_2p))+(_2r*_2t))+(_2v*_2x))+(_2z*_31))+(_33*_35))+(_37*_39))+(_3b*_3d))+(_3f*_3h))+(_3j*_3l))+(_3n*_3p))+(_3r*_3t))+(_3v*_3y))*_41);let _45=(_3z*_41);let _46=(((((((((((((((((_28*_29)+(_2c*_2d))+(_2g*_2h))+(_2k*_2l))+(_2o*_2p))+(_2s*_2t))+(_2w*_2x))+(_30*_31))+(_34*_35))+(_38*_39))+(_3c*_3d))+(_3g*_3h))+(_3k*_3l))+(_3o*_3p))+(_3s*_3t))+(_3x*_3y))*_41);let _47=(_40*_41);let _48=(vec3h(_42,_45,_47)+vec3h(0.0001220703125h));let _49=vec3h((vec3f(_48)*(1.0f/f32(max(max(_48.x,_48.y),_48.z)))));let _4a=_49.x;let _4b=(_43<0.0h);_d=_4a;if(_4b){_c=-(_4a);_d=_c;}let _4c=_49.z;let _4d=(_46<0.0h);_f=_4c;if(_4d){_e=-(_4c);_f=_e;}let _4e=_49.y;let _4f=(((_d*_42)+(_4e*_43))+(_f*_44));let _4g=(((_d*_43)+(_4e*_45))+(_f*_46));let _4h=(((_d*_44)+(_4e*_46))+(_f*_47));let _4i=f32(max(max(abs(_4f),abs(_4g)),abs(_4h)));let _4j=vec3h((vec3f(vec3h(_4f,_4g,_4h))*(1.0f/select(_4i,1.0f,(_4i==0.0f)))));let _4k=_4j.x;let _4l=_4j.y;let _4m=_4j.z;let _4n=(((_4k*_42)+(_4l*_43))+(_4m*_44));let _4o=(((_4k*_43)+(_4l*_45))+(_4m*_46));let _4p=(((_4k*_44)+(_4l*_46))+(_4m*_47));let _4q=max(max(abs(_4n),abs(_4o)),abs(_4p));let _4r=f32(_4q);let _4s=vec3h((vec3f(vec3h(_4n,_4o,_4p))*(1.0f/select(_4r,1.0f,(_4r==0.0f)))));let _4t=_4s.x;let _4u=_4s.y;let _4v=_4s.z;let _4w=dot(_4s,_4s);let _4x=((_42+_45)+_47);let _4y=select(_4s,_7,vec3<bool>((_4q==0.0h)));let _4z=abs(((_46+(select(1.0h,-1.0h,_4d)*0.0078125h))*inverseSqrt(((_45*_47)+0.00006103515625h))));let _50=abs(((_44+(select(1.0h,-1.0h,(_44<0.0h))*0.0078125h))*inverseSqrt(((_42*_47)+0.00006103515625h))));let _51=abs(((_43+(select(1.0h,-1.0h,_4b)*0.0078125h))*inverseSqrt(((_42*_45)+0.00006103515625h))));let _52=abs(f16((f32(dot(vec3h((((_4t*_42)+(_4u*_43))+(_4v*_44)),(((_4t*_43)+(_4u*_45))+(_4v*_46)),(((_4t*_44)+(_4u*_46))+(_4v*_47))),_4s))*(1.0f/f32(select(_4w,1.0h,(_4w==0.0h)))))));let _53=select(select(4i,6i,((_4x-_52)<(_41*0.5h))),6i,((_52/_4x)>0.974609375h));let _54=((_25-_24)*_8);let _55=_54.x;let _56=_54.y;let _57=(_55+_56);let _58=_54.z;let _59=((((_57+_58)*0.0625h)+0.01171875h)+(1.0h*(((_57*(1.0h-_51))+((_55+_58)*(1.0h-_50)))+((_56+_58)*(1.0h-_4z)))));if((_4z>max(_51,_50))){_h=1i;}else{_g=select(3i,2i,(_50>_51));_h=_g;}let _5a=(_h==1i);let _5b=(_h==2i);let _5c=(_h==3i);let _5d=vec3h(select(0.0h,1.0h,_5a),select(0.0h,1.0h,_5b),select(0.0h,1.0h,_5c));let _5e=(_7-_5d);let _5f=dot(_5d,_54);let _5g=(_54*_5e);let _5h=((_5g.x+_5g.y)+_5g.z);let _5i=(_5h+(_5f*0.5h));let _5j=((_5h*0.5h)+_5f);let _5k=select(0i,1i,(_5j<_5i));let _5l=select(_53,6i,(_59<((min(_5i,_5j)*0.25h)+0.03125h)));let _5m=(_5l==4i);let _5n=select(vec3h(),_5d,vec3<bool>(_5m));let _5o=(_7-_5n);let _5p=((_23*0.0625h)*_5o);let _5q=(_24*_5n);let _5r=(_25*_5n);let _5s=_5o.x;let _5t=_5o.y;let _5u=(_43*(_5s*_5t));let _5v=_5o.z;let _5w=(_44*(_5s*_5v));let _5x=(_46*(_5t*_5v));let _5y=(_4y*_5o);let _5z=_5y.x;let _60=_5y.y;let _61=_5y.z;let _62=(((_5z*(_42*_5s))+(_60*_5u))+(_61*_5w));let _63=(((_5z*_5u)+(_60*(_45*_5t)))+(_61*_5x));let _64=(((_5z*_5w)+(_60*_5x))+(_61*(_47*_5v)));let _65=max(max(abs(_62),abs(_63)),abs(_64));let _66=(_65==0.0h);let _67=select(vec3h((vec3f(vec3h(_62,_63,_64))*(1.0f/select(f32(_65),1.0f,_66)))),_5o,vec3<bool>(_66));let _68=(_67*_8);let _69=(1.0h/dot(_68,_68));let _6a=((_68*_69)*_8);let _6b=dot(_1n,_6a);let _6c=dot(_1o,_6a);let _6d=(_6c<_6b);let _6e=select(1u,0u,_6d);let _6f=select(_6b,_6c,_6d);let _6g=(_6c>_6b);let _6h=select(1u,0u,_6g);let _6i=select(_6b,_6c,_6g);let _6j=dot(_1p,_6a);let _6k=(_6j<_6f);let _6l=select(select(_6e,(_6e+1u),(_6c==_6f)),0u,_6k);let _6m=select(_6f,_6j,_6k);let _6n=(_6j>_6i);let _6o=select(select(_6h,(_6h+1u),(_6c==_6i)),0u,_6n);let _6p=select(_6i,_6j,_6n);let _6q=dot(_1q,_6a);let _6r=(_6q<_6m);let _6s=select(select(_6l,(_6l+1u),(_6j==_6m)),0u,_6r);let _6t=select(_6m,_6q,_6r);let _6u=(_6q>_6p);let _6v=select(select(_6o,(_6o+1u),(_6j==_6p)),0u,_6u);let _6w=select(_6p,_6q,_6u);let _6x=dot(_1r,_6a);let _6y=(_6x<_6t);let _6z=select(select(_6s,(_6s+1u),(_6q==_6t)),0u,_6y);let _70=select(_6t,_6x,_6y);let _71=(_6x>_6w);let _72=select(select(_6v,(_6v+1u),(_6q==_6w)),0u,_71);let _73=select(_6w,_6x,_71);let _74=dot(_1s,_6a);let _75=(_74<_70);let _76=select(select(_6z,(_6z+1u),(_6x==_70)),0u,_75);let _77=select(_70,_74,_75);let _78=(_74>_73);let _79=select(select(_72,(_72+1u),(_6x==_73)),0u,_78);let _7a=select(_73,_74,_78);let _7b=dot(_1t,_6a);let _7c=(_7b<_77);let _7d=select(select(_76,(_76+1u),(_74==_77)),0u,_7c);let _7e=select(_77,_7b,_7c);let _7f=(_7b>_7a);let _7g=select(select(_79,(_79+1u),(_74==_7a)),0u,_7f);let _7h=select(_7a,_7b,_7f);let _7i=dot(_1u,_6a);let _7j=(_7i<_7e);let _7k=select(select(_7d,(_7d+1u),(_7b==_7e)),0u,_7j);let _7l=select(_7e,_7i,_7j);let _7m=(_7i>_7h);let _7n=select(select(_7g,(_7g+1u),(_7b==_7h)),0u,_7m);let _7o=select(_7h,_7i,_7m);let _7p=dot(_1v,_6a);let _7q=(_7p<_7l);let _7r=select(select(_7k,(_7k+1u),(_7i==_7l)),0u,_7q);let _7s=select(_7l,_7p,_7q);let _7t=(_7p>_7o);let _7u=select(select(_7n,(_7n+1u),(_7i==_7o)),0u,_7t);let _7v=select(_7o,_7p,_7t);let _7w=dot(_1w,_6a);let _7x=(_7w<_7s);let _7y=select(select(_7r,(_7r+1u),(_7p==_7s)),0u,_7x);let _7z=select(_7s,_7w,_7x);let _80=(_7w>_7v);let _81=select(select(_7u,(_7u+1u),(_7p==_7v)),0u,_80);let _82=select(_7v,_7w,_80);let _83=dot(_1x,_6a);let _84=(_83<_7z);let _85=select(select(_7y,(_7y+1u),(_7w==_7z)),0u,_84);let _86=select(_7z,_83,_84);let _87=(_83>_82);let _88=select(select(_81,(_81+1u),(_7w==_82)),0u,_87);let _89=select(_82,_83,_87);let _8a=dot(_1y,_6a);let _8b=(_8a<_86);let _8c=select(select(_85,(_85+1u),(_83==_86)),0u,_8b);let _8d=select(_86,_8a,_8b);let _8e=(_8a>_89);let _8f=select(select(_88,(_88+1u),(_83==_89)),0u,_8e);let _8g=select(_89,_8a,_8e);let _8h=dot(_1z,_6a);let _8i=(_8h<_8d);let _8j=select(select(_8c,(_8c+1u),(_8a==_8d)),0u,_8i);let _8k=select(_8d,_8h,_8i);let _8l=(_8h>_8g);let _8m=select(select(_8f,(_8f+1u),(_8a==_8g)),0u,_8l);let _8n=select(_8g,_8h,_8l);let _8o=dot(_20,_6a);let _8p=(_8o<_8k);let _8q=select(select(_8j,(_8j+1u),(_8h==_8k)),0u,_8p);let _8r=select(_8k,_8o,_8p);let _8s=(_8o>_8n);let _8t=select(select(_8m,(_8m+1u),(_8h==_8n)),0u,_8s);let _8u=select(_8n,_8o,_8s);let _8v=dot(_21,_6a);let _8w=(_8v<_8r);let _8x=select(select(_8q,(_8q+1u),(_8o==_8r)),0u,_8w);let _8y=select(_8r,_8v,_8w);let _8z=(_8v>_8u);let _90=select(select(_8t,(_8t+1u),(_8o==_8u)),0u,_8z);let _91=select(_8u,_8v,_8z);let _92=dot(_22,_6a);let _93=(_92<_8y);let _94=select(select(_8x,(_8x+1u),(_8v==_8y)),0u,_93);let _95=select(_8y,_92,_93);let _96=(_92>_91);let _97=select(select(_90,(_90+1u),(_8v==_91)),0u,_96);let _98=select(_91,_92,_96);let _99=clamp((f16(((select(_94,(_94+1u),(_92==_95))+select(_97,(_97+1u),(_92==_98)))-2u))*0.0714111328125h),0.0h,1.0h);let _9a=dot(_5p,_6a);let _9b=(_95-_9a);let _9c=(_98-_9a);if(_5m){_i=select(0.0625h,0.03125h,(_5k!=0i));_j=_i;}else{_j=0.015625h;}let _9d=(1.0h-_99);let _9e=(((_9c-_9b)*_j)*_9d);let _9f=(_9b+_9e);let _9g=(_9c-_9e);let _9h=select(0.0078125h,0.03125h,_5m);let _9i=max(0.0h,(((((0.6357421875h*_9h)*_69)+(0.36376953125h*_9h))-(_9g-_9f))*0.5h));let _9j=(_5n*(dot((_5r-_5q),_5n)*(select(0.03125h,0.0625h,(_5k!=0i))*_9d)));let _9k=(clamp(((_67*(_9f-_9i))+_5p),vec3h(),_7)+(_5q+_9j));let _9l=(clamp(((_67*(_9g+_9i))+_5p),vec3h(),_7)+(_5r-_9j));if(_5m){let _9m=_9k.x;let _9n=select(31.0h,63.0h,_5a);let _9o=select(8.25h,4.0625h,_5a);let _9p=(trunc((_9m*_9n))*_9o);let _9q=min(255.0h,trunc(_9p));let _9r=min(255.0h,trunc((_9p+_9o)));let _9s=_9k.y;let _9t=select(31.0h,63.0h,_5b);let _9u=select(8.25h,4.0625h,_5b);let _9v=(trunc((_9s*_9t))*_9u);let _9w=min(255.0h,trunc(_9v));let _9x=min(255.0h,trunc((_9v+_9u)));let _9y=_9k.z;let _9z=select(31.0h,63.0h,_5c);let _a0=select(8.25h,4.0625h,_5c);let _a1=(trunc((_9y*_9z))*_a0);let _a2=min(255.0h,trunc(_a1));let _a3=min(255.0h,trunc((_a1+_a0)));_k=vec3h(select(_9q,_9r,((255.0h*_9m)>(0.5h*(_9q+_9r)))),select(_9w,_9x,((255.0h*_9s)>(0.5h*(_9w+_9x)))),select(_a2,_a3,((255.0h*_9y)>(0.5h*(_a2+_a3)))));let _a4=_9l.x;let _a5=(trunc((_a4*_9n))*_9o);let _a6=min(255.0h,trunc(_a5));let _a7=min(255.0h,trunc((_a5+_9o)));let _a8=_9l.y;let _a9=(trunc((_a8*_9t))*_9u);let _aa=min(255.0h,trunc(_a9));let _ab=min(255.0h,trunc((_a9+_9u)));let _ac=_9l.z;let _ad=(trunc((_ac*_9z))*_a0);let _ae=min(255.0h,trunc(_ad));let _af=min(255.0h,trunc((_ad+_a0)));_l=vec3h(select(_a6,_a7,((255.0h*_a4)>(0.5h*(_a6+_a7)))),select(_aa,_ab,((255.0h*_a8)>(0.5h*(_aa+_ab)))),select(_ae,_af,((255.0h*_ac)>(0.5h*(_ae+_af)))));_o=_l;_p=_k;}else{_m=vec3h(((2.0h*trunc((_9k.x*127.5h)))+1.0h),((2.0h*trunc((_9k.y*127.5h)))+1.0h),((2.0h*trunc((_9k.z*127.5h)))+1.0h));_n=vec3h(((2.0h*trunc((_9l.x*127.5h)))+1.0h),((2.0h*trunc((_9l.y*127.5h)))+1.0h),((2.0h*trunc((_9l.z*127.5h)))+1.0h));_o=_n;_p=_m;}let _ag=(_o-_p);let _ah=((_ag*_5o)*(_8*0.0039215087890625h));let _ai=((_ah*(1.0h/dot(_ah,_ah)))*_8);let _aj=(dot(_p,_ai)*0.0039215087890625h);_t=_aj;_u=_ai;_v=0u;if(_5m){let _ak=((_5n*dot(_ag,_5n))*0.0039215087890625h);let _al=(_ak*(1.0h/dot(_ak,_ak)));let _am=(dot(_p,_al)*0.0039215087890625h);let _an=(_5k==1i);let _ao=select(_aj,_am,_an);let _ap=vec3<bool>(_an);let _aq=select(_ai,_al,_ap);_q=select(_am,_aj,_an);_r=select(_al,_ai,_ap);_s=((((((((((((((((0u|(u32(((3.0h*clamp((dot(_1n,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(0i)))|(u32(((3.0h*clamp((dot(_1o,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(2i)))|(u32(((3.0h*clamp((dot(_1p,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(4i)))|(u32(((3.0h*clamp((dot(_1q,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(6i)))|(u32(((3.0h*clamp((dot(_1r,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(8i)))|(u32(((3.0h*clamp((dot(_1s,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(10i)))|(u32(((3.0h*clamp((dot(_1t,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(12i)))|(u32(((3.0h*clamp((dot(_1u,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(14i)))|(u32(((3.0h*clamp((dot(_1v,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(16i)))|(u32(((3.0h*clamp((dot(_1w,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(18i)))|(u32(((3.0h*clamp((dot(_1x,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(20i)))|(u32(((3.0h*clamp((dot(_1y,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(22i)))|(u32(((3.0h*clamp((dot(_1z,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(24i)))|(u32(((3.0h*clamp((dot(_20,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(26i)))|(u32(((3.0h*clamp((dot(_21,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(28i)))|(u32(((3.0h*clamp((dot(_22,_aq)-_ao),0.0h,1.0h))+0.5h))<<bitcast<u32>(30i)));_t=_q;_u=_r;_v=_s;}let _ar=select(15.0h,7.0h,_5m);let _as=select(4i,3i,_5m);let _at=(_as*2i);let _au=(_as*3i);let _av=(_as*4i);let _aw=(_as*5i);let _ax=(_as*6i);let _ay=(_as*7i);let _az=((((((((0u|(u32(((_ar*clamp((dot(_1n,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(0i)))|(u32(((_ar*clamp((dot(_1o,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(_as)))|(u32(((_ar*clamp((dot(_1p,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(_at)))|(u32(((_ar*clamp((dot(_1q,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(_au)))|(u32(((_ar*clamp((dot(_1r,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(_av)))|(u32(((_ar*clamp((dot(_1s,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(_aw)))|(u32(((_ar*clamp((dot(_1t,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(_ax)))|(u32(((_ar*clamp((dot(_1u,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(_ay)));let _b0=((((((((0u|(u32(((_ar*clamp((dot(_1v,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(0i)))|(u32(((_ar*clamp((dot(_1w,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(_as)))|(u32(((_ar*clamp((dot(_1x,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(_at)))|(u32(((_ar*clamp((dot(_1y,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(_au)))|(u32(((_ar*clamp((dot(_1z,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(_av)))|(u32(((_ar*clamp((dot(_20,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(_aw)))|(u32(((_ar*clamp((dot(_21,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(_ax)))|(u32(((_ar*clamp((dot(_22,_u)-_t),0.0h,1.0h))+0.5h))<<bitcast<u32>(_ay)));if(_5m){_w=(_az|(_b0<<bitcast<u32>(24i)));_x=(_b0>>bitcast<u32>(8i));_y=_x;_z=_w;}else{_y=_b0;_z=_b0;}var _b1:u32;var _b2:vec3u;var _b3:vec2u;var _b4:vec2u;var _b5:u32;var _b6:u32;var _b7:u32;var _b8:u32;var _b9:vec3u;var _ba:u32;var _bb:u32;var _bc:u32;var _bd:u32;var _be:vec3u;var _bf:u32;var _bg:u32;var _bh:u32;var _bi:u32;var _bj:vec3u;var _bk:u32;var _bl:u32;var _bm:u32;var _bn:u32;var _bo:vec3u;_b1=select(_az,_v,_5m);_b2=vec3u(_b1,_z,_y);let _bp=(0u|((1u<<bitcast<u32>(_5l))<<0u));if((_5l==6i)){let _bq=((_b1&8u)!=0u);_b4=_b2.xy;if(_bq){_b3=vec2u(~(_b1),~(_z));_b4=_b3;}let _br=vec3<bool>(_bq);let _bs=select(_o,_p,_br);let _bt=select(_p,_o,_br);let _bu=_b4.x;let _bv=(((_bu&7u)<<bitcast<u32>(1i))|(_bu&4294967280u));let _bw=(u32(_bs.y)>>bitcast<u32>(1i));_10=vec4u(((((_bp|((u32(_bt.x)>>bitcast<u32>(1i))<<7u))|((u32(_bs.x)>>bitcast<u32>(1i))<<14u))|((u32(_bt.y)>>bitcast<u32>(1i))<<21u))|(_bw<<28u)),((((0u|(_bw>>4u))|((u32(_bt.z)>>bitcast<u32>(1i))<<3u))|((u32(_bs.z)>>bitcast<u32>(1i))<<10u))|4294836224u),_bv,_b4.y);_10.z=(_bv|1u);_12=_10;}else{let _bx=(u32(dot(_p,_5d))>>bitcast<u32>(2i));let _by=(u32(dot(_o,_5d))>>bitcast<u32>(2i));let _bz=(_5d*255.0h);let _c0=((_p*_5e)+_bz);let _c1=((_o*_5e)+_bz);let _c2=(((u32(_c0.x)>>bitcast<u32>(3i))|((u32(_c0.y)&248u)<<bitcast<u32>(7i)))|((u32(_c0.z)&248u)<<bitcast<u32>(17i)));let _c3=(((u32(_c1.x)>>bitcast<u32>(3i))|((u32(_c1.y)&248u)<<bitcast<u32>(7i)))|((u32(_c1.z)&248u)<<bitcast<u32>(17i)));_ba=5u;_bb=0u;_bc=6u;_bd=0u;_be=_b2;if(((_b1&2u)!=0u)){let _c4=(_5k==0i);_b5=select(5u,0u,_c4);_b6=select(0u,5u,_c4);_b7=select(0u,6u,_c4);_b8=select(6u,0u,_c4);_b9=_b2;_b9.x=~(_b1);_ba=_b5;_bb=_b6;_bc=_b7;_bd=_b8;_be=_b9;}let _c5=_be.x;let _c6=(((_c5&1u)+(_c5&4294967293u))>>bitcast<u32>(1i));var _c7=_be;_c7.x=_c6;let _c8=_c7;let _c9=_be.y;_bk=_ba;_bl=_bb;_bm=_bc;_bn=_bd;_bo=_c8;if(((_c9&4u)!=0u)){let _ca=(_5k==1i);_bf=select(_ba,0u,_ca);_bg=select(_bb,5u,_ca);_bh=select(0u,_bc,_ca);_bi=select(6u,_bd,_ca);_bj=vec3u(_c6,~(_c9),(_be.z^65535u));_bk=_bf;_bl=_bg;_bm=_bh;_bn=_bi;_bo=_bj;}let _cb=_bo.y;let _cc=_bo.z;let _cd=((((_cb&3u)+(_cb&4294967291u))>>bitcast<u32>(1i))|(_cc<<bitcast<u32>(31i)));let _ce=((_c2<<_bl)|(_c3<<_bk));let _cf=_bo.x;let _cg=(0u|(_cd>>15u));_11=vec4u(((((_bp&4294967071u)|(bitcast<u32>(_h)<<5u))|(bitcast<u32>(_5k)<<7u))|(_ce<<8u)),(((0u|(_ce>>24u))|(((_bx<<_bn)|(_by<<_bm))<<6u))|(_cf<<18u)),((0u|(_cf>>14u))|(_cd<<17u)),_cg);_11.w=(_cg|((_cc>>bitcast<u32>(1i))<<17u));_12=_11;}x_3637._0[((_15.y*((_14+15u)&4294967280u))+_17)]=_12;}}return;}@compute @workgroup_size(16i, 16i, 1i) fn main(@builtin(global_invocation_id) _ch:vec3u,@builtin(local_invocation_id) _ci:vec3u,@builtin(workgroup_id) _cj:vec3u){x_3542=_ch;x_3548=_ci;_9();}"; export { spark_bc7_rgb as default };