typegpu 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/chunk-2UXPGML5.js +7 -0
  2. package/chunk-2UXPGML5.js.map +1 -0
  3. package/chunk-3246CM7C.cjs +2 -0
  4. package/chunk-3246CM7C.cjs.map +1 -0
  5. package/{chunk-XEUNEHAZ.js → chunk-4W5Z7BO4.js} +6 -6
  6. package/chunk-4W5Z7BO4.js.map +1 -0
  7. package/{chunk-TRAG63HY.cjs → chunk-5Y6GTBWR.cjs} +3 -3
  8. package/{chunk-TRAG63HY.cjs.map → chunk-5Y6GTBWR.cjs.map} +1 -1
  9. package/{chunk-6WF2EZIT.js → chunk-7S3IK3D4.js} +2 -2
  10. package/{chunk-B254XDWG.js → chunk-7XFSK632.js} +2 -2
  11. package/{chunk-M2P3FJT7.cjs → chunk-PRMFGUQT.cjs} +2 -2
  12. package/{chunk-M2P3FJT7.cjs.map → chunk-PRMFGUQT.cjs.map} +1 -1
  13. package/{chunk-A5APHF7K.cjs → chunk-TRE7NUKE.cjs} +6 -6
  14. package/chunk-TRE7NUKE.cjs.map +1 -0
  15. package/chunk-VOVQAOVG.js +2 -0
  16. package/chunk-VOVQAOVG.js.map +1 -0
  17. package/chunk-ZYGTVBDH.cjs +7 -0
  18. package/chunk-ZYGTVBDH.cjs.map +1 -0
  19. package/common/index.cjs +1 -1
  20. package/common/index.d.cts +1 -1
  21. package/common/index.d.ts +1 -1
  22. package/common/index.js +1 -1
  23. package/data/index.cjs +1 -1
  24. package/data/index.d.cts +3 -3
  25. package/data/index.d.ts +3 -3
  26. package/data/index.js +1 -1
  27. package/index.cjs +51 -51
  28. package/index.cjs.map +1 -1
  29. package/index.d.cts +2 -2
  30. package/index.d.ts +2 -2
  31. package/index.js +40 -40
  32. package/index.js.map +1 -1
  33. package/{matrix-Cn2jQILV.d.cts → matrix-DHFT4O8f.d.cts} +1 -1
  34. package/{matrix-C6mMH7pB.d.ts → matrix-DLipCOZF.d.ts} +1 -1
  35. package/package.json +1 -1
  36. package/std/index.cjs +1 -1
  37. package/std/index.cjs.map +1 -1
  38. package/std/index.d.cts +2 -2
  39. package/std/index.d.ts +2 -2
  40. package/std/index.js +1 -1
  41. package/std/index.js.map +1 -1
  42. package/{tgpuConstant-DzGgwe0I.d.cts → tgpuConstant-BU72w5qs.d.cts} +4 -8
  43. package/{tgpuConstant-DzGgwe0I.d.ts → tgpuConstant-BU72w5qs.d.ts} +4 -8
  44. package/chunk-A5APHF7K.cjs.map +0 -1
  45. package/chunk-LL6NPRFE.cjs +0 -7
  46. package/chunk-LL6NPRFE.cjs.map +0 -1
  47. package/chunk-PO6SIMTQ.js +0 -2
  48. package/chunk-PO6SIMTQ.js.map +0 -1
  49. package/chunk-T2GBOTUH.js +0 -7
  50. package/chunk-T2GBOTUH.js.map +0 -1
  51. package/chunk-U3CXOCRG.cjs +0 -2
  52. package/chunk-U3CXOCRG.cjs.map +0 -1
  53. package/chunk-XEUNEHAZ.js.map +0 -1
  54. /package/{chunk-6WF2EZIT.js.map → chunk-7S3IK3D4.js.map} +0 -0
  55. /package/{chunk-B254XDWG.js.map → chunk-7XFSK632.js.map} +0 -0
@@ -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 _chunkLL6NPRFEcjs = require('./chunk-LL6NPRFE.cjs');var _chunkA5APHF7Kcjs = require('./chunk-A5APHF7K.cjs');var ae=_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"bitcastU32toF32",normalImpl:(e=>typeof e=="number"?_chunkLL6NPRFEcjs.S.call(void 0, e):_chunkLL6NPRFEcjs.U.bitcastU32toF32[e.kind](e)),codegenImpl:e=>_chunkA5APHF7Kcjs.Ea`bitcast<f32>(${e})`,signature:(...e)=>{let t=_nullishCoalesce(_chunkA5APHF7Kcjs.Ia.call(void 0, e,[_chunkA5APHF7Kcjs.Sa]), () => (e));return{argTypes:t,returnType:_chunkA5APHF7Kcjs.v.call(void 0, t[0])?t[0].type==="vec2u"?_chunkA5APHF7Kcjs.Ya:t[0].type==="vec3u"?_chunkA5APHF7Kcjs.bb:_chunkA5APHF7Kcjs.gb:_chunkA5APHF7Kcjs.Va}}}),ne= exports.d =_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"bitcastU32toI32",normalImpl:(e=>typeof e=="number"?_chunkLL6NPRFEcjs.T.call(void 0, e):_chunkLL6NPRFEcjs.U.bitcastU32toI32[e.kind](e)),codegenImpl:e=>_chunkA5APHF7Kcjs.Ea`bitcast<i32>(${e})`,signature:(...e)=>{let t=_nullishCoalesce(_chunkA5APHF7Kcjs.Ia.call(void 0, e,[_chunkA5APHF7Kcjs.Sa]), () => (e));return{argTypes:t,returnType:_chunkA5APHF7Kcjs.v.call(void 0, t[0])?t[0].type==="vec2u"?_chunkA5APHF7Kcjs._a:t[0].type==="vec3u"?_chunkA5APHF7Kcjs.db:_chunkA5APHF7Kcjs.ib:_chunkA5APHF7Kcjs.Ua}}});var _typedbinary = require('typed-binary'); var m = _interopRequireWildcard(_typedbinary);var ie=_chunkA5APHF7Kcjs.Ma.call(void 0, e=>{let t=new ArrayBuffer(4);new m.BufferWriter(t).writeUint32(e);let s=new m.BufferReader(t);return _chunkA5APHF7Kcjs.Ya.call(void 0, s.readFloat16(),s.readFloat16())},e=>_chunkA5APHF7Kcjs.aa.call(void 0, _chunkA5APHF7Kcjs.Ea`unpack2x16float(${e})`,_chunkA5APHF7Kcjs.Ya),"unpack2x16float"),pe= exports.f =_chunkA5APHF7Kcjs.Ma.call(void 0, e=>{let t=new ArrayBuffer(4),l=new m.BufferWriter(t);l.writeFloat16(e.x),l.writeFloat16(e.y);let s=new m.BufferReader(t);return _chunkA5APHF7Kcjs.Sa.call(void 0, s.readUint32())},e=>_chunkA5APHF7Kcjs.aa.call(void 0, _chunkA5APHF7Kcjs.Ea`pack2x16float(${e})`,_chunkA5APHF7Kcjs.Sa),"pack2x16float"),fe= exports.g =_chunkA5APHF7Kcjs.Ma.call(void 0, e=>{let t=new ArrayBuffer(4);new m.BufferWriter(t).writeUint32(e);let s=new m.BufferReader(t);return _chunkA5APHF7Kcjs.gb.call(void 0, s.readUint8()/255,s.readUint8()/255,s.readUint8()/255,s.readUint8()/255)},e=>_chunkA5APHF7Kcjs.aa.call(void 0, _chunkA5APHF7Kcjs.Ea`unpack4x8unorm(${e})`,_chunkA5APHF7Kcjs.gb),"unpack4x8unorm"),ue= exports.h =_chunkA5APHF7Kcjs.Ma.call(void 0, e=>{let t=new ArrayBuffer(4),l=new m.BufferWriter(t);l.writeUint8(e.x*255),l.writeUint8(e.y*255),l.writeUint8(e.z*255),l.writeUint8(e.w*255);let s=new m.BufferReader(t);return _chunkA5APHF7Kcjs.Sa.call(void 0, s.readUint32())},e=>_chunkA5APHF7Kcjs.aa.call(void 0, _chunkA5APHF7Kcjs.Ea`pack4x8unorm(${e})`,_chunkA5APHF7Kcjs.Sa),"pack4x8unorm");function T(e){return e.type.includes("2")?_chunkA5APHF7Kcjs.ab:e.type.includes("3")?_chunkA5APHF7Kcjs.fb:_chunkA5APHF7Kcjs.kb}var Re=_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"allEq",signature:(...e)=>({argTypes:e,returnType:_chunkA5APHF7Kcjs.Ra}),normalImpl:(e,t)=>$(x(e,t)),codegenImpl:(e,t)=>_chunkA5APHF7Kcjs.Ea`all(${e} == ${t})`}),x=(e,t)=>_chunkLL6NPRFEcjs.U.eq[e.kind](e,t),Ae= exports.l =_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"eq",signature:(...e)=>({argTypes:e,returnType:T(e[0])}),normalImpl:x,codegenImpl:(e,t)=>_chunkA5APHF7Kcjs.Ea`(${e} == ${t})`}),Se= exports.m =_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"ne",signature:(...e)=>({argTypes:e,returnType:T(e[0])}),normalImpl:(e,t)=>d(x(e,t)),codegenImpl:(e,t)=>_chunkA5APHF7Kcjs.Ea`(${e} != ${t})`}),A=(e,t)=>_chunkLL6NPRFEcjs.U.lt[e.kind](e,t),Me= exports.n =_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"lt",signature:(...e)=>({argTypes:e,returnType:T(e[0])}),normalImpl:A,codegenImpl:(e,t)=>_chunkA5APHF7Kcjs.Ea`(${e} < ${t})`}),ze= exports.o =_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"le",signature:(...e)=>({argTypes:e,returnType:T(e[0])}),normalImpl:(e,t)=>I(A(e,t),x(e,t)),codegenImpl:(e,t)=>_chunkA5APHF7Kcjs.Ea`(${e} <= ${t})`}),we= exports.p =_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"gt",signature:(...e)=>({argTypes:e,returnType:T(e[0])}),normalImpl:(e,t)=>O(d(A(e,t)),d(x(e,t))),codegenImpl:(e,t)=>_chunkA5APHF7Kcjs.Ea`(${e} > ${t})`}),Ie= exports.q =_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"ge",signature:(...e)=>({argTypes:e,returnType:T(e[0])}),normalImpl:(e,t)=>d(A(e,t)),codegenImpl:(e,t)=>_chunkA5APHF7Kcjs.Ea`(${e} >= ${t})`}),d=e=>_chunkLL6NPRFEcjs.U.neg[e.kind](e),$e= exports.r =_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"not",signature:(...e)=>({argTypes:e,returnType:e[0]}),normalImpl:d,codegenImpl:e=>_chunkA5APHF7Kcjs.Ea`!(${e})`}),I=(e,t)=>_chunkLL6NPRFEcjs.U.or[e.kind](e,t),Ve= exports.s =_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"or",signature:(...e)=>({argTypes:e,returnType:e[0]}),normalImpl:I,codegenImpl:(e,t)=>_chunkA5APHF7Kcjs.Ea`(${e} | ${t})`}),O=(e,t)=>d(I(d(e),d(t))),Fe= exports.t =_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"and",signature:(...e)=>({argTypes:e,returnType:e[0]}),normalImpl:O,codegenImpl:(e,t)=>_chunkA5APHF7Kcjs.Ea`(${e} & ${t})`}),$=e=>_chunkLL6NPRFEcjs.U.all[e.kind](e),Ue= exports.u =_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"all",signature:(...e)=>({argTypes:e,returnType:_chunkA5APHF7Kcjs.Ra}),normalImpl:$,codegenImpl:e=>_chunkA5APHF7Kcjs.Ea`all(${e})`}),ke= exports.v =_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"any",signature:(...e)=>({argTypes:e,returnType:_chunkA5APHF7Kcjs.Ra}),normalImpl:e=>!$(d(e)),codegenImpl:e=>_chunkA5APHF7Kcjs.Ea`any(${e})`}),Ne= exports.w =_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"isCloseTo",signature:(...e)=>({argTypes:e,returnType:_chunkA5APHF7Kcjs.Ra}),normalImpl:(e,t,l=.01)=>typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<l:_chunkA5APHF7Kcjs.r.call(void 0, e)&&_chunkA5APHF7Kcjs.r.call(void 0, t)?_chunkLL6NPRFEcjs.U.isCloseToZero[e.kind](_chunkLL6NPRFEcjs.W[_chunkA5APHF7Kcjs.a].jsImpl(e,t),l):!1,codegenImpl:(e,t,l=_chunkA5APHF7Kcjs.aa.call(void 0, .01,_chunkA5APHF7Kcjs.Va))=>_chunkA5APHF7Kcjs.$.call(void 0, e)&&_chunkA5APHF7Kcjs.$.call(void 0, t)?_chunkA5APHF7Kcjs.Ea`(abs(f32(${e}) - f32(${t})) <= ${l})`:!_chunkA5APHF7Kcjs.$.call(void 0, e)&&!_chunkA5APHF7Kcjs.$.call(void 0, t)?_chunkA5APHF7Kcjs.Ea`all(abs(${e} - ${t}) <= (${e} - ${e}) + ${l})`:"false"});function j(e,t,l){return typeof l=="boolean"?l?t:e:_chunkLL6NPRFEcjs.U.select[e.kind](e,t,l)}var De=_chunkA5APHF7Kcjs.Oa.call(void 0, {name:"select",signature:(...e)=>({argTypes:e,returnType:e[0]}),normalImpl:j,codegenImpl:(e,t,l)=>_chunkA5APHF7Kcjs.Ea`select(${e}, ${t}, ${l})`});var L={r8unorm:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,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:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:1,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only"]},r8uint:{channelType:_chunkA5APHF7Kcjs.Sa,vectorType:_chunkA5APHF7Kcjs.jb,texelSize:1,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},r8sint:{channelType:_chunkA5APHF7Kcjs.Ua,vectorType:_chunkA5APHF7Kcjs.ib,texelSize:1,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},rg8unorm:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:2,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:["write-only","read-only"]},rg8snorm:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:2,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only"]},rg8uint:{channelType:_chunkA5APHF7Kcjs.Sa,vectorType:_chunkA5APHF7Kcjs.jb,texelSize:2,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rg8sint:{channelType:_chunkA5APHF7Kcjs.Ua,vectorType:_chunkA5APHF7Kcjs.ib,texelSize:2,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rgba8unorm:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,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:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:null},rgba8snorm:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rgba8uint:{channelType:_chunkA5APHF7Kcjs.Sa,vectorType:_chunkA5APHF7Kcjs.jb,texelSize:4,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},rgba8sint:{channelType:_chunkA5APHF7Kcjs.Ua,vectorType:_chunkA5APHF7Kcjs.ib,texelSize:4,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},bgra8unorm:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:["write-only"]},"bgra8unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:null},r16unorm:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:2,sampleTypes:["unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},r16snorm:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:2,sampleTypes:["unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},r16uint:{channelType:_chunkA5APHF7Kcjs.Sa,vectorType:_chunkA5APHF7Kcjs.jb,texelSize:2,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},r16sint:{channelType:_chunkA5APHF7Kcjs.Ua,vectorType:_chunkA5APHF7Kcjs.ib,texelSize:2,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},r16float:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,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:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:4,sampleTypes:["unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rg16snorm:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:4,sampleTypes:["unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rg16uint:{channelType:_chunkA5APHF7Kcjs.Sa,vectorType:_chunkA5APHF7Kcjs.jb,texelSize:4,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rg16sint:{channelType:_chunkA5APHF7Kcjs.Ua,vectorType:_chunkA5APHF7Kcjs.ib,texelSize:4,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rg16float:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:["write-only","read-only"]},rgba16unorm:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:8,sampleTypes:["unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rgba16snorm:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:8,sampleTypes:["unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rgba16uint:{channelType:_chunkA5APHF7Kcjs.Sa,vectorType:_chunkA5APHF7Kcjs.jb,texelSize:8,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},rgba16sint:{channelType:_chunkA5APHF7Kcjs.Ua,vectorType:_chunkA5APHF7Kcjs.ib,texelSize:8,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},rgba16float:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,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:_chunkA5APHF7Kcjs.Sa,vectorType:_chunkA5APHF7Kcjs.jb,texelSize:4,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},r32sint:{channelType:_chunkA5APHF7Kcjs.Ua,vectorType:_chunkA5APHF7Kcjs.ib,texelSize:4,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},r32float:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,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:_chunkA5APHF7Kcjs.Sa,vectorType:_chunkA5APHF7Kcjs.jb,texelSize:8,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only"]},rg32sint:{channelType:_chunkA5APHF7Kcjs.Ua,vectorType:_chunkA5APHF7Kcjs.ib,texelSize:8,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only"]},rg32float:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,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:_chunkA5APHF7Kcjs.Sa,vectorType:_chunkA5APHF7Kcjs.jb,texelSize:16,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},rgba32sint:{channelType:_chunkA5APHF7Kcjs.Ua,vectorType:_chunkA5APHF7Kcjs.ib,texelSize:16,sampleTypes:["sint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:["write-only","read-only","read-write"]},rgba32float:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,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:_chunkA5APHF7Kcjs.Sa,vectorType:_chunkA5APHF7Kcjs.jb,texelSize:4,sampleTypes:["uint"],aspects:["color"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:["write-only","read-only"]},rgb10a2unorm:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:["write-only","read-only"]},rg11b10ufloat:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!0,canBlend:!0,canMultisample:!0,canResolve:!0,storageBindings:["write-only","read-only"]},rgb9e5ufloat:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:4,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},stencil8:{channelType:_chunkA5APHF7Kcjs.Sa,vectorType:_chunkA5APHF7Kcjs.jb,texelSize:1,sampleTypes:["uint"],aspects:["stencil"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:null},depth16unorm:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:2,sampleTypes:["depth","unfilterable-float"],aspects:["depth"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:null},depth24plus:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:4,sampleTypes:["depth","unfilterable-float"],aspects:["depth"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:null},"depth24plus-stencil8":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:4,sampleTypes:["depth","unfilterable-float"],aspects:["depth","stencil"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:null},depth32float:{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:4,sampleTypes:["depth","unfilterable-float"],aspects:["depth"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:null},"depth32float-stencil8":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:4,sampleTypes:["depth","unfilterable-float"],aspects:["depth","stencil"],canRenderAttachment:!0,canBlend:!1,canMultisample:!0,canResolve:!1,storageBindings:null},"bc1-rgba-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc1-rgba-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc2-rgba-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc2-rgba-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc3-rgba-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc3-rgba-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc4-r-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc4-r-snorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc5-rg-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc5-rg-snorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc6h-rgb-ufloat":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc6h-rgb-float":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc7-rgba-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"bc7-rgba-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"etc2-rgb8unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"etc2-rgb8unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"etc2-rgb8a1unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"etc2-rgb8a1unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"etc2-rgba8unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"etc2-rgba8unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"eac-r11unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"eac-r11snorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:8,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"eac-rg11unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"eac-rg11snorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-4x4-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-4x4-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-5x4-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-5x4-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-5x5-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-5x5-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-6x5-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-6x5-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-6x6-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-6x6-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-8x5-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-8x5-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-8x6-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-8x6-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-8x8-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-8x8-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x5-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x5-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x6-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x6-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x8-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x8-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x10-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-10x10-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-12x10-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-12x10-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-12x12-unorm":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null},"astc-12x12-unorm-srgb":{channelType:_chunkA5APHF7Kcjs.Va,vectorType:_chunkA5APHF7Kcjs.gb,texelSize:16,sampleTypes:["float","unfilterable-float"],aspects:["color"],canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1,storageBindings:null}};function _e(e,t){let l=L[e];if(!l)throw new Error(`Unknown texture format: ${e}`);let s={...l};switch(e){case"r32float":case"rg32float":case"rgba32float":t.features.has("float32-filterable")||(s={...s,sampleTypes:l.sampleTypes.filter(S=>S!=="float")}),t.features.has("float32-blendable")||(s={...s,canBlend:!1});break;case"bgra8unorm":t.features.has("bgra8unorm-storage")||(s={...s,storageBindings:null});break;case"rg11b10ufloat":t.features.has("rg11b10ufloat-renderable")||(s={...s,canRenderAttachment:!1,canBlend:!1,canMultisample:!1,canResolve:!1});break}if(s.storageBindings){let S=t.features.has("texture-formats-tier1"),G=t.features.has("texture-formats-tier2"),g=[...s.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(R=>R!=="read-write")),C.includes(e)&&!S&&(g=g.filter(R=>R!=="write-only"&&R!=="read-only")),s={...s,storageBindings:g.length>0?g:null}}return s}var Ge=["f16","clip_distances","dual_source_blending","subgroups","primitive_index"],Pe= 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 = _e; exports.c = ae; exports.d = ne; exports.e = ie; exports.f = pe; exports.g = fe; exports.h = ue; exports.i = Ge; exports.j = Pe; exports.k = Re; exports.l = Ae; exports.m = Se; exports.n = Me; exports.o = ze; exports.p = we; exports.q = Ie; exports.r = $e; exports.s = Ve; exports.t = Fe; exports.u = Ue; exports.v = ke; exports.w = Ne; exports.x = De;
2
- //# sourceMappingURL=chunk-U3CXOCRG.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/iwo/Projects/wigsill/packages/typegpu/dist/chunk-U3CXOCRG.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","textureFormats","vec4u","getDeviceTextureFormatInfo","format","device","baseInfo"],"mappings":"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","file":"/Users/iwo/Projects/wigsill/packages/typegpu/dist/chunk-U3CXOCRG.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 { 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: (...argTypes) => ({ argTypes, returnType: argTypes[0] }),\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"]}