typegpu 0.8.1 → 0.8.2
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.
- package/{chunk-7S3IK3D4.js → chunk-6U5HPHCJ.js} +2 -2
- package/{chunk-7XFSK632.js → chunk-CGQB3SER.js} +2 -2
- package/{chunk-4W5Z7BO4.js → chunk-CRZWTZM2.js} +2 -2
- package/chunk-CRZWTZM2.js.map +1 -0
- package/{chunk-2UXPGML5.js → chunk-ECR2EGZX.js} +2 -2
- package/{chunk-VOVQAOVG.js → chunk-PWBIFP67.js} +2 -2
- package/common/index.d.ts +1 -1
- package/common/index.js +1 -1
- package/data/index.d.ts +3 -3
- package/data/index.js +1 -1
- package/index.d.ts +2 -2
- package/index.js +14 -14
- package/index.js.map +1 -1
- package/{matrix-DLipCOZF.d.ts → matrix-DIfOiRyz.d.ts} +1 -1
- package/package.json +5 -13
- package/std/index.d.ts +2 -2
- package/std/index.js +1 -1
- package/{tgpuConstant-BU72w5qs.d.cts → tgpuConstant-BTQFNlQH.d.ts} +9 -0
- package/chunk-3246CM7C.cjs +0 -2
- package/chunk-3246CM7C.cjs.map +0 -1
- package/chunk-4W5Z7BO4.js.map +0 -1
- package/chunk-5Y6GTBWR.cjs +0 -3
- package/chunk-5Y6GTBWR.cjs.map +0 -1
- package/chunk-PRMFGUQT.cjs +0 -2
- package/chunk-PRMFGUQT.cjs.map +0 -1
- package/chunk-TRE7NUKE.cjs +0 -10
- package/chunk-TRE7NUKE.cjs.map +0 -1
- package/chunk-ZYGTVBDH.cjs +0 -7
- package/chunk-ZYGTVBDH.cjs.map +0 -1
- package/common/index.cjs +0 -7
- package/common/index.cjs.map +0 -1
- package/common/index.d.cts +0 -24
- package/data/index.cjs +0 -2
- package/data/index.cjs.map +0 -1
- package/data/index.d.cts +0 -402
- package/index.cjs +0 -192
- package/index.cjs.map +0 -1
- package/index.d.cts +0 -369
- package/matrix-DHFT4O8f.d.cts +0 -122
- package/std/index.cjs +0 -2
- package/std/index.cjs.map +0 -1
- package/std/index.d.cts +0 -639
- package/tgpuConstant-BU72w5qs.d.ts +0 -5192
- /package/{chunk-7S3IK3D4.js.map → chunk-6U5HPHCJ.js.map} +0 -0
- /package/{chunk-7XFSK632.js.map → chunk-CGQB3SER.js.map} +0 -0
- /package/{chunk-2UXPGML5.js.map → chunk-ECR2EGZX.js.map} +0 -0
- /package/{chunk-VOVQAOVG.js.map → chunk-PWBIFP67.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { bB as Mat2x2f, bC as Mat3x3f, bD as Mat4x4f, by as m2x2f, bz as m3x3f, bA as m4x4f, b9 as DualFn, bK as v3f } from './tgpuConstant-
|
|
1
|
+
import { bB as Mat2x2f, bC as Mat3x3f, bD as Mat4x4f, by as m2x2f, bz as m3x3f, bA as m4x4f, b9 as DualFn, bK as v3f } from './tgpuConstant-BTQFNlQH.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Returns a 2-by-2 identity matrix.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typegpu",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.8.
|
|
4
|
+
"version": "0.8.2",
|
|
5
5
|
"description": "A thin layer between JS and WebGPU/WGSL that improves development experience and allows for faster iteration.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -9,27 +9,19 @@
|
|
|
9
9
|
"./package.json": "./package.json",
|
|
10
10
|
".": {
|
|
11
11
|
"types": "./index.d.ts",
|
|
12
|
-
"
|
|
13
|
-
"import": "./index.js",
|
|
14
|
-
"default": "./index.cjs"
|
|
12
|
+
"default": "./index.js"
|
|
15
13
|
},
|
|
16
14
|
"./data": {
|
|
17
15
|
"types": "./data/index.d.ts",
|
|
18
|
-
"
|
|
19
|
-
"import": "./data/index.js",
|
|
20
|
-
"default": "./data/index.cjs"
|
|
16
|
+
"default": "./data/index.js"
|
|
21
17
|
},
|
|
22
18
|
"./std": {
|
|
23
19
|
"types": "./std/index.d.ts",
|
|
24
|
-
"
|
|
25
|
-
"import": "./std/index.js",
|
|
26
|
-
"default": "./std/index.cjs"
|
|
20
|
+
"default": "./std/index.js"
|
|
27
21
|
},
|
|
28
22
|
"./common": {
|
|
29
23
|
"types": "./common/index.d.ts",
|
|
30
|
-
"
|
|
31
|
-
"import": "./common/index.js",
|
|
32
|
-
"default": "./common/index.cjs"
|
|
24
|
+
"default": "./common/index.js"
|
|
33
25
|
}
|
|
34
26
|
},
|
|
35
27
|
"sideEffects": false,
|
package/std/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { b9 as DualFn, dL as AnyNumericVecInstance, dM as AnyFloatVecInstance, dN as AnyIntegerVecInstance, bK as v3f, dO as v3h, dP as AnyMatInstance, I as Infer, b8 as WgslStruct, b4 as F32, b5 as I32, b3 as F16, dQ as AbstractFloat, dR as AbstractInt, aP as Vec2f, aS as Vec2i, aV as Vec3f, aX as Vec3i, a_ as Vec4f, b0 as Vec4i, aR as Vec2h, aW as Vec3h, a$ as Vec4h, bG as v2f, dS as v2h, bH as v2i, bL as v3i, bO as v4f, dT as v4h, bP as v4i, dU as AnyFloat32VecInstance, dV as AnySignedVecInstance, dW as vBaseForMat, dX as mBaseForVec, bA as m4x4f, bs as AnyVecInstance, dY as AnyVec2Instance, bF as v2b, dZ as AnyVec3Instance, bJ as v3b, bN as v4b, d_ as AnyBooleanVecInstance, d$ as atomicI32, e0 as atomicU32, bT as texture1d, c4 as textureStorage1d, bU as texture2d, bV as texture2dArray, bX as textureCube, bY as textureCubeArray, c5 as textureStorage2d, c6 as textureStorage2dArray, c2 as textureExternal, bI as v2u, bW as texture3d, c7 as textureStorage3d, bM as v3u, bQ as v4u, $ as $internal, c3 as textureMultisampled2d, e1 as StorageTextureFormats, e2 as TextureFormats, e3 as $repr, ct as sampler, bZ as textureDepth2d, b_ as textureDepth2dArray, b$ as textureDepthCube, cs as comparisonSampler, d as WgslExtension } from '../tgpuConstant-
|
|
2
|
-
export { i as identity2, d as identity3, e as identity4, r as rotationX4, f as rotationY4, g as rotationZ4, s as scaling4, t as translation4 } from '../matrix-
|
|
1
|
+
import { b9 as DualFn, dL as AnyNumericVecInstance, dM as AnyFloatVecInstance, dN as AnyIntegerVecInstance, bK as v3f, dO as v3h, dP as AnyMatInstance, I as Infer, b8 as WgslStruct, b4 as F32, b5 as I32, b3 as F16, dQ as AbstractFloat, dR as AbstractInt, aP as Vec2f, aS as Vec2i, aV as Vec3f, aX as Vec3i, a_ as Vec4f, b0 as Vec4i, aR as Vec2h, aW as Vec3h, a$ as Vec4h, bG as v2f, dS as v2h, bH as v2i, bL as v3i, bO as v4f, dT as v4h, bP as v4i, dU as AnyFloat32VecInstance, dV as AnySignedVecInstance, dW as vBaseForMat, dX as mBaseForVec, bA as m4x4f, bs as AnyVecInstance, dY as AnyVec2Instance, bF as v2b, dZ as AnyVec3Instance, bJ as v3b, bN as v4b, d_ as AnyBooleanVecInstance, d$ as atomicI32, e0 as atomicU32, bT as texture1d, c4 as textureStorage1d, bU as texture2d, bV as texture2dArray, bX as textureCube, bY as textureCubeArray, c5 as textureStorage2d, c6 as textureStorage2dArray, c2 as textureExternal, bI as v2u, bW as texture3d, c7 as textureStorage3d, bM as v3u, bQ as v4u, $ as $internal, c3 as textureMultisampled2d, e1 as StorageTextureFormats, e2 as TextureFormats, e3 as $repr, ct as sampler, bZ as textureDepth2d, b_ as textureDepth2dArray, b$ as textureDepthCube, cs as comparisonSampler, d as WgslExtension } from '../tgpuConstant-BTQFNlQH.js';
|
|
2
|
+
export { i as identity2, d as identity3, e as identity4, r as rotationX4, f as rotationY4, g as rotationZ4, s as scaling4, t as translation4 } from '../matrix-DIfOiRyz.js';
|
|
3
3
|
import 'tinyest';
|
|
4
4
|
|
|
5
5
|
declare const discard: DualFn<() => never>;
|
package/std/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as G,c as nt,d as ut,e as at,f as pt,g as st,h as it,i as P,k as mt,l as dt,m as lt,n as ct,o as xt,p as Tt,q as ft,r as yt,s as bt,t as vt,u as gt,v as It,w as ht,x as wt}from"../chunk-VOVQAOVG.js";import{a as U}from"../chunk-7S3IK3D4.js";import{$ as z,$a as ze,Aa as he,Ba as we,Ca as Ce,Da as Ae,Ea as Se,Fa as Ee,Ga as De,Ha as $e,Ia as Fe,Ja as Oe,Ka as Ve,La as Le,Ma as We,Na as Be,Oa as Ne,Pa as _e,Qa as Me,R as M,Ra as Ge,Sa as Pe,Ta as Ue,Ua as ke,Va as Xe,Wa as Re,X as j,Xa as Ze,Y,Ya as je,Z as F,Za as Ye,_ as q,_a as qe,aa as H,ab as He,b as X,ba as J,bb as Je,c as R,ca as K,cb as Ke,d as Z,da as Q,db as Qe,e as C,ea as ee,eb as et,f as A,fa as te,fb as tt,g as S,ga as re,gb as rt,h as E,ha as oe,hb as ot,i as D,ia as ne,ja as ue,ka as ae,la as pe,ma as se,na as ie,oa as me,pa as de,qa as le,ra as ce,sa as xe,ta as Te,ua as fe,va as ye,wa as be,xa as ve,ya as ge,za as Ie}from"../chunk-2UXPGML5.js";import{Aa as V,B as l,C as O,Da as L,E as $,Ea as r,Ha as y,La as u,Na as n,Oa as W,Qa as T,Ra as m,Ta as g,Ua as I,_a as B,a as p,aa as o,db as N,fb as b,hb as _,ib as w,lb as c,q as x}from"../chunk-4W5Z7BO4.js";var Ct=u(()=>{throw new Error("`discard` relies on GPU resources and cannot be executed outside of a draw call")},()=>o("discard;",x),"discard");var h=F[p].jsImpl,At=C[p].jsImpl,St=C[p].gpuImpl,Et=A[p].jsImpl,Dt=A[p].gpuImpl,$t=S[p].jsImpl,Ft=S[p].gpuImpl,Ot=E[p].jsImpl,Vt=E[p].gpuImpl,Lt=D[p].jsImpl,Wt=D[p].gpuImpl,Bt=u((e,t)=>h(At(t),e),(e,t)=>o(r`(${St(t)} * ${e})`,e.dataType),"translate4"),Nt=u((e,t)=>h(Et(t),e),(e,t)=>o(r`(${Dt(t)} * ${e})`,e.dataType),"scale4"),_t=u((e,t)=>h($t(t),e),(e,t)=>o(r`(${Ft(t)} * ${e})`,e.dataType),"rotateX4"),Mt=u((e,t)=>h(Ot(t),e),(e,t)=>o(r`(${Vt(t)} * ${e})`,e.dataType),"rotateY4"),Gt=u((e,t)=>h(Lt(t),e),(e,t)=>o(r`(${Wt(t)} * ${e})`,e.dataType),"rotateZ4");var Pt=u(()=>console.warn("workgroupBarrier is a no-op outside of CODEGEN mode."),()=>o("workgroupBarrier()",x),"workgroupBarrier"),Ut=u(()=>console.warn("storageBarrier is a no-op outside of CODEGEN mode."),()=>o("storageBarrier()",x),"storageBarrier"),kt=u(()=>console.warn("textureBarrier is a no-op outside of CODEGEN mode."),()=>o("textureBarrier()",x),"textureBarrier"),Xt=u(e=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},e=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicLoad(&${e})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicLoad"),Rt=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(!l(e.dataType)||e.dataType.type!=="atomic")throw new Error(`Invalid atomic type: ${c(e.dataType)}`);return o(r`atomicStore(&${e}, ${t})`,x)},"atomicStore"),f=(e,t)=>e.dataType.type==="atomic"&&e.dataType.inner.type==="i32"?[e.dataType,g]:[e.dataType,m],Zt=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicAdd(&${e}, ${t})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicAdd",f),jt=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicSub(&${e}, ${t})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicSub",f),Yt=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicMax(&${e}, ${t})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicMax",f),qt=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicMin(&${e}, ${t})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicMin",f),zt=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicAnd(&${e}, ${t})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicAnd",f),Ht=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicOr(&${e}, ${t})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicOr",f),Jt=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicXor(&${e}, ${t})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicXor",f);function Kt(e){throw new Error("Derivative builtins are not allowed on the cpu")}var Qt=u(Kt,e=>o(r`dpdx(${e})`,e.dataType),"dpdx");function er(e){throw new Error("Derivative builtins are not allowed on the cpu")}var tr=u(er,e=>o(r`dpdxCoarse(${e})`,e.dataType),"dpdxCoarse");function rr(e){throw new Error("Derivative builtins are not allowed on the cpu")}var or=u(rr,e=>o(r`dpdxFine(${e})`,e.dataType),"dpdxFine");function nr(e){throw new Error("Derivative builtins are not allowed on the cpu")}var ur=u(nr,e=>o(r`dpdy(${e})`,e.dataType),"dpdy");function ar(e){throw new Error("Derivative builtins are not allowed on the cpu")}var pr=u(ar,e=>o(r`dpdyCoarse(${e})`,e.dataType),"dpdyCoarse");function sr(e){throw new Error("Derivative builtins are not allowed on the cpu")}var ir=u(sr,e=>o(r`dpdyFine(${e})`,e.dataType),"dpdyFine");function mr(e){throw new Error("Derivative builtins are not allowed on the cpu")}var dr=u(mr,e=>o(r`fwidth(${e})`,e.dataType),"fwidth");function lr(e){throw new Error("Derivative builtins are not allowed on the cpu")}var cr=u(lr,e=>o(r`fwidthCoarse(${e})`,e.dataType),"fwidthCoarse");function xr(e){throw new Error("Derivative builtins are not allowed on the cpu")}var Tr=u(xr,e=>o(r`fwidthFine(${e})`,e.dataType),"fwidthFine");var k=e=>$(e)&&O(e.inner)?e.inner.elementCount:0,fr=n({name:"arrayLength",signature:e=>{let t=$(e)?e:U(e);return{argTypes:[t],returnType:k(t)>0?W:m}},normalImpl:e=>e.length,codegenImpl(e){let t=k(e.dataType);return t>0?String(t):r`arrayLength(${e})`}});function yr(e,t,d,i,s){throw new Error("Texture sampling relies on GPU resources and cannot be executed outside of a draw call")}var br=n({name:"textureSample",normalImpl:yr,codegenImpl:(...e)=>r`textureSample(${e})`,signature:(...e)=>{let t=e[0].type.startsWith("texture_depth");return{argTypes:e,returnType:t?I:b}}});function vr(e,t,d,i,s,v){throw new Error("Texture sampling with bias relies on GPU resources and cannot be executed outside of a draw call")}var gr=n({name:"textureSampleBias",normalImpl:vr,codegenImpl:(...e)=>r`textureSampleBias(${e})`,signature:(...e)=>({argTypes:e,returnType:b})});function Ir(e,t,d,i,s,v){throw new Error("Texture sampling relies on GPU resources and cannot be executed outside of a draw call")}var hr=n({name:"textureSampleLevel",normalImpl:Ir,codegenImpl:(...e)=>r`textureSampleLevel(${e})`,signature:(...e)=>{let t=e[0].type.startsWith("texture_depth");return{argTypes:e,returnType:t?I:b}}});function wr(e,t,d){throw new Error("`textureLoad` relies on GPU resources and cannot be executed outside of a draw call")}var Cr=n({name:"textureLoad",normalImpl:wr,codegenImpl:(...e)=>r`textureLoad(${e})`,signature:(...e)=>{let t=e[0];if(M(t)){let s=t.type.startsWith("texture_depth"),v=t.sampleType;return{argTypes:e,returnType:s?I:v.type==="f32"?b:v.type==="u32"?w:_}}let d=t.format,i=G[d].vectorType;return{argTypes:e,returnType:i}}});function Ar(e,t,d,i){throw new Error("`textureStore` relies on GPU resources and cannot be executed outside of a draw call")}var Sr=n({name:"textureStore",normalImpl:Ar,codegenImpl:(...e)=>r`textureStore(${e})`,signature:(...e)=>({argTypes:e,returnType:x})});function Er(e,t){throw new Error("`textureDimensions` relies on GPU resources and cannot be executed outside of a draw call")}var Dr=n({name:"textureDimensions",normalImpl:Er,codegenImpl:(...e)=>r`textureDimensions(${e})`,signature:(...e)=>{let t=e[0].dimension;return t==="1d"?{argTypes:e,returnType:m}:t==="3d"?{argTypes:e,returnType:N}:{argTypes:e,returnType:B}}});function $r(e,t,d,i,s,v){throw new Error("Texture comparison sampling relies on GPU resources and cannot be executed outside of a draw call")}var Fr=n({name:"textureSampleCompare",normalImpl:$r,codegenImpl:(...e)=>r`textureSampleCompare(${e})`,signature:(...e)=>({argTypes:e,returnType:I})});function Or(e,t,d){throw new Error("Texture sampling with base clamp to edge is not supported outside of GPU mode.")}var Vr=n({name:"textureSampleBaseClampToEdge",normalImpl:Or,codegenImpl:(...e)=>r`textureSampleBaseClampToEdge(${e})`,signature:(...e)=>({argTypes:e,returnType:b})});var a="Subgroup operations can only be used in the GPU context.",Lr=n({name:"subgroupAdd",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupAdd(${e})`}),Wr=n({name:"subgroupExclusiveAdd",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupExclusiveAdd(${e})`}),Br=n({name:"subgroupInclusiveAdd",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupInclusiveAdd(${e})`}),Nr=n({name:"subgroupAll",signature:{argTypes:[T],returnType:T},normalImpl:a,codegenImpl:e=>r`subgroupAll(${e})`}),_r=n({name:"subgroupAnd",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupAnd(${e})`}),Mr=n({name:"subgroupAny",signature:{argTypes:[T],returnType:T},normalImpl:a,codegenImpl:e=>r`subgroupAny(${e})`}),Gr=n({name:"subgroupBallot",signature:{argTypes:[T],returnType:w},normalImpl:a,codegenImpl:e=>r`subgroupBallot(${e})`}),Pr=n({name:"subgroupBroadcast",signature:(...e)=>{let t=y([e[1]],[g,m]);if(!t)throw new Error(`subgroupBroadcast's second argument has to be compatible with i32 or u32. Got: ${e[1].type}`);return{argTypes:[e[0],t[0]],returnType:e[0]}},normalImpl:a,codegenImpl:(e,t)=>r`subgroupBroadcast(${e}, ${t})`}),Ur=n({name:"subgroupBroadcastFirst",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupBroadcastFirst(${e})`}),kr=n({name:"subgroupElect",signature:{argTypes:[],returnType:T},normalImpl:a,codegenImpl:()=>r`subgroupElect()`}),Xr=n({name:"subgroupMax",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupMax(${e})`}),Rr=n({name:"subgroupMin",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupMin(${e})`}),Zr=n({name:"subgroupMul",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupMul(${e})`}),jr=n({name:"subgroupExclusiveMul",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupExclusiveMul(${e})`}),Yr=n({name:"subgroupInclusiveMul",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupInclusiveMul(${e})`}),qr=n({name:"subgroupOr",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupOr(${e})`}),zr=n({name:"subgroupShuffle",signature:(...e)=>{let t=y([e[1]],[g,m]);if(!t)throw new Error(`subgroupShuffle's second argument has to be compatible with i32 or u32. Got: ${e[1].type}`);return{argTypes:[e[0],t[0]],returnType:e[0]}},normalImpl:a,codegenImpl:(e,t)=>r`subgroupShuffle(${e}, ${t})`}),Hr=n({name:"subgroupShuffleDown",signature:(...e)=>{let t=y([e[1]],[m]);if(!t)throw new Error(`subgroupShuffleDown's second argument has to be compatible with u32. Got: ${e[1].type}`);return{argTypes:[e[0],t[0]],returnType:e[0]}},normalImpl:a,codegenImpl:(e,t)=>r`subgroupShuffleDown(${e}, ${t})`}),Jr=n({name:"subgroupShuffleUp",signature:(...e)=>{let t=y([e[1]],[m]);if(!t)throw new Error(`subgroupShuffleUp's second argument has to be compatible with u32. Got: ${e[1].type}`);return{argTypes:[e[0],t[0]],returnType:e[0]}},normalImpl:a,codegenImpl:(e,t)=>r`subgroupShuffleUp(${e}, ${t})`}),Kr=n({name:"subgroupShuffleXor",signature:(...e)=>{let t=y([e[1]],[m]);if(!t)throw new Error(`subgroupShuffleXor's second argument has to be compatible with u32. Got: ${e[1].type}`);return{argTypes:[e[0],t[0]],returnType:e[0]}},normalImpl:a,codegenImpl:(e,t)=>r`subgroupShuffleXor(${e}, ${t})`}),Qr=n({name:"subgroupXor",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupXor(${e})`});var eo=(()=>{let e=i=>{let s=V();if(!s)throw new Error("extensionEnabled can only be called in a GPU codegen context.");return(s.enableExtensions??[]).includes(i)},t=i=>{let{value:s}=i;if(typeof s!="string"||!P.includes(s))throw new Error(`extensionEnabled has to be called with a string literal representing a valid WGSL extension name. Got: ${s}`);return o(e(s),T)},d=i=>{if(L())return t(i);throw new Error("extensionEnabled can only be called in a GPU codegen context.")};return Object.defineProperty(d,p,{value:{jsImpl:e,gpuImpl:t,argConversionHint:"keep"}}),d})();export{J as abs,K as acos,Q as acosh,j as add,gt as all,mt as allEq,vt as and,It as any,fr as arrayLength,ee as asin,te as asinh,re as atan,ne as atan2,oe as atanh,Zt as atomicAdd,zt as atomicAnd,Xt as atomicLoad,Yt as atomicMax,qt as atomicMin,Ht as atomicOr,Rt as atomicStore,jt as atomicSub,Jt as atomicXor,nt as bitcastU32toF32,ut as bitcastU32toI32,ue as ceil,ae as clamp,pe as cos,se as cosh,ie as countLeadingZeros,me as countOneBits,de as countTrailingZeros,le as cross,ce as degrees,xe as determinant,Ct as discard,Te as distance,q as div,fe as dot,be as dot4I8Packed,ye as dot4U8Packed,Qt as dpdx,tr as dpdxCoarse,or as dpdxFine,ur as dpdy,pr as dpdyCoarse,ir as dpdyFine,dt as eq,ve as exp,ge as exp2,eo as extensionEnabled,Ie as extractBits,he as faceForward,we as firstLeadingBit,Ce as firstTrailingBit,Ae as floor,Se as fma,Ee as fract,De as frexp,dr as fwidth,cr as fwidthCoarse,Tr as fwidthFine,ft as ge,Tt as gt,X as identity2,R as identity3,Z as identity4,$e as insertBits,Fe as inverseSqrt,ht as isCloseTo,Oe as ldexp,xt as le,Ve as length,Le as log,We as log2,ct as lt,Be as max,Ne as min,_e as mix,z as mod,Me as modf,F as mul,lt as ne,H as neg,Ge as normalize,yt as not,bt as or,pt as pack2x16float,it as pack4x8unorm,Pe as pow,Ue as quantizeToF16,ke as radians,Xe as reflect,Re as refract,Ze as reverseBits,_t as rotateX4,Mt as rotateY4,Gt as rotateZ4,S as rotationX4,E as rotationY4,D as rotationZ4,je as round,Ye as saturate,Nt as scale4,A as scaling4,wt as select,qe as sign,ze as sin,He as sinh,Je as smoothstep,Ke as sqrt,Qe as step,Ut as storageBarrier,Y as sub,Lr as subgroupAdd,Nr as subgroupAll,_r as subgroupAnd,Mr as subgroupAny,Gr as subgroupBallot,Pr as subgroupBroadcast,Ur as subgroupBroadcastFirst,kr as subgroupElect,Wr as subgroupExclusiveAdd,jr as subgroupExclusiveMul,Br as subgroupInclusiveAdd,Yr as subgroupInclusiveMul,Xr as subgroupMax,Rr as subgroupMin,Zr as subgroupMul,qr as subgroupOr,zr as subgroupShuffle,Hr as subgroupShuffleDown,Jr as subgroupShuffleUp,Kr as subgroupShuffleXor,Qr as subgroupXor,et as tan,tt as tanh,kt as textureBarrier,Dr as textureDimensions,Cr as textureLoad,br as textureSample,Vr as textureSampleBaseClampToEdge,gr as textureSampleBias,Fr as textureSampleCompare,hr as textureSampleLevel,Sr as textureStore,Bt as translate4,C as translation4,rt as transpose,ot as trunc,at as unpack2x16float,st as unpack4x8unorm,Pt as workgroupBarrier};
|
|
1
|
+
import{a as G,c as nt,d as ut,e as at,f as pt,g as st,h as it,i as P,k as mt,l as dt,m as lt,n as ct,o as xt,p as Tt,q as ft,r as yt,s as bt,t as vt,u as gt,v as It,w as ht,x as wt}from"../chunk-PWBIFP67.js";import{a as U}from"../chunk-6U5HPHCJ.js";import{$ as z,$a as ze,Aa as he,Ba as we,Ca as Ce,Da as Ae,Ea as Se,Fa as Ee,Ga as De,Ha as $e,Ia as Fe,Ja as Oe,Ka as Ve,La as Le,Ma as We,Na as Be,Oa as Ne,Pa as _e,Qa as Me,R as M,Ra as Ge,Sa as Pe,Ta as Ue,Ua as ke,Va as Xe,Wa as Re,X as j,Xa as Ze,Y,Ya as je,Z as F,Za as Ye,_ as q,_a as qe,aa as H,ab as He,b as X,ba as J,bb as Je,c as R,ca as K,cb as Ke,d as Z,da as Q,db as Qe,e as C,ea as ee,eb as et,f as A,fa as te,fb as tt,g as S,ga as re,gb as rt,h as E,ha as oe,hb as ot,i as D,ia as ne,ja as ue,ka as ae,la as pe,ma as se,na as ie,oa as me,pa as de,qa as le,ra as ce,sa as xe,ta as Te,ua as fe,va as ye,wa as be,xa as ve,ya as ge,za as Ie}from"../chunk-ECR2EGZX.js";import{Aa as V,B as l,C as O,Da as L,E as $,Ea as r,Ha as y,La as u,Na as n,Oa as W,Qa as T,Ra as m,Ta as g,Ua as I,_a as B,a as p,aa as o,db as N,fb as b,hb as _,ib as w,lb as c,q as x}from"../chunk-CRZWTZM2.js";var Ct=u(()=>{throw new Error("`discard` relies on GPU resources and cannot be executed outside of a draw call")},()=>o("discard;",x),"discard");var h=F[p].jsImpl,At=C[p].jsImpl,St=C[p].gpuImpl,Et=A[p].jsImpl,Dt=A[p].gpuImpl,$t=S[p].jsImpl,Ft=S[p].gpuImpl,Ot=E[p].jsImpl,Vt=E[p].gpuImpl,Lt=D[p].jsImpl,Wt=D[p].gpuImpl,Bt=u((e,t)=>h(At(t),e),(e,t)=>o(r`(${St(t)} * ${e})`,e.dataType),"translate4"),Nt=u((e,t)=>h(Et(t),e),(e,t)=>o(r`(${Dt(t)} * ${e})`,e.dataType),"scale4"),_t=u((e,t)=>h($t(t),e),(e,t)=>o(r`(${Ft(t)} * ${e})`,e.dataType),"rotateX4"),Mt=u((e,t)=>h(Ot(t),e),(e,t)=>o(r`(${Vt(t)} * ${e})`,e.dataType),"rotateY4"),Gt=u((e,t)=>h(Lt(t),e),(e,t)=>o(r`(${Wt(t)} * ${e})`,e.dataType),"rotateZ4");var Pt=u(()=>console.warn("workgroupBarrier is a no-op outside of CODEGEN mode."),()=>o("workgroupBarrier()",x),"workgroupBarrier"),Ut=u(()=>console.warn("storageBarrier is a no-op outside of CODEGEN mode."),()=>o("storageBarrier()",x),"storageBarrier"),kt=u(()=>console.warn("textureBarrier is a no-op outside of CODEGEN mode."),()=>o("textureBarrier()",x),"textureBarrier"),Xt=u(e=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},e=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicLoad(&${e})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicLoad"),Rt=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(!l(e.dataType)||e.dataType.type!=="atomic")throw new Error(`Invalid atomic type: ${c(e.dataType)}`);return o(r`atomicStore(&${e}, ${t})`,x)},"atomicStore"),f=(e,t)=>e.dataType.type==="atomic"&&e.dataType.inner.type==="i32"?[e.dataType,g]:[e.dataType,m],Zt=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicAdd(&${e}, ${t})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicAdd",f),jt=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicSub(&${e}, ${t})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicSub",f),Yt=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicMax(&${e}, ${t})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicMax",f),qt=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicMin(&${e}, ${t})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicMin",f),zt=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicAnd(&${e}, ${t})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicAnd",f),Ht=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicOr(&${e}, ${t})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicOr",f),Jt=u((e,t)=>{throw new Error("Atomic operations are not supported outside of CODEGEN mode.")},(e,t)=>{if(l(e.dataType)&&e.dataType.type==="atomic")return o(r`atomicXor(&${e}, ${t})`,e.dataType.inner);throw new Error(`Invalid atomic type: ${c(e.dataType)}`)},"atomicXor",f);function Kt(e){throw new Error("Derivative builtins are not allowed on the cpu")}var Qt=u(Kt,e=>o(r`dpdx(${e})`,e.dataType),"dpdx");function er(e){throw new Error("Derivative builtins are not allowed on the cpu")}var tr=u(er,e=>o(r`dpdxCoarse(${e})`,e.dataType),"dpdxCoarse");function rr(e){throw new Error("Derivative builtins are not allowed on the cpu")}var or=u(rr,e=>o(r`dpdxFine(${e})`,e.dataType),"dpdxFine");function nr(e){throw new Error("Derivative builtins are not allowed on the cpu")}var ur=u(nr,e=>o(r`dpdy(${e})`,e.dataType),"dpdy");function ar(e){throw new Error("Derivative builtins are not allowed on the cpu")}var pr=u(ar,e=>o(r`dpdyCoarse(${e})`,e.dataType),"dpdyCoarse");function sr(e){throw new Error("Derivative builtins are not allowed on the cpu")}var ir=u(sr,e=>o(r`dpdyFine(${e})`,e.dataType),"dpdyFine");function mr(e){throw new Error("Derivative builtins are not allowed on the cpu")}var dr=u(mr,e=>o(r`fwidth(${e})`,e.dataType),"fwidth");function lr(e){throw new Error("Derivative builtins are not allowed on the cpu")}var cr=u(lr,e=>o(r`fwidthCoarse(${e})`,e.dataType),"fwidthCoarse");function xr(e){throw new Error("Derivative builtins are not allowed on the cpu")}var Tr=u(xr,e=>o(r`fwidthFine(${e})`,e.dataType),"fwidthFine");var k=e=>$(e)&&O(e.inner)?e.inner.elementCount:0,fr=n({name:"arrayLength",signature:e=>{let t=$(e)?e:U(e);return{argTypes:[t],returnType:k(t)>0?W:m}},normalImpl:e=>e.length,codegenImpl(e){let t=k(e.dataType);return t>0?String(t):r`arrayLength(${e})`}});function yr(e,t,d,i,s){throw new Error("Texture sampling relies on GPU resources and cannot be executed outside of a draw call")}var br=n({name:"textureSample",normalImpl:yr,codegenImpl:(...e)=>r`textureSample(${e})`,signature:(...e)=>{let t=e[0].type.startsWith("texture_depth");return{argTypes:e,returnType:t?I:b}}});function vr(e,t,d,i,s,v){throw new Error("Texture sampling with bias relies on GPU resources and cannot be executed outside of a draw call")}var gr=n({name:"textureSampleBias",normalImpl:vr,codegenImpl:(...e)=>r`textureSampleBias(${e})`,signature:(...e)=>({argTypes:e,returnType:b})});function Ir(e,t,d,i,s,v){throw new Error("Texture sampling relies on GPU resources and cannot be executed outside of a draw call")}var hr=n({name:"textureSampleLevel",normalImpl:Ir,codegenImpl:(...e)=>r`textureSampleLevel(${e})`,signature:(...e)=>{let t=e[0].type.startsWith("texture_depth");return{argTypes:e,returnType:t?I:b}}});function wr(e,t,d){throw new Error("`textureLoad` relies on GPU resources and cannot be executed outside of a draw call")}var Cr=n({name:"textureLoad",normalImpl:wr,codegenImpl:(...e)=>r`textureLoad(${e})`,signature:(...e)=>{let t=e[0];if(M(t)){let s=t.type.startsWith("texture_depth"),v=t.sampleType;return{argTypes:e,returnType:s?I:v.type==="f32"?b:v.type==="u32"?w:_}}let d=t.format,i=G[d].vectorType;return{argTypes:e,returnType:i}}});function Ar(e,t,d,i){throw new Error("`textureStore` relies on GPU resources and cannot be executed outside of a draw call")}var Sr=n({name:"textureStore",normalImpl:Ar,codegenImpl:(...e)=>r`textureStore(${e})`,signature:(...e)=>({argTypes:e,returnType:x})});function Er(e,t){throw new Error("`textureDimensions` relies on GPU resources and cannot be executed outside of a draw call")}var Dr=n({name:"textureDimensions",normalImpl:Er,codegenImpl:(...e)=>r`textureDimensions(${e})`,signature:(...e)=>{let t=e[0].dimension;return t==="1d"?{argTypes:e,returnType:m}:t==="3d"?{argTypes:e,returnType:N}:{argTypes:e,returnType:B}}});function $r(e,t,d,i,s,v){throw new Error("Texture comparison sampling relies on GPU resources and cannot be executed outside of a draw call")}var Fr=n({name:"textureSampleCompare",normalImpl:$r,codegenImpl:(...e)=>r`textureSampleCompare(${e})`,signature:(...e)=>({argTypes:e,returnType:I})});function Or(e,t,d){throw new Error("Texture sampling with base clamp to edge is not supported outside of GPU mode.")}var Vr=n({name:"textureSampleBaseClampToEdge",normalImpl:Or,codegenImpl:(...e)=>r`textureSampleBaseClampToEdge(${e})`,signature:(...e)=>({argTypes:e,returnType:b})});var a="Subgroup operations can only be used in the GPU context.",Lr=n({name:"subgroupAdd",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupAdd(${e})`}),Wr=n({name:"subgroupExclusiveAdd",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupExclusiveAdd(${e})`}),Br=n({name:"subgroupInclusiveAdd",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupInclusiveAdd(${e})`}),Nr=n({name:"subgroupAll",signature:{argTypes:[T],returnType:T},normalImpl:a,codegenImpl:e=>r`subgroupAll(${e})`}),_r=n({name:"subgroupAnd",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupAnd(${e})`}),Mr=n({name:"subgroupAny",signature:{argTypes:[T],returnType:T},normalImpl:a,codegenImpl:e=>r`subgroupAny(${e})`}),Gr=n({name:"subgroupBallot",signature:{argTypes:[T],returnType:w},normalImpl:a,codegenImpl:e=>r`subgroupBallot(${e})`}),Pr=n({name:"subgroupBroadcast",signature:(...e)=>{let t=y([e[1]],[g,m]);if(!t)throw new Error(`subgroupBroadcast's second argument has to be compatible with i32 or u32. Got: ${e[1].type}`);return{argTypes:[e[0],t[0]],returnType:e[0]}},normalImpl:a,codegenImpl:(e,t)=>r`subgroupBroadcast(${e}, ${t})`}),Ur=n({name:"subgroupBroadcastFirst",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupBroadcastFirst(${e})`}),kr=n({name:"subgroupElect",signature:{argTypes:[],returnType:T},normalImpl:a,codegenImpl:()=>r`subgroupElect()`}),Xr=n({name:"subgroupMax",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupMax(${e})`}),Rr=n({name:"subgroupMin",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupMin(${e})`}),Zr=n({name:"subgroupMul",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupMul(${e})`}),jr=n({name:"subgroupExclusiveMul",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupExclusiveMul(${e})`}),Yr=n({name:"subgroupInclusiveMul",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupInclusiveMul(${e})`}),qr=n({name:"subgroupOr",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupOr(${e})`}),zr=n({name:"subgroupShuffle",signature:(...e)=>{let t=y([e[1]],[g,m]);if(!t)throw new Error(`subgroupShuffle's second argument has to be compatible with i32 or u32. Got: ${e[1].type}`);return{argTypes:[e[0],t[0]],returnType:e[0]}},normalImpl:a,codegenImpl:(e,t)=>r`subgroupShuffle(${e}, ${t})`}),Hr=n({name:"subgroupShuffleDown",signature:(...e)=>{let t=y([e[1]],[m]);if(!t)throw new Error(`subgroupShuffleDown's second argument has to be compatible with u32. Got: ${e[1].type}`);return{argTypes:[e[0],t[0]],returnType:e[0]}},normalImpl:a,codegenImpl:(e,t)=>r`subgroupShuffleDown(${e}, ${t})`}),Jr=n({name:"subgroupShuffleUp",signature:(...e)=>{let t=y([e[1]],[m]);if(!t)throw new Error(`subgroupShuffleUp's second argument has to be compatible with u32. Got: ${e[1].type}`);return{argTypes:[e[0],t[0]],returnType:e[0]}},normalImpl:a,codegenImpl:(e,t)=>r`subgroupShuffleUp(${e}, ${t})`}),Kr=n({name:"subgroupShuffleXor",signature:(...e)=>{let t=y([e[1]],[m]);if(!t)throw new Error(`subgroupShuffleXor's second argument has to be compatible with u32. Got: ${e[1].type}`);return{argTypes:[e[0],t[0]],returnType:e[0]}},normalImpl:a,codegenImpl:(e,t)=>r`subgroupShuffleXor(${e}, ${t})`}),Qr=n({name:"subgroupXor",signature:e=>({argTypes:[e],returnType:e}),normalImpl:a,codegenImpl:e=>r`subgroupXor(${e})`});var eo=(()=>{let e=i=>{let s=V();if(!s)throw new Error("extensionEnabled can only be called in a GPU codegen context.");return(s.enableExtensions??[]).includes(i)},t=i=>{let{value:s}=i;if(typeof s!="string"||!P.includes(s))throw new Error(`extensionEnabled has to be called with a string literal representing a valid WGSL extension name. Got: ${s}`);return o(e(s),T)},d=i=>{if(L())return t(i);throw new Error("extensionEnabled can only be called in a GPU codegen context.")};return Object.defineProperty(d,p,{value:{jsImpl:e,gpuImpl:t,argConversionHint:"keep"}}),d})();export{J as abs,K as acos,Q as acosh,j as add,gt as all,mt as allEq,vt as and,It as any,fr as arrayLength,ee as asin,te as asinh,re as atan,ne as atan2,oe as atanh,Zt as atomicAdd,zt as atomicAnd,Xt as atomicLoad,Yt as atomicMax,qt as atomicMin,Ht as atomicOr,Rt as atomicStore,jt as atomicSub,Jt as atomicXor,nt as bitcastU32toF32,ut as bitcastU32toI32,ue as ceil,ae as clamp,pe as cos,se as cosh,ie as countLeadingZeros,me as countOneBits,de as countTrailingZeros,le as cross,ce as degrees,xe as determinant,Ct as discard,Te as distance,q as div,fe as dot,be as dot4I8Packed,ye as dot4U8Packed,Qt as dpdx,tr as dpdxCoarse,or as dpdxFine,ur as dpdy,pr as dpdyCoarse,ir as dpdyFine,dt as eq,ve as exp,ge as exp2,eo as extensionEnabled,Ie as extractBits,he as faceForward,we as firstLeadingBit,Ce as firstTrailingBit,Ae as floor,Se as fma,Ee as fract,De as frexp,dr as fwidth,cr as fwidthCoarse,Tr as fwidthFine,ft as ge,Tt as gt,X as identity2,R as identity3,Z as identity4,$e as insertBits,Fe as inverseSqrt,ht as isCloseTo,Oe as ldexp,xt as le,Ve as length,Le as log,We as log2,ct as lt,Be as max,Ne as min,_e as mix,z as mod,Me as modf,F as mul,lt as ne,H as neg,Ge as normalize,yt as not,bt as or,pt as pack2x16float,it as pack4x8unorm,Pe as pow,Ue as quantizeToF16,ke as radians,Xe as reflect,Re as refract,Ze as reverseBits,_t as rotateX4,Mt as rotateY4,Gt as rotateZ4,S as rotationX4,E as rotationY4,D as rotationZ4,je as round,Ye as saturate,Nt as scale4,A as scaling4,wt as select,qe as sign,ze as sin,He as sinh,Je as smoothstep,Ke as sqrt,Qe as step,Ut as storageBarrier,Y as sub,Lr as subgroupAdd,Nr as subgroupAll,_r as subgroupAnd,Mr as subgroupAny,Gr as subgroupBallot,Pr as subgroupBroadcast,Ur as subgroupBroadcastFirst,kr as subgroupElect,Wr as subgroupExclusiveAdd,jr as subgroupExclusiveMul,Br as subgroupInclusiveAdd,Yr as subgroupInclusiveMul,Xr as subgroupMax,Rr as subgroupMin,Zr as subgroupMul,qr as subgroupOr,zr as subgroupShuffle,Hr as subgroupShuffleDown,Jr as subgroupShuffleUp,Kr as subgroupShuffleXor,Qr as subgroupXor,et as tan,tt as tanh,kt as textureBarrier,Dr as textureDimensions,Cr as textureLoad,br as textureSample,Vr as textureSampleBaseClampToEdge,gr as textureSampleBias,Fr as textureSampleCompare,hr as textureSampleLevel,Sr as textureStore,Bt as translate4,C as translation4,rt as transpose,ot as trunc,at as unpack2x16float,st as unpack4x8unorm,Pt as workgroupBarrier};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -3256,6 +3256,15 @@ interface TgpuGuardedComputePipeline<TArgs extends number[] = number[]> {
|
|
|
3256
3256
|
* "guarded" by a bounds check.
|
|
3257
3257
|
*/
|
|
3258
3258
|
dispatchThreads(...args: TArgs): void;
|
|
3259
|
+
/**
|
|
3260
|
+
* The underlying pipeline used during `dispatchThreads`.
|
|
3261
|
+
*/
|
|
3262
|
+
pipeline: TgpuComputePipeline;
|
|
3263
|
+
/**
|
|
3264
|
+
* The buffer used to automatically pass the thread count to the underlying pipeline during `dispatchThreads`.
|
|
3265
|
+
* For pipelines with a dimension count lower than 3, the remaining coordinates are expected to be 1.
|
|
3266
|
+
*/
|
|
3267
|
+
sizeUniform: TgpuUniform<Vec3u>;
|
|
3259
3268
|
}
|
|
3260
3269
|
interface WithCompute {
|
|
3261
3270
|
createPipeline(): TgpuComputePipeline;
|
package/chunk-3246CM7C.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _chunkZYGTVBDHcjs = require('./chunk-ZYGTVBDH.cjs');var _chunkTRE7NUKEcjs = require('./chunk-TRE7NUKE.cjs');var ae=_chunkTRE7NUKEcjs.Na.call(void 0, {name:"bitcastU32toF32",normalImpl:(e=>typeof e=="number"?_chunkZYGTVBDHcjs.U.call(void 0, e):_chunkZYGTVBDHcjs.W.bitcastU32toF32[e.kind](e)),codegenImpl:e=>_chunkTRE7NUKEcjs.Ea`bitcast<f32>(${e})`,signature:(...e)=>{let t=_nullishCoalesce(_chunkTRE7NUKEcjs.Ha.call(void 0, e,[_chunkTRE7NUKEcjs.Ra]), () => (e));return{argTypes:t,returnType:_chunkTRE7NUKEcjs.v.call(void 0, t[0])?t[0].type==="vec2u"?_chunkTRE7NUKEcjs.Xa:t[0].type==="vec3u"?_chunkTRE7NUKEcjs.ab:_chunkTRE7NUKEcjs.fb:_chunkTRE7NUKEcjs.Ua}}}),ne= exports.d =_chunkTRE7NUKEcjs.Na.call(void 0, {name:"bitcastU32toI32",normalImpl:(e=>typeof e=="number"?_chunkZYGTVBDHcjs.V.call(void 0, e):_chunkZYGTVBDHcjs.W.bitcastU32toI32[e.kind](e)),codegenImpl:e=>_chunkTRE7NUKEcjs.Ea`bitcast<i32>(${e})`,signature:(...e)=>{let t=_nullishCoalesce(_chunkTRE7NUKEcjs.Ha.call(void 0, e,[_chunkTRE7NUKEcjs.Ra]), () => (e));return{argTypes:t,returnType:_chunkTRE7NUKEcjs.v.call(void 0, t[0])?t[0].type==="vec2u"?_chunkTRE7NUKEcjs.Za:t[0].type==="vec3u"?_chunkTRE7NUKEcjs.cb:_chunkTRE7NUKEcjs.hb:_chunkTRE7NUKEcjs.Ta}}});var _typedbinary = require('typed-binary'); var m = _interopRequireWildcard(_typedbinary);var ie=_chunkTRE7NUKEcjs.La.call(void 0, e=>{let t=new ArrayBuffer(4);new m.BufferWriter(t).writeUint32(e);let l=new m.BufferReader(t);return _chunkTRE7NUKEcjs.Xa.call(void 0, l.readFloat16(),l.readFloat16())},e=>_chunkTRE7NUKEcjs.aa.call(void 0, _chunkTRE7NUKEcjs.Ea`unpack2x16float(${e})`,_chunkTRE7NUKEcjs.Xa),"unpack2x16float"),pe= exports.f =_chunkTRE7NUKEcjs.La.call(void 0, e=>{let t=new ArrayBuffer(4),s=new m.BufferWriter(t);s.writeFloat16(e.x),s.writeFloat16(e.y);let l=new m.BufferReader(t);return _chunkTRE7NUKEcjs.Ra.call(void 0, l.readUint32())},e=>_chunkTRE7NUKEcjs.aa.call(void 0, _chunkTRE7NUKEcjs.Ea`pack2x16float(${e})`,_chunkTRE7NUKEcjs.Ra),"pack2x16float"),fe= exports.g =_chunkTRE7NUKEcjs.La.call(void 0, e=>{let t=new ArrayBuffer(4);new m.BufferWriter(t).writeUint32(e);let l=new m.BufferReader(t);return _chunkTRE7NUKEcjs.fb.call(void 0, l.readUint8()/255,l.readUint8()/255,l.readUint8()/255,l.readUint8()/255)},e=>_chunkTRE7NUKEcjs.aa.call(void 0, _chunkTRE7NUKEcjs.Ea`unpack4x8unorm(${e})`,_chunkTRE7NUKEcjs.fb),"unpack4x8unorm"),ue= exports.h =_chunkTRE7NUKEcjs.La.call(void 0, e=>{let t=new ArrayBuffer(4),s=new m.BufferWriter(t);s.writeUint8(e.x*255),s.writeUint8(e.y*255),s.writeUint8(e.z*255),s.writeUint8(e.w*255);let l=new m.BufferReader(t);return _chunkTRE7NUKEcjs.Ra.call(void 0, l.readUint32())},e=>_chunkTRE7NUKEcjs.aa.call(void 0, _chunkTRE7NUKEcjs.Ea`pack4x8unorm(${e})`,_chunkTRE7NUKEcjs.Ra),"pack4x8unorm");function T(e){return e.type.includes("2")?_chunkTRE7NUKEcjs.$a:e.type.includes("3")?_chunkTRE7NUKEcjs.eb:_chunkTRE7NUKEcjs.jb}var Ae=_chunkTRE7NUKEcjs.Na.call(void 0, {name:"allEq",signature:(...e)=>({argTypes:e,returnType:_chunkTRE7NUKEcjs.Qa}),normalImpl:(e,t)=>$(A(e,t)),codegenImpl:(e,t)=>_chunkTRE7NUKEcjs.Ea`all(${e} == ${t})`}),A=(e,t)=>_chunkZYGTVBDHcjs.W.eq[e.kind](e,t),Se= exports.l =_chunkTRE7NUKEcjs.Na.call(void 0, {name:"eq",signature:(...e)=>({argTypes:e,returnType:T(e[0])}),normalImpl:A,codegenImpl:(e,t)=>_chunkTRE7NUKEcjs.Ea`(${e} == ${t})`}),Me= exports.m =_chunkTRE7NUKEcjs.Na.call(void 0, {name:"ne",signature:(...e)=>({argTypes:e,returnType:T(e[0])}),normalImpl:(e,t)=>d(A(e,t)),codegenImpl:(e,t)=>_chunkTRE7NUKEcjs.Ea`(${e} != ${t})`}),M=(e,t)=>_chunkZYGTVBDHcjs.W.lt[e.kind](e,t),ze= exports.n =_chunkTRE7NUKEcjs.Na.call(void 0, {name:"lt",signature:(...e)=>({argTypes:e,returnType:T(e[0])}),normalImpl:M,codegenImpl:(e,t)=>_chunkTRE7NUKEcjs.Ea`(${e} < ${t})`}),we= exports.o =_chunkTRE7NUKEcjs.Na.call(void 0, {name:"le",signature:(...e)=>({argTypes:e,returnType:T(e[0])}),normalImpl:(e,t)=>I(M(e,t),A(e,t)),codegenImpl:(e,t)=>_chunkTRE7NUKEcjs.Ea`(${e} <= ${t})`}),Ie= exports.p =_chunkTRE7NUKEcjs.Na.call(void 0, {name:"gt",signature:(...e)=>({argTypes:e,returnType:T(e[0])}),normalImpl:(e,t)=>O(d(M(e,t)),d(A(e,t))),codegenImpl:(e,t)=>_chunkTRE7NUKEcjs.Ea`(${e} > ${t})`}),$e= exports.q =_chunkTRE7NUKEcjs.Na.call(void 0, {name:"ge",signature:(...e)=>({argTypes:e,returnType:T(e[0])}),normalImpl:(e,t)=>d(M(e,t)),codegenImpl:(e,t)=>_chunkTRE7NUKEcjs.Ea`(${e} >= ${t})`}),d=e=>_chunkZYGTVBDHcjs.W.neg[e.kind](e),Ve= exports.r =_chunkTRE7NUKEcjs.Na.call(void 0, {name:"not",signature:(...e)=>({argTypes:e,returnType:e[0]}),normalImpl:d,codegenImpl:e=>_chunkTRE7NUKEcjs.Ea`!(${e})`}),I=(e,t)=>_chunkZYGTVBDHcjs.W.or[e.kind](e,t),Fe= exports.s =_chunkTRE7NUKEcjs.Na.call(void 0, {name:"or",signature:(...e)=>({argTypes:e,returnType:e[0]}),normalImpl:I,codegenImpl:(e,t)=>_chunkTRE7NUKEcjs.Ea`(${e} | ${t})`}),O=(e,t)=>d(I(d(e),d(t))),Ue= exports.t =_chunkTRE7NUKEcjs.Na.call(void 0, {name:"and",signature:(...e)=>({argTypes:e,returnType:e[0]}),normalImpl:O,codegenImpl:(e,t)=>_chunkTRE7NUKEcjs.Ea`(${e} & ${t})`}),$=e=>_chunkZYGTVBDHcjs.W.all[e.kind](e),ke= exports.u =_chunkTRE7NUKEcjs.Na.call(void 0, {name:"all",signature:(...e)=>({argTypes:e,returnType:_chunkTRE7NUKEcjs.Qa}),normalImpl:$,codegenImpl:e=>_chunkTRE7NUKEcjs.Ea`all(${e})`}),Ne= exports.v =_chunkTRE7NUKEcjs.Na.call(void 0, {name:"any",signature:(...e)=>({argTypes:e,returnType:_chunkTRE7NUKEcjs.Qa}),normalImpl:e=>!$(d(e)),codegenImpl:e=>_chunkTRE7NUKEcjs.Ea`any(${e})`}),De= exports.w =_chunkTRE7NUKEcjs.Na.call(void 0, {name:"isCloseTo",signature:(...e)=>({argTypes:e,returnType:_chunkTRE7NUKEcjs.Qa}),normalImpl:(e,t,s=.01)=>typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<s:_chunkTRE7NUKEcjs.r.call(void 0, e)&&_chunkTRE7NUKEcjs.r.call(void 0, t)?_chunkZYGTVBDHcjs.W.isCloseToZero[e.kind](_chunkZYGTVBDHcjs.Y[_chunkTRE7NUKEcjs.a].jsImpl(e,t),s):!1,codegenImpl:(e,t,s=_chunkTRE7NUKEcjs.aa.call(void 0, .01,_chunkTRE7NUKEcjs.Ua))=>_chunkTRE7NUKEcjs.$.call(void 0, e)&&_chunkTRE7NUKEcjs.$.call(void 0, t)?_chunkTRE7NUKEcjs.Ea`(abs(f32(${e}) - f32(${t})) <= ${s})`:!_chunkTRE7NUKEcjs.$.call(void 0, e)&&!_chunkTRE7NUKEcjs.$.call(void 0, t)?_chunkTRE7NUKEcjs.Ea`all(abs(${e} - ${t}) <= (${e} - ${e}) + ${s})`:"false"});function j(e,t,s){return typeof s=="boolean"?s?t:e:_chunkZYGTVBDHcjs.W.select[e.kind](e,t,s)}var Ee=_chunkTRE7NUKEcjs.Na.call(void 0, {name:"select",signature:(e,t,s)=>{let[l,b]=_nullishCoalesce(_chunkTRE7NUKEcjs.Ha.call(void 0, [e,t]), () => ([e,t]));return{argTypes:[l,b,s],returnType:l}},normalImpl:j,codegenImpl:(e,t,s)=>_chunkTRE7NUKEcjs.Ea`select(${e}, ${t}, ${s})`});var L={r8unorm:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:1,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:["write-only","read-only","read-write"]},r8snorm:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:1,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only"]},r8uint:{channelType:_chunkTRE7NUKEcjs.Ra,vectorType:_chunkTRE7NUKEcjs.ib,texelSize:1,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},r8sint:{channelType:_chunkTRE7NUKEcjs.Ta,vectorType:_chunkTRE7NUKEcjs.hb,texelSize:1,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},rg8unorm:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:2,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:["write-only","read-only"]},rg8snorm:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:2,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only"]},rg8uint:{channelType:_chunkTRE7NUKEcjs.Ra,vectorType:_chunkTRE7NUKEcjs.ib,texelSize:2,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rg8sint:{channelType:_chunkTRE7NUKEcjs.Ta,vectorType:_chunkTRE7NUKEcjs.hb,texelSize:2,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rgba8unorm:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:["write-only","read-only","read-write"]},"rgba8unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:null},rgba8snorm:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rgba8uint:{channelType:_chunkTRE7NUKEcjs.Ra,vectorType:_chunkTRE7NUKEcjs.ib,texelSize:4,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},rgba8sint:{channelType:_chunkTRE7NUKEcjs.Ta,vectorType:_chunkTRE7NUKEcjs.hb,texelSize:4,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},bgra8unorm:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:["write-only"]},"bgra8unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:null},r16unorm:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:2,sampleTypes:["unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},r16snorm:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:2,sampleTypes:["unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},r16uint:{channelType:_chunkTRE7NUKEcjs.Ra,vectorType:_chunkTRE7NUKEcjs.ib,texelSize:2,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},r16sint:{channelType:_chunkTRE7NUKEcjs.Ta,vectorType:_chunkTRE7NUKEcjs.hb,texelSize:2,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},r16float:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:2,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:["write-only","read-only","read-write"]},rg16unorm:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rg16snorm:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rg16uint:{channelType:_chunkTRE7NUKEcjs.Ra,vectorType:_chunkTRE7NUKEcjs.ib,texelSize:4,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rg16sint:{channelType:_chunkTRE7NUKEcjs.Ta,vectorType:_chunkTRE7NUKEcjs.hb,texelSize:4,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rg16float:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:["write-only","read-only"]},rgba16unorm:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:8,sampleTypes:["unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rgba16snorm:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:8,sampleTypes:["unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rgba16uint:{channelType:_chunkTRE7NUKEcjs.Ra,vectorType:_chunkTRE7NUKEcjs.ib,texelSize:8,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},rgba16sint:{channelType:_chunkTRE7NUKEcjs.Ta,vectorType:_chunkTRE7NUKEcjs.hb,texelSize:8,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},rgba16float:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:["write-only","read-only","read-write"]},r32uint:{channelType:_chunkTRE7NUKEcjs.Ra,vectorType:_chunkTRE7NUKEcjs.ib,texelSize:4,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},r32sint:{channelType:_chunkTRE7NUKEcjs.Ta,vectorType:_chunkTRE7NUKEcjs.hb,texelSize:4,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},r32float:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},rg32uint:{channelType:_chunkTRE7NUKEcjs.Ra,vectorType:_chunkTRE7NUKEcjs.ib,texelSize:8,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only"]},rg32sint:{channelType:_chunkTRE7NUKEcjs.Ta,vectorType:_chunkTRE7NUKEcjs.hb,texelSize:8,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only"]},rg32float:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},rgba32uint:{channelType:_chunkTRE7NUKEcjs.Ra,vectorType:_chunkTRE7NUKEcjs.ib,texelSize:16,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},rgba32sint:{channelType:_chunkTRE7NUKEcjs.Ta,vectorType:_chunkTRE7NUKEcjs.hb,texelSize:16,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},rgba32float:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},rgb10a2uint:{channelType:_chunkTRE7NUKEcjs.Ra,vectorType:_chunkTRE7NUKEcjs.ib,texelSize:4,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rgb10a2unorm:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:["write-only","read-only"]},rg11b10ufloat:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:["write-only","read-only"]},rgb9e5ufloat:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},stencil8:{channelType:_chunkTRE7NUKEcjs.Ra,vectorType:_chunkTRE7NUKEcjs.ib,texelSize:1,sampleTypes:["uint"],aspects:["stencil"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:null},depth16unorm:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:2,sampleTypes:["depth","unfilterable-float"],aspects:["depth"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:null},depth24plus:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["depth","unfilterable-float"],aspects:["depth"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:null},"depth24plus-stencil8":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["depth","unfilterable-float"],aspects:["depth","stencil"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:null},depth32float:{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["depth","unfilterable-float"],aspects:["depth"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:null},"depth32float-stencil8":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:4,sampleTypes:["depth","unfilterable-float"],aspects:["depth","stencil"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:null},"bc1-rgba-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc1-rgba-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc2-rgba-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc2-rgba-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc3-rgba-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc3-rgba-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc4-r-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc4-r-snorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc5-rg-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc5-rg-snorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc6h-rgb-ufloat":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc6h-rgb-float":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc7-rgba-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc7-rgba-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"etc2-rgb8unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"etc2-rgb8unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"etc2-rgb8a1unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"etc2-rgb8a1unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"etc2-rgba8unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"etc2-rgba8unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"eac-r11unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"eac-r11snorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"eac-rg11unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"eac-rg11snorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-4x4-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-4x4-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-5x4-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-5x4-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-5x5-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-5x5-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-6x5-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-6x5-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-6x6-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-6x6-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-8x5-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-8x5-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-8x6-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-8x6-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-8x8-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-8x8-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x5-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x5-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x6-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x6-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x8-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x8-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x10-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x10-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-12x10-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-12x10-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-12x12-unorm":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-12x12-unorm-srgb":{channelType:_chunkTRE7NUKEcjs.Ua,vectorType:_chunkTRE7NUKEcjs.fb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null}};function Oe(e,t){let s=L[e];if(!s)throw new Error(`Unknown texture format: ${e}`);let l={...s};switch(e){case"r32float":case"rg32float":case"rgba32float":t.features.has("float32-filterable")||(l={...l,sampleTypes:s.sampleTypes.filter(b=>b!=="float")}),t.features.has("float32-blendable")||(l={...l,canBlend:!1});break;case"bgra8unorm":t.features.has("bgra8unorm-storage")||(l={...l,storageBindings:null});break;case"rg11b10ufloat":t.features.has("rg11b10ufloat-renderable")||(l={...l,canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1});break}if(l.storageBindings){let b=t.features.has("texture-formats-tier1"),G=t.features.has("texture-formats-tier2"),g=[...l.storageBindings],P=["r8unorm","r8uint","r8sint","r16uint","r16sint","r16float","rgba8unorm","rgba8uint","rgba8sint","rgba16uint","rgba16sint","rgba16float","r32uint","r32sint","r32float","rgba32uint","rgba32sint","rgba32float"],C=["r8snorm","rg8unorm","rg8snorm","rg8uint","rg8sint","rgba8snorm","r16unorm","r16snorm","rg16unorm","rg16snorm","rg16uint","rg16sint","rg16float","rgba16unorm","rgba16snorm","rgb10a2uint","rgb10a2unorm","rg11b10ufloat"];P.includes(e)&&!G&&(g=g.filter(S=>S!=="read-write")),C.includes(e)&&!b&&(g=g.filter(S=>S!=="write-only"&&S!=="read-only")),l={...l,storageBindings:g.length>0?g:null}}return l}var Pe=["f16","clip_distances","dual_source_blending","subgroups","primitive_index"],Ce= exports.j ={f16:"shader-f16",clip_distances:"clip-distances",dual_source_blending:"dual-source-blending",subgroups:"subgroups",primitive_index:"primitive-index"};exports.a = L; exports.b = Oe; exports.c = ae; exports.d = ne; exports.e = ie; exports.f = pe; exports.g = fe; exports.h = ue; exports.i = Pe; exports.j = Ce; exports.k = Ae; exports.l = Se; exports.m = Me; exports.n = ze; exports.o = we; exports.p = Ie; exports.q = $e; exports.r = Ve; exports.s = Fe; exports.t = Ue; exports.u = ke; exports.v = Ne; exports.w = De; exports.x = Ee;
|
|
2
|
-
//# sourceMappingURL=chunk-3246CM7C.cjs.map
|
package/chunk-3246CM7C.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/iwo/Projects/wigsill/packages/typegpu/dist/chunk-3246CM7C.cjs","../src/std/bitcast.ts","../src/std/packing.ts","../src/std/boolean.ts","../src/core/texture/textureFormats.ts"],"names":["bitcastU32toF32","dualImpl","value","bitcastU32toF32Impl","VectorOps","n","stitch","arg","uargs","unify","u32","isVec","vec2f","vec3f","vec4f","f32","bitcastU32toI32","bitcastU32toI32Impl","vec2i","vec3i","vec4i","i32","unpack2x16float","createDualImpl","buffer","reader","snip","pack2x16float","writer","unpack4x8unorm","pack4x8unorm","correspondingBooleanVectorSchema","dataType","vec2b","vec3b","vec4b","allEq","argTypes","bool","lhs","rhs","cpuAll","cpuEq","eq","ne","cpuNot","cpuLt","lt","le","cpuOr","gt","cpuAnd","ge","not","or","and","all","any","isCloseTo","args","precision","isVecInstance","sub","$internal","isSnippetNumeric","cpuSelect","f","cond","select","uf","ut","textureFormats","vec4u","getDeviceTextureFormatInfo","format","device","baseInfo"],"mappings":"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","file":"/Users/iwo/Projects/wigsill/packages/typegpu/dist/chunk-3246CM7C.cjs","sourcesContent":[null,"import { dualImpl } from '../core/function/dualImpl.ts';\nimport { stitch } from '../core/resolve/stitch.ts';\nimport { bitcastU32toF32Impl, bitcastU32toI32Impl } from '../data/numberOps.ts';\nimport { f32, i32, u32 } from '../data/numeric.ts';\nimport { isVec } from '../data/wgslTypes.ts';\nimport { vec2f, vec2i, vec3f, vec3i, vec4f, vec4i } from '../data/vector.ts';\nimport { VectorOps } from '../data/vectorOps.ts';\nimport type {\n v2f,\n v2i,\n v2u,\n v3f,\n v3i,\n v3u,\n v4f,\n v4i,\n v4u,\n} from '../data/wgslTypes.ts';\nimport { unify } from '../tgsl/conversion.ts';\n\nexport type BitcastU32toF32Overload =\n & ((value: number) => number)\n & ((value: v2u) => v2f)\n & ((value: v3u) => v3f)\n & ((value: v4u) => v4f);\n\nexport const bitcastU32toF32 = dualImpl({\n name: 'bitcastU32toF32',\n normalImpl: ((value) => {\n if (typeof value === 'number') {\n return bitcastU32toF32Impl(value);\n }\n return VectorOps.bitcastU32toF32[value.kind](value);\n }) as BitcastU32toF32Overload,\n codegenImpl: (n) => stitch`bitcast<f32>(${n})`,\n signature: (...arg) => {\n const uargs = unify(arg, [u32]) ?? arg;\n return {\n argTypes: uargs,\n returnType: isVec(uargs[0])\n ? uargs[0].type === 'vec2u'\n ? vec2f\n : uargs[0].type === 'vec3u'\n ? vec3f\n : vec4f\n : f32,\n };\n },\n});\n\nexport type BitcastU32toI32Overload =\n & ((value: number) => number)\n & ((value: v2u) => v2i)\n & ((value: v3u) => v3i)\n & ((value: v4u) => v4i);\n\nexport const bitcastU32toI32 = dualImpl({\n name: 'bitcastU32toI32',\n normalImpl: ((value) => {\n if (typeof value === 'number') {\n return bitcastU32toI32Impl(value);\n }\n return VectorOps.bitcastU32toI32[value.kind](value);\n }) as BitcastU32toI32Overload,\n codegenImpl: (n) => stitch`bitcast<i32>(${n})`,\n signature: (...arg) => {\n const uargs = unify(arg, [u32]) ?? arg;\n return {\n argTypes: uargs,\n returnType: isVec(uargs[0])\n ? uargs[0].type === 'vec2u'\n ? vec2i\n : uargs[0].type === 'vec3u'\n ? vec3i\n : vec4i\n : i32,\n };\n },\n});\n","import * as TB from 'typed-binary';\nimport { u32 } from '../data/numeric.ts';\nimport { vec2f, vec4f } from '../data/vector.ts';\nimport type { v2f, v4f } from '../data/wgslTypes.ts';\nimport { createDualImpl } from '../core/function/dualImpl.ts';\nimport { stitch } from '../core/resolve/stitch.ts';\nimport { snip } from '../data/snippet.ts';\n\n/**\n * @privateRemarks\n * https://gpuweb.github.io/gpuweb/wgsl/#unpack2x16float-builtin\n */\nexport const unpack2x16float = createDualImpl(\n // CPU implementation\n (e: number): v2f => {\n const buffer = new ArrayBuffer(4);\n const writer = new TB.BufferWriter(buffer);\n writer.writeUint32(e);\n const reader = new TB.BufferReader(buffer);\n return vec2f(reader.readFloat16(), reader.readFloat16());\n },\n // GPU implementation\n (e) => snip(stitch`unpack2x16float(${e})`, vec2f),\n 'unpack2x16float',\n);\n\n/**\n * @privateRemarks\n * https://gpuweb.github.io/gpuweb/wgsl/#pack2x16float-builtin\n */\nexport const pack2x16float = createDualImpl(\n // CPU implementation\n (e: v2f): number => {\n const buffer = new ArrayBuffer(4);\n const writer = new TB.BufferWriter(buffer);\n writer.writeFloat16(e.x);\n writer.writeFloat16(e.y);\n const reader = new TB.BufferReader(buffer);\n return u32(reader.readUint32());\n },\n // GPU implementation\n (e) => snip(stitch`pack2x16float(${e})`, u32),\n 'pack2x16float',\n);\n\n/**\n * @privateRemarks\n * https://gpuweb.github.io/gpuweb/wgsl/#unpack4x8unorm-builtin\n */\nexport const unpack4x8unorm = createDualImpl(\n // CPU implementation\n (e: number): v4f => {\n const buffer = new ArrayBuffer(4);\n const writer = new TB.BufferWriter(buffer);\n writer.writeUint32(e);\n const reader = new TB.BufferReader(buffer);\n return vec4f(\n reader.readUint8() / 255,\n reader.readUint8() / 255,\n reader.readUint8() / 255,\n reader.readUint8() / 255,\n );\n },\n // GPU implementation\n (e) => snip(stitch`unpack4x8unorm(${e})`, vec4f),\n 'unpack4x8unorm',\n);\n\n/**\n * @privateRemarks\n * https://gpuweb.github.io/gpuweb/wgsl/#pack4x8unorm-builtin\n */\nexport const pack4x8unorm = createDualImpl(\n // CPU implementation\n (e: v4f): number => {\n const buffer = new ArrayBuffer(4);\n const writer = new TB.BufferWriter(buffer);\n writer.writeUint8(e.x * 255);\n writer.writeUint8(e.y * 255);\n writer.writeUint8(e.z * 255);\n writer.writeUint8(e.w * 255);\n const reader = new TB.BufferReader(buffer);\n return u32(reader.readUint32());\n },\n // GPU implementation\n (e) => snip(stitch`pack4x8unorm(${e})`, u32),\n 'pack4x8unorm',\n);\n","import { dualImpl } from '../core/function/dualImpl.ts';\nimport { stitch } from '../core/resolve/stitch.ts';\nimport type { AnyData } from '../data/dataTypes.ts';\nimport { bool, f32 } from '../data/numeric.ts';\nimport { isSnippetNumeric, snip } from '../data/snippet.ts';\nimport { vec2b, vec3b, vec4b } from '../data/vector.ts';\nimport { VectorOps } from '../data/vectorOps.ts';\nimport {\n type AnyBooleanVecInstance,\n type AnyFloatVecInstance,\n type AnyNumericVecInstance,\n type AnyVec2Instance,\n type AnyVec3Instance,\n type AnyVecInstance,\n type AnyWgslData,\n isVecInstance,\n type v2b,\n type v3b,\n type v4b,\n} from '../data/wgslTypes.ts';\nimport { $internal } from '../shared/symbols.ts';\nimport { unify } from '../tgsl/conversion.ts';\nimport { sub } from './operators.ts';\n\nfunction correspondingBooleanVectorSchema(dataType: AnyData) {\n if (dataType.type.includes('2')) {\n return vec2b;\n }\n if (dataType.type.includes('3')) {\n return vec3b;\n }\n return vec4b;\n}\n\n// comparison\n\n/**\n * Checks whether `lhs == rhs` on all components.\n * Equivalent to `all(eq(lhs, rhs))`.\n * @example\n * allEq(vec2f(0.0, 1.0), vec2f(0.0, 2.0)) // returns false\n * allEq(vec3u(0, 1, 2), vec3u(0, 1, 2)) // returns true\n */\nexport const allEq = dualImpl({\n name: 'allEq',\n signature: (...argTypes) => ({ argTypes, returnType: bool }),\n normalImpl: <T extends AnyVecInstance>(lhs: T, rhs: T) =>\n cpuAll(cpuEq(lhs, rhs)),\n codegenImpl: (lhs, rhs) => stitch`all(${lhs} == ${rhs})`,\n});\n\nconst cpuEq = <T extends AnyVecInstance>(lhs: T, rhs: T) =>\n VectorOps.eq[lhs.kind](lhs, rhs);\n\n/**\n * Checks **component-wise** whether `lhs == rhs`.\n * This function does **not** return `bool`, for that use-case, wrap the result in `all`, or use `allEq`.\n * @example\n * eq(vec2f(0.0, 1.0), vec2f(0.0, 2.0)) // returns vec2b(true, false)\n * eq(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(false, true, false)\n * all(eq(vec4i(4, 3, 2, 1), vec4i(4, 3, 2, 1))) // returns true\n * allEq(vec4i(4, 3, 2, 1), vec4i(4, 3, 2, 1)) // returns true\n */\nexport const eq = dualImpl({\n name: 'eq',\n signature: (...argTypes) => ({\n argTypes,\n returnType: correspondingBooleanVectorSchema(argTypes[0]),\n }),\n normalImpl: cpuEq,\n codegenImpl: (lhs, rhs) => stitch`(${lhs} == ${rhs})`,\n});\n\n/**\n * Checks **component-wise** whether `lhs != rhs`.\n * This function does **not** return `bool`, for that use-case, wrap the result in `any`.\n * @example\n * ne(vec2f(0.0, 1.0), vec2f(0.0, 2.0)) // returns vec2b(false, true)\n * ne(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(true, false, true)\n * any(ne(vec4i(4, 3, 2, 1), vec4i(4, 2, 2, 1))) // returns true\n */\nexport const ne = dualImpl({\n name: 'ne',\n signature: (...argTypes) => ({\n argTypes,\n returnType: correspondingBooleanVectorSchema(argTypes[0]),\n }),\n normalImpl: <T extends AnyVecInstance>(lhs: T, rhs: T) =>\n cpuNot(cpuEq(lhs, rhs)),\n codegenImpl: (lhs, rhs) => stitch`(${lhs} != ${rhs})`,\n});\n\nconst cpuLt = <T extends AnyNumericVecInstance>(lhs: T, rhs: T) =>\n VectorOps.lt[lhs.kind](lhs, rhs);\n\n/**\n * Checks **component-wise** whether `lhs < rhs`.\n * This function does **not** return `bool`, for that use-case, wrap the result in `all`.\n * @example\n * lt(vec2f(0.0, 0.0), vec2f(0.0, 1.0)) // returns vec2b(false, true)\n * lt(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(true, false, false)\n * all(lt(vec4i(1, 2, 3, 4), vec4i(2, 3, 4, 5))) // returns true\n */\nexport const lt = dualImpl({\n name: 'lt',\n signature: (...argTypes) => ({\n argTypes,\n returnType: correspondingBooleanVectorSchema(argTypes[0]),\n }),\n normalImpl: cpuLt,\n codegenImpl: (lhs, rhs) => stitch`(${lhs} < ${rhs})`,\n});\n\n/**\n * Checks **component-wise** whether `lhs <= rhs`.\n * This function does **not** return `bool`, for that use-case, wrap the result in `all`.\n * @example\n * le(vec2f(0.0, 0.0), vec2f(0.0, 1.0)) // returns vec2b(true, true)\n * le(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(true, true, false)\n * all(le(vec4i(1, 2, 3, 4), vec4i(2, 3, 3, 5))) // returns true\n */\nexport const le = dualImpl({\n name: 'le',\n signature: (...argTypes) => ({\n argTypes,\n returnType: correspondingBooleanVectorSchema(argTypes[0]),\n }),\n normalImpl: <T extends AnyNumericVecInstance>(lhs: T, rhs: T) =>\n cpuOr(cpuLt(lhs, rhs), cpuEq(lhs, rhs)),\n codegenImpl: (lhs, rhs) => stitch`(${lhs} <= ${rhs})`,\n});\n\n/**\n * Checks **component-wise** whether `lhs > rhs`.\n * This function does **not** return `bool`, for that use-case, wrap the result in `all`.\n * @example\n * gt(vec2f(0.0, 0.0), vec2f(0.0, 1.0)) // returns vec2b(false, false)\n * gt(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(false, false, true)\n * all(gt(vec4i(2, 3, 4, 5), vec4i(1, 2, 3, 4))) // returns true\n */\nexport const gt = dualImpl({\n name: 'gt',\n signature: (...argTypes) => ({\n argTypes,\n returnType: correspondingBooleanVectorSchema(argTypes[0]),\n }),\n normalImpl: <T extends AnyNumericVecInstance>(lhs: T, rhs: T) =>\n cpuAnd(cpuNot(cpuLt(lhs, rhs)), cpuNot(cpuEq(lhs, rhs))),\n codegenImpl: (lhs, rhs) => stitch`(${lhs} > ${rhs})`,\n});\n\n/**\n * Checks **component-wise** whether `lhs >= rhs`.\n * This function does **not** return `bool`, for that use-case, wrap the result in `all`.\n * @example\n * ge(vec2f(0.0, 0.0), vec2f(0.0, 1.0)) // returns vec2b(true, false)\n * ge(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(false, true, true)\n * all(ge(vec4i(2, 2, 4, 5), vec4i(1, 2, 3, 4))) // returns true\n */\nexport const ge = dualImpl({\n name: 'ge',\n signature: (...argTypes) => ({\n argTypes: argTypes,\n returnType: correspondingBooleanVectorSchema(argTypes[0]),\n }),\n normalImpl: <T extends AnyNumericVecInstance>(lhs: T, rhs: T) =>\n cpuNot(cpuLt(lhs, rhs)),\n codegenImpl: (lhs, rhs) => stitch`(${lhs} >= ${rhs})`,\n});\n\n// logical ops\n\nconst cpuNot = <T extends AnyBooleanVecInstance>(value: T): T =>\n VectorOps.neg[value.kind](value);\n\n/**\n * Returns **component-wise** `!value`.\n * @example\n * not(vec2b(false, true)) // returns vec2b(true, false)\n * not(vec3b(true, true, false)) // returns vec3b(false, false, true)\n */\nexport const not = dualImpl({\n name: 'not',\n signature: (...argTypes) => ({ argTypes, returnType: argTypes[0] }),\n normalImpl: cpuNot,\n codegenImpl: (arg) => stitch`!(${arg})`,\n});\n\nconst cpuOr = <T extends AnyBooleanVecInstance>(lhs: T, rhs: T) =>\n VectorOps.or[lhs.kind](lhs, rhs);\n\n/**\n * Returns **component-wise** logical `or` result.\n * @example\n * or(vec2b(false, true), vec2b(false, false)) // returns vec2b(false, true)\n * or(vec3b(true, true, false), vec3b(false, true, false)) // returns vec3b(true, true, false)\n */\nexport const or = dualImpl({\n name: 'or',\n signature: (...argTypes) => ({ argTypes, returnType: argTypes[0] }),\n normalImpl: cpuOr,\n codegenImpl: (lhs, rhs) => stitch`(${lhs} | ${rhs})`,\n});\n\nconst cpuAnd = <T extends AnyBooleanVecInstance>(lhs: T, rhs: T) =>\n cpuNot(cpuOr(cpuNot(lhs), cpuNot(rhs)));\n\n/**\n * Returns **component-wise** logical `and` result.\n * @example\n * and(vec2b(false, true), vec2b(true, true)) // returns vec2b(false, true)\n * and(vec3b(true, true, false), vec3b(false, true, false)) // returns vec3b(false, true, false)\n */\nexport const and = dualImpl({\n name: 'and',\n signature: (...argTypes) => ({ argTypes, returnType: argTypes[0] }),\n normalImpl: cpuAnd,\n codegenImpl: (lhs, rhs) => stitch`(${lhs} & ${rhs})`,\n});\n\n// logical aggregation\n\nconst cpuAll = (value: AnyBooleanVecInstance) =>\n VectorOps.all[value.kind](value);\n\n/**\n * Returns `true` if each component of `value` is true.\n * @example\n * all(vec2b(false, true)) // returns false\n * all(vec3b(true, true, true)) // returns true\n */\nexport const all = dualImpl({\n name: 'all',\n signature: (...argTypes) => ({ argTypes, returnType: bool }),\n normalImpl: cpuAll,\n codegenImpl: (value) => stitch`all(${value})`,\n});\n\n/**\n * Returns `true` if any component of `value` is true.\n * @example\n * any(vec2b(false, true)) // returns true\n * any(vec3b(false, false, false)) // returns false\n */\nexport const any = dualImpl({\n name: 'any',\n signature: (...argTypes) => ({ argTypes, returnType: bool }),\n normalImpl: (value: AnyBooleanVecInstance) => !cpuAll(cpuNot(value)),\n codegenImpl: (arg) => stitch`any(${arg})`,\n});\n\n// other\n\n/**\n * Checks whether the given elements differ by at most the `precision` value.\n * Checks all elements of `lhs` and `rhs` if arguments are vectors.\n * @example\n * isCloseTo(0, 0.1) // returns false\n * isCloseTo(vec3f(0, 0, 0), vec3f(0.002, -0.009, 0)) // returns true\n *\n * @param {number} precision argument that specifies the maximum allowed difference, 0.01 by default.\n */\nexport const isCloseTo = dualImpl({\n name: 'isCloseTo',\n signature: (...args) => ({\n argTypes: args as AnyWgslData[],\n returnType: bool,\n }),\n // CPU implementation\n normalImpl: <T extends AnyFloatVecInstance | number>(\n lhs: T,\n rhs: T,\n precision = 0.01,\n ): boolean => {\n if (typeof lhs === 'number' && typeof rhs === 'number') {\n return Math.abs(lhs - rhs) < precision;\n }\n if (isVecInstance(lhs) && isVecInstance(rhs)) {\n return VectorOps.isCloseToZero[lhs.kind](\n sub[$internal].jsImpl(lhs, rhs),\n precision,\n );\n }\n return false;\n },\n // GPU implementation\n codegenImpl: (lhs, rhs, precision = snip(0.01, f32)) => {\n if (isSnippetNumeric(lhs) && isSnippetNumeric(rhs)) {\n return stitch`(abs(f32(${lhs}) - f32(${rhs})) <= ${precision})`;\n }\n if (!isSnippetNumeric(lhs) && !isSnippetNumeric(rhs)) {\n // https://www.w3.org/TR/WGSL/#vector-multi-component:~:text=Binary%20arithmetic%20expressions%20with%20mixed%20scalar%20and%20vector%20operands\n // (a-a)+prec creates a vector of a.length elements, all equal to prec\n return stitch`all(abs(${lhs} - ${rhs}) <= (${lhs} - ${lhs}) + ${precision})`;\n }\n return 'false';\n },\n});\n\nfunction cpuSelect(f: boolean, t: boolean, cond: boolean): boolean;\nfunction cpuSelect(f: number, t: number, cond: boolean): number;\nfunction cpuSelect<T extends AnyVecInstance>(\n f: T,\n t: T,\n cond:\n | boolean\n | (T extends AnyVec2Instance ? v2b\n : T extends AnyVec3Instance ? v3b\n : v4b),\n): T;\nfunction cpuSelect<T extends number | boolean | AnyVecInstance>(\n f: T,\n t: T,\n cond: AnyBooleanVecInstance | boolean,\n) {\n if (typeof cond === 'boolean') {\n return cond ? t : f;\n }\n return VectorOps.select[(f as AnyVecInstance).kind](\n f as AnyVecInstance,\n t as AnyVecInstance,\n cond,\n );\n}\n\n/**\n * Returns `t` if `cond` is `true`, and `f` otherwise.\n * Component-wise if `cond` is a vector.\n * @example\n * select(1, 2, false) // returns 1\n * select(1, 2, true) // returns 2\n * select(vec2i(1, 2), vec2i(3, 4), true) // returns vec2i(3, 4)\n * select(vec2i(1, 2), vec2i(3, 4), vec2b(false, true)) // returns vec2i(1, 4)\n */\nexport const select = dualImpl({\n name: 'select',\n signature: (f, t, cond) => {\n const [uf, ut] = unify([f, t]) ?? [f, t] as const;\n return ({ argTypes: [uf, ut, cond], returnType: uf });\n },\n normalImpl: cpuSelect,\n codegenImpl: (f, t, cond) => stitch`select(${f}, ${t}, ${cond})`,\n});\n","import { f32, i32, u32 } from '../../data/numeric.ts';\nimport { vec4f, vec4i, vec4u } from '../../data/vector.ts';\nimport type { F32, I32, U32 } from '../../data/wgslTypes.ts';\n\nexport type ViewDimensionToDimension = {\n '1d': '1d';\n '2d': '2d';\n '2d-array': '2d';\n '3d': '3d';\n cube: '2d';\n 'cube-array': '2d';\n};\n\n/**\n * https://www.w3.org/TR/WGSL/#storage-texel-formats\n */\nexport type StorageTextureFormats =\n | 'rgba8unorm'\n | 'rgba8snorm'\n | 'rgba8uint'\n | 'rgba8sint'\n | 'rgba16unorm'\n | 'rgba16snorm'\n | 'rgba16uint'\n | 'rgba16sint'\n | 'rgba16float'\n | 'rg8unorm'\n | 'rg8snorm'\n | 'rg8uint'\n | 'rg8sint'\n | 'rg16unorm'\n | 'rg16snorm'\n | 'rg16uint'\n | 'rg16sint'\n | 'rg16float'\n | 'r32uint'\n | 'r32sint'\n | 'r32float'\n | 'rg32uint'\n | 'rg32sint'\n | 'rg32float'\n | 'rgba32uint'\n | 'rgba32sint'\n | 'rgba32float'\n | 'bgra8unorm'\n | 'r8unorm'\n | 'r8snorm'\n | 'r8uint'\n | 'r8sint'\n | 'r16unorm'\n | 'r16snorm'\n | 'r16uint'\n | 'r16sint'\n | 'r16float'\n | 'rgb10a2unorm'\n | 'rgb10a2uint'\n | 'rg11b10ufloat';\n\n// TODO: use this for texture view validation\n// deno-fmt-ignore - this is not really meant to be read\nexport const textureFormats = {\n // 8-bit formats\n 'r8unorm': { channelType: f32, vectorType: vec4f, texelSize: 1, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: true, storageBindings: ['write-only', 'read-only', 'read-write'] },\n 'r8snorm': { channelType: f32, vectorType: vec4f, texelSize: 1, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n 'r8uint': { channelType: u32, vectorType: vec4u, texelSize: 1, sampleTypes: ['uint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only', 'read-write'] },\n 'r8sint': { channelType: i32, vectorType: vec4i, texelSize: 1, sampleTypes: ['sint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only', 'read-write'] },\n\n 'rg8unorm': { channelType: f32, vectorType: vec4f, texelSize: 2, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: true, storageBindings: ['write-only', 'read-only'] },\n 'rg8snorm': { channelType: f32, vectorType: vec4f, texelSize: 2, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n 'rg8uint': { channelType: u32, vectorType: vec4u, texelSize: 2, sampleTypes: ['uint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n 'rg8sint': { channelType: i32, vectorType: vec4i, texelSize: 2, sampleTypes: ['sint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n\n 'rgba8unorm': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: true, storageBindings: ['write-only', 'read-only', 'read-write'] },\n 'rgba8unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: true, storageBindings: null },\n 'rgba8snorm': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n 'rgba8uint': { channelType: u32, vectorType: vec4u, texelSize: 4, sampleTypes: ['uint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only', 'read-write'] },\n 'rgba8sint': { channelType: i32, vectorType: vec4i, texelSize: 4, sampleTypes: ['sint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only', 'read-write'] },\n\n 'bgra8unorm': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: true, storageBindings: ['write-only'] },\n 'bgra8unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: true, storageBindings: null },\n\n // 16-bit formats\n 'r16unorm': { channelType: f32, vectorType: vec4f, texelSize: 2, sampleTypes: ['unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n 'r16snorm': { channelType: f32, vectorType: vec4f, texelSize: 2, sampleTypes: ['unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n 'r16uint': { channelType: u32, vectorType: vec4u, texelSize: 2, sampleTypes: ['uint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only', 'read-write'] },\n 'r16sint': { channelType: i32, vectorType: vec4i, texelSize: 2, sampleTypes: ['sint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only', 'read-write'] },\n 'r16float': { channelType: f32, vectorType: vec4f, texelSize: 2, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: true, storageBindings: ['write-only', 'read-only', 'read-write'] },\n\n 'rg16unorm': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n 'rg16snorm': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n 'rg16uint': { channelType: u32, vectorType: vec4u, texelSize: 4, sampleTypes: ['uint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n 'rg16sint': { channelType: i32, vectorType: vec4i, texelSize: 4, sampleTypes: ['sint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n 'rg16float': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: true, storageBindings: ['write-only', 'read-only'] },\n\n 'rgba16unorm': { channelType: f32, vectorType: vec4f, texelSize: 8, sampleTypes: ['unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n 'rgba16snorm': { channelType: f32, vectorType: vec4f, texelSize: 8, sampleTypes: ['unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n 'rgba16uint': { channelType: u32, vectorType: vec4u, texelSize: 8, sampleTypes: ['uint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only', 'read-write'] },\n 'rgba16sint': { channelType: i32, vectorType: vec4i, texelSize: 8, sampleTypes: ['sint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only', 'read-write'] },\n 'rgba16float': { channelType: f32, vectorType: vec4f, texelSize: 8, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: true, storageBindings: ['write-only', 'read-only', 'read-write'] },\n\n // 32-bit formats\n 'r32uint': { channelType: u32, vectorType: vec4u, texelSize: 4, sampleTypes: ['uint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: false, canResolve: false, storageBindings: ['write-only', 'read-only', 'read-write'] },\n 'r32sint': { channelType: i32, vectorType: vec4i, texelSize: 4, sampleTypes: ['sint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: false, canResolve: false, storageBindings: ['write-only', 'read-only', 'read-write'] },\n 'r32float': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only', 'read-write'] },\n\n 'rg32uint': { channelType: u32, vectorType: vec4u, texelSize: 8, sampleTypes: ['uint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: false, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n 'rg32sint': { channelType: i32, vectorType: vec4i, texelSize: 8, sampleTypes: ['sint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: false, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n 'rg32float': { channelType: f32, vectorType: vec4f, texelSize: 8, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: false, canResolve: false, storageBindings: ['write-only', 'read-only', 'read-write'] },\n\n 'rgba32uint': { channelType: u32, vectorType: vec4u, texelSize: 16, sampleTypes: ['uint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: false, canResolve: false, storageBindings: ['write-only', 'read-only', 'read-write'] },\n 'rgba32sint': { channelType: i32, vectorType: vec4i, texelSize: 16, sampleTypes: ['sint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: false, canResolve: false, storageBindings: ['write-only', 'read-only', 'read-write'] },\n 'rgba32float': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: false, canResolve: false, storageBindings: ['write-only', 'read-only', 'read-write'] },\n\n // Mixed component formats\n 'rgb10a2uint': { channelType: u32, vectorType: vec4u, texelSize: 4, sampleTypes: ['uint'], aspects: ['color'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: ['write-only', 'read-only'] },\n 'rgb10a2unorm': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: true, storageBindings: ['write-only', 'read-only'] },\n 'rg11b10ufloat': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: true, canBlend: true, canMultisample: true, canResolve: true, storageBindings: ['write-only', 'read-only'] },\n\n // Special formats\n 'rgb9e5ufloat': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n\n // Depth/Stencil formats\n 'stencil8': { channelType: u32, vectorType: vec4u, texelSize: 1, sampleTypes: ['uint'], aspects: ['stencil'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: null },\n 'depth16unorm': { channelType: f32, vectorType: vec4f, texelSize: 2, sampleTypes: ['depth', 'unfilterable-float'], aspects: ['depth'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: null },\n 'depth24plus': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['depth', 'unfilterable-float'], aspects: ['depth'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: null },\n 'depth24plus-stencil8': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['depth', 'unfilterable-float'], aspects: ['depth', 'stencil'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: null },\n 'depth32float': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['depth', 'unfilterable-float'], aspects: ['depth'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: null },\n 'depth32float-stencil8': { channelType: f32, vectorType: vec4f, texelSize: 4, sampleTypes: ['depth', 'unfilterable-float'], aspects: ['depth', 'stencil'], canRenderAttachment: true, canBlend: false, canMultisample: true, canResolve: false, storageBindings: null },\n\n // BC compressed formats\n 'bc1-rgba-unorm': { channelType: f32, vectorType: vec4f, texelSize: 8, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'bc1-rgba-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 8, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'bc2-rgba-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'bc2-rgba-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'bc3-rgba-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'bc3-rgba-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'bc4-r-unorm': { channelType: f32, vectorType: vec4f, texelSize: 8, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'bc4-r-snorm': { channelType: f32, vectorType: vec4f, texelSize: 8, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'bc5-rg-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'bc5-rg-snorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'bc6h-rgb-ufloat': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'bc6h-rgb-float': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'bc7-rgba-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'bc7-rgba-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n\n // ETC2/EAC compressed formats\n 'etc2-rgb8unorm': { channelType: f32, vectorType: vec4f, texelSize: 8, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'etc2-rgb8unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 8, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'etc2-rgb8a1unorm': { channelType: f32, vectorType: vec4f, texelSize: 8, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'etc2-rgb8a1unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 8, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'etc2-rgba8unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'etc2-rgba8unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'eac-r11unorm': { channelType: f32, vectorType: vec4f, texelSize: 8, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'eac-r11snorm': { channelType: f32, vectorType: vec4f, texelSize: 8, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'eac-rg11unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'eac-rg11snorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n\n // ASTC compressed formats\n 'astc-4x4-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-4x4-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-5x4-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-5x4-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-5x5-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-5x5-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-6x5-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-6x5-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-6x6-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-6x6-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-8x5-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-8x5-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-8x6-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-8x6-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-8x8-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-8x8-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-10x5-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-10x5-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-10x6-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-10x6-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-10x8-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-10x8-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-10x10-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-10x10-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-12x10-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-12x10-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-12x12-unorm': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n 'astc-12x12-unorm-srgb': { channelType: f32, vectorType: vec4f, texelSize: 16, sampleTypes: ['float', 'unfilterable-float'], aspects: ['color'], canRenderAttachment: false, canBlend: false, canMultisample: false, canResolve: false, storageBindings: null },\n} as const satisfies Record<GPUTextureFormat, TextureFormatInfo>;\n\nexport type TextureFormatInfo = {\n readonly channelType: F32 | I32 | U32;\n readonly vectorType: typeof vec4f | typeof vec4i | typeof vec4u;\n readonly texelSize: number;\n readonly sampleTypes: readonly string[];\n readonly aspects: readonly string[];\n readonly canRenderAttachment: boolean;\n readonly canBlend: boolean;\n readonly canMultisample: boolean;\n readonly canResolve: boolean;\n readonly storageBindings: readonly string[] | null;\n};\n\nexport type TextureFormats = typeof textureFormats;\n\nexport function getDeviceTextureFormatInfo<T extends GPUTextureFormat>(\n format: T,\n device: GPUDevice,\n): typeof textureFormats[T] {\n const baseInfo = textureFormats[format];\n\n if (!baseInfo) {\n throw new Error(`Unknown texture format: ${format}`);\n }\n\n let filteredInfo = { ...baseInfo } as TextureFormatInfo;\n switch (format) {\n case 'r32float':\n case 'rg32float':\n case 'rgba32float':\n if (!device.features.has('float32-filterable')) {\n filteredInfo = {\n ...filteredInfo,\n sampleTypes: baseInfo.sampleTypes.filter((type) => type !== 'float'),\n } as TextureFormatInfo;\n }\n if (!device.features.has('float32-blendable')) {\n filteredInfo = {\n ...filteredInfo,\n canBlend: false,\n };\n }\n break;\n\n case 'bgra8unorm':\n if (!device.features.has('bgra8unorm-storage')) {\n filteredInfo = {\n ...filteredInfo,\n storageBindings: null,\n };\n }\n break;\n\n case 'rg11b10ufloat':\n if (!device.features.has('rg11b10ufloat-renderable')) {\n filteredInfo = {\n ...filteredInfo,\n canRenderAttachment: false,\n canBlend: false,\n canMultisample: false,\n canResolve: false,\n };\n }\n break;\n }\n\n if (filteredInfo.storageBindings) {\n const hasTexture1 = device.features.has('texture-formats-tier1');\n const hasTexture2 = device.features.has('texture-formats-tier2');\n\n let availableBindings = [...filteredInfo.storageBindings];\n\n // deno-fmt-ignore\n const tier2RequiredFormats = [\n 'r8unorm', 'r8uint', 'r8sint',\n 'r16uint', 'r16sint', 'r16float',\n 'rgba8unorm', 'rgba8uint', 'rgba8sint',\n 'rgba16uint', 'rgba16sint', 'rgba16float',\n 'r32uint', 'r32sint', 'r32float',\n 'rgba32uint', 'rgba32sint', 'rgba32float',\n ];\n\n // deno-fmt-ignore\n const tier1RequiredFormats = [\n 'r8snorm',\n 'rg8unorm', 'rg8snorm', 'rg8uint', 'rg8sint',\n 'rgba8snorm',\n 'r16unorm', 'r16snorm',\n 'rg16unorm', 'rg16snorm', 'rg16uint', 'rg16sint', 'rg16float',\n 'rgba16unorm', 'rgba16snorm',\n 'rgb10a2uint', 'rgb10a2unorm', 'rg11b10ufloat',\n ];\n\n if (tier2RequiredFormats.includes(format) && !hasTexture2) {\n availableBindings = availableBindings.filter((binding) =>\n binding !== 'read-write'\n );\n }\n\n if (tier1RequiredFormats.includes(format) && !hasTexture1) {\n availableBindings = availableBindings.filter(\n (binding) => binding !== 'write-only' && binding !== 'read-only',\n );\n }\n\n filteredInfo = {\n ...filteredInfo,\n storageBindings: availableBindings.length > 0 ? availableBindings : null,\n };\n }\n\n return filteredInfo as typeof textureFormats[T];\n}\n"]}
|