UNPKG

webgpu-memory

Version:
3 lines (2 loc) 23.1 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).webgpuMemory={})}(this,(function(e){"use strict";const t={blockWidth:void 0,blockHeight:void 0,color:void 0,depth:void 0,stencil:void 0,colorRender:void 0,multisample:void 0,feature:void 0,baseFormat:void 0,bytesPerBlock:void 0};function o({defaults:e,table:o}){return Object.fromEntries(Object.entries(o).map((([o,r])=>[o,{...t,...e,...r}])))}const r=o({defaults:{blockWidth:1,blockHeight:1},table:{r8unorm:{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:1},colorRender:{blend:!0,resolve:!0,byteCost:1,alignment:1},multisample:!0,get bytesPerBlock(){return this.color.bytes}},r8snorm:{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:1},multisample:!1,get bytesPerBlock(){return this.color.bytes}},r8uint:{color:{type:"uint",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:1},colorRender:{blend:!1,resolve:!1,byteCost:1,alignment:1},multisample:!0,get bytesPerBlock(){return this.color.bytes}},r8sint:{color:{type:"sint",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:1},colorRender:{blend:!1,resolve:!1,byteCost:1,alignment:1},multisample:!0,get bytesPerBlock(){return this.color.bytes}},rg8unorm:{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:2},colorRender:{blend:!0,resolve:!0,byteCost:2,alignment:1},multisample:!0,get bytesPerBlock(){return this.color.bytes}},rg8snorm:{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:2},multisample:!1,get bytesPerBlock(){return this.color.bytes}},rg8uint:{color:{type:"uint",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:2},colorRender:{blend:!1,resolve:!1,byteCost:2,alignment:1},multisample:!0,get bytesPerBlock(){return this.color.bytes}},rg8sint:{color:{type:"sint",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:2},colorRender:{blend:!1,resolve:!1,byteCost:2,alignment:1},multisample:!0,get bytesPerBlock(){return this.color.bytes}},rgba8unorm:{color:{type:"float",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!1,bytes:4},colorRender:{blend:!0,resolve:!0,byteCost:8,alignment:1},multisample:!0,baseFormat:"rgba8unorm",get bytesPerBlock(){return this.color.bytes}},"rgba8unorm-srgb":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:4},colorRender:{blend:!0,resolve:!0,byteCost:8,alignment:1},multisample:!0,baseFormat:"rgba8unorm",get bytesPerBlock(){return this.color.bytes}},rgba8snorm:{color:{type:"float",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!1,bytes:4},multisample:!1,get bytesPerBlock(){return this.color.bytes}},rgba8uint:{color:{type:"uint",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!1,bytes:4},colorRender:{blend:!1,resolve:!1,byteCost:4,alignment:1},multisample:!0,get bytesPerBlock(){return this.color.bytes}},rgba8sint:{color:{type:"sint",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!1,bytes:4},colorRender:{blend:!1,resolve:!1,byteCost:4,alignment:1},multisample:!0,get bytesPerBlock(){return this.color.bytes}},bgra8unorm:{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:4},colorRender:{blend:!0,resolve:!0,byteCost:8,alignment:1},multisample:!0,baseFormat:"bgra8unorm",get bytesPerBlock(){return this.color.bytes}},"bgra8unorm-srgb":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:4},colorRender:{blend:!0,resolve:!0,byteCost:8,alignment:1},multisample:!0,baseFormat:"bgra8unorm",get bytesPerBlock(){return this.color.bytes}},r16uint:{color:{type:"uint",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:2},colorRender:{blend:!1,resolve:!1,byteCost:2,alignment:2},multisample:!0,get bytesPerBlock(){return this.color.bytes}},r16sint:{color:{type:"sint",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:2},colorRender:{blend:!1,resolve:!1,byteCost:2,alignment:2},multisample:!0,get bytesPerBlock(){return this.color.bytes}},r16float:{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:2},colorRender:{blend:!0,resolve:!0,byteCost:2,alignment:2},multisample:!0,get bytesPerBlock(){return this.color.bytes}},rg16uint:{color:{type:"uint",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:4},colorRender:{blend:!1,resolve:!1,byteCost:4,alignment:2},multisample:!0,get bytesPerBlock(){return this.color.bytes}},rg16sint:{color:{type:"sint",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:4},colorRender:{blend:!1,resolve:!1,byteCost:4,alignment:2},multisample:!0,get bytesPerBlock(){return this.color.bytes}},rg16float:{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:4},colorRender:{blend:!0,resolve:!0,byteCost:4,alignment:2},multisample:!0,get bytesPerBlock(){return this.color.bytes}},rgba16uint:{color:{type:"uint",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!1,bytes:8},colorRender:{blend:!1,resolve:!1,byteCost:8,alignment:2},multisample:!0,get bytesPerBlock(){return this.color.bytes}},rgba16sint:{color:{type:"sint",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!1,bytes:8},colorRender:{blend:!1,resolve:!1,byteCost:8,alignment:2},multisample:!0,get bytesPerBlock(){return this.color.bytes}},rgba16float:{color:{type:"float",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!1,bytes:8},colorRender:{blend:!0,resolve:!0,byteCost:8,alignment:2},multisample:!0,get bytesPerBlock(){return this.color.bytes}},r32uint:{color:{type:"uint",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!0,bytes:4},colorRender:{blend:!1,resolve:!1,byteCost:4,alignment:4},multisample:!1,get bytesPerBlock(){return this.color.bytes}},r32sint:{color:{type:"sint",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!0,bytes:4},colorRender:{blend:!1,resolve:!1,byteCost:4,alignment:4},multisample:!1,get bytesPerBlock(){return this.color.bytes}},r32float:{color:{type:"unfilterable-float",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!0,bytes:4},colorRender:{blend:!1,resolve:!1,byteCost:4,alignment:4},multisample:!0,get bytesPerBlock(){return this.color.bytes}},rg32uint:{color:{type:"uint",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!1,bytes:8},colorRender:{blend:!1,resolve:!1,byteCost:8,alignment:4},multisample:!1,get bytesPerBlock(){return this.color.bytes}},rg32sint:{color:{type:"sint",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!1,bytes:8},colorRender:{blend:!1,resolve:!1,byteCost:8,alignment:4},multisample:!1,get bytesPerBlock(){return this.color.bytes}},rg32float:{color:{type:"unfilterable-float",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!1,bytes:8},colorRender:{blend:!1,resolve:!1,byteCost:8,alignment:4},multisample:!1,get bytesPerBlock(){return this.color.bytes}},rgba32uint:{color:{type:"uint",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!1,bytes:16},colorRender:{blend:!1,resolve:!1,byteCost:16,alignment:4},multisample:!1,get bytesPerBlock(){return this.color.bytes}},rgba32sint:{color:{type:"sint",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!1,bytes:16},colorRender:{blend:!1,resolve:!1,byteCost:16,alignment:4},multisample:!1,get bytesPerBlock(){return this.color.bytes}},rgba32float:{color:{type:"unfilterable-float",copySrc:!0,copyDst:!0,storage:!0,readWriteStorage:!1,bytes:16},colorRender:{blend:!1,resolve:!1,byteCost:16,alignment:4},multisample:!1,get bytesPerBlock(){return this.color.bytes}},rgb10a2uint:{color:{type:"uint",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:4},colorRender:{blend:!1,resolve:!1,byteCost:8,alignment:4},multisample:!0,get bytesPerBlock(){return this.color.bytes}},rgb10a2unorm:{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:4},colorRender:{blend:!0,resolve:!0,byteCost:8,alignment:4},multisample:!0,get bytesPerBlock(){return this.color.bytes}},rg11b10ufloat:{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:4},colorRender:{blend:!0,resolve:!0,byteCost:8,alignment:4},multisample:!0,get bytesPerBlock(){return this.color.bytes}},rgb9e5ufloat:{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:4},multisample:!1,get bytesPerBlock(){return this.color.bytes}}}}),s=o({defaults:{blockWidth:1,blockHeight:1,multisample:!0},table:{stencil8:{stencil:{type:"uint",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:1},bytesPerBlock:1},depth16unorm:{depth:{type:"depth",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:2},bytesPerBlock:2},depth32float:{depth:{type:"depth",copySrc:!0,copyDst:!1,storage:!1,readWriteStorage:!1,bytes:4},bytesPerBlock:4}}}),c=o({defaults:{blockWidth:1,blockHeight:1,multisample:!0},table:{depth24plus:{depth:{type:"depth",copySrc:!1,copyDst:!1,storage:!1,readWriteStorage:!1,bytes:void 0},bytesPerBlock:4},"depth24plus-stencil8":{depth:{type:"depth",copySrc:!1,copyDst:!1,storage:!1,readWriteStorage:!1,bytes:void 0},stencil:{type:"uint",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:1},bytesPerBlock:4},"depth32float-stencil8":{depth:{type:"depth",copySrc:!0,copyDst:!1,storage:!1,readWriteStorage:!1,bytes:4},stencil:{type:"uint",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:1},feature:"depth32float-stencil8",bytesPerBlock:5}}}),a=o({defaults:{blockWidth:4,blockHeight:4,multisample:!1,feature:"texture-compression-bc"},table:{"bc1-rgba-unorm":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:8},baseFormat:"bc1-rgba-unorm",get bytesPerBlock(){return this.color.bytes}},"bc1-rgba-unorm-srgb":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:8},baseFormat:"bc1-rgba-unorm",get bytesPerBlock(){return this.color.bytes}},"bc2-rgba-unorm":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"bc2-rgba-unorm",get bytesPerBlock(){return this.color.bytes}},"bc2-rgba-unorm-srgb":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"bc2-rgba-unorm",get bytesPerBlock(){return this.color.bytes}},"bc3-rgba-unorm":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"bc3-rgba-unorm",get bytesPerBlock(){return this.color.bytes}},"bc3-rgba-unorm-srgb":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"bc3-rgba-unorm",get bytesPerBlock(){return this.color.bytes}},"bc4-r-unorm":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:8},get bytesPerBlock(){return this.color.bytes}},"bc4-r-snorm":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:8},get bytesPerBlock(){return this.color.bytes}},"bc5-rg-unorm":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},get bytesPerBlock(){return this.color.bytes}},"bc5-rg-snorm":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},get bytesPerBlock(){return this.color.bytes}},"bc6h-rgb-ufloat":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},get bytesPerBlock(){return this.color.bytes}},"bc6h-rgb-float":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},get bytesPerBlock(){return this.color.bytes}},"bc7-rgba-unorm":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"bc7-rgba-unorm",get bytesPerBlock(){return this.color.bytes}},"bc7-rgba-unorm-srgb":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"bc7-rgba-unorm",get bytesPerBlock(){return this.color.bytes}}}}),l=o({defaults:{blockWidth:4,blockHeight:4,multisample:!1,feature:"texture-compression-etc2"},table:{"etc2-rgb8unorm":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:8},baseFormat:"etc2-rgb8unorm",get bytesPerBlock(){return this.color.bytes}},"etc2-rgb8unorm-srgb":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:8},baseFormat:"etc2-rgb8unorm",get bytesPerBlock(){return this.color.bytes}},"etc2-rgb8a1unorm":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:8},baseFormat:"etc2-rgb8a1unorm",get bytesPerBlock(){return this.color.bytes}},"etc2-rgb8a1unorm-srgb":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:8},baseFormat:"etc2-rgb8a1unorm",get bytesPerBlock(){return this.color.bytes}},"etc2-rgba8unorm":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"etc2-rgba8unorm",get bytesPerBlock(){return this.color.bytes}},"etc2-rgba8unorm-srgb":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"etc2-rgba8unorm",get bytesPerBlock(){return this.color.bytes}},"eac-r11unorm":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:8},get bytesPerBlock(){return this.color.bytes}},"eac-r11snorm":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:8},get bytesPerBlock(){return this.color.bytes}},"eac-rg11unorm":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},get bytesPerBlock(){return this.color.bytes}},"eac-rg11snorm":{color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},get bytesPerBlock(){return this.color.bytes}}}}),y=o({defaults:{multisample:!1,feature:"texture-compression-astc"},table:{"astc-4x4-unorm":{blockWidth:4,blockHeight:4,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-4x4-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-4x4-unorm-srgb":{blockWidth:4,blockHeight:4,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-4x4-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-5x4-unorm":{blockWidth:5,blockHeight:4,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-5x4-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-5x4-unorm-srgb":{blockWidth:5,blockHeight:4,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-5x4-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-5x5-unorm":{blockWidth:5,blockHeight:5,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-5x5-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-5x5-unorm-srgb":{blockWidth:5,blockHeight:5,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-5x5-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-6x5-unorm":{blockWidth:6,blockHeight:5,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-6x5-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-6x5-unorm-srgb":{blockWidth:6,blockHeight:5,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-6x5-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-6x6-unorm":{blockWidth:6,blockHeight:6,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-6x6-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-6x6-unorm-srgb":{blockWidth:6,blockHeight:6,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-6x6-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-8x5-unorm":{blockWidth:8,blockHeight:5,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-8x5-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-8x5-unorm-srgb":{blockWidth:8,blockHeight:5,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-8x5-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-8x6-unorm":{blockWidth:8,blockHeight:6,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-8x6-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-8x6-unorm-srgb":{blockWidth:8,blockHeight:6,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-8x6-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-8x8-unorm":{blockWidth:8,blockHeight:8,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-8x8-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-8x8-unorm-srgb":{blockWidth:8,blockHeight:8,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-8x8-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-10x5-unorm":{blockWidth:10,blockHeight:5,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-10x5-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-10x5-unorm-srgb":{blockWidth:10,blockHeight:5,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-10x5-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-10x6-unorm":{blockWidth:10,blockHeight:6,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-10x6-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-10x6-unorm-srgb":{blockWidth:10,blockHeight:6,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-10x6-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-10x8-unorm":{blockWidth:10,blockHeight:8,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-10x8-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-10x8-unorm-srgb":{blockWidth:10,blockHeight:8,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-10x8-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-10x10-unorm":{blockWidth:10,blockHeight:10,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-10x10-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-10x10-unorm-srgb":{blockWidth:10,blockHeight:10,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-10x10-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-12x10-unorm":{blockWidth:12,blockHeight:10,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-12x10-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-12x10-unorm-srgb":{blockWidth:12,blockHeight:10,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-12x10-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-12x12-unorm":{blockWidth:12,blockHeight:12,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-12x12-unorm",get bytesPerBlock(){return this.color.bytes}},"astc-12x12-unorm-srgb":{blockWidth:12,blockHeight:12,color:{type:"float",copySrc:!0,copyDst:!0,storage:!1,readWriteStorage:!1,bytes:16},baseFormat:"astc-12x12-unorm",get bytesPerBlock(){return this.color.bytes}}}}),b={...r,...s,...c,...a,...l,...y},n=Symbol("webgpu-memory-object-id"),i=new Map;let g=1;const p=new Map;let u=0,m=0;function d(e,t,o,r){let s=t[n];s||(s=g++,t[n]=s);const c=e[n],a={ref:new WeakRef(t),id:s,deviceId:c,category:o,size:r};if(p.set(s,a),"function"==typeof r&&(r=r(t),a.oldSize=r),!isNaN(r)){h(p.get(c),r)}}function h(e,t){e.runningTotal=(e.runningTotal??0)+t,e.maxTotal=Math.max(e.maxTotal??0,e.runningTotal),u+=t,m=Math.max(m,u)}function S(e,t,o,r){d(e,t,o,r)}function f(e){const t=i.get(e);return t&&!!t.deref()}function k(e,t){const o=p.get(e),r=o?.size,s=t&&"function"==typeof r?r(t):r;if(!isNaN(s)){const e=p.get(o.deviceId);e&&h(e,-s)}p.delete(e)}function P(e){k(e[n],e)}function W(e){const t={total:0,buffer:0,texture:0,querySet:0,canvas:0,maxTotal:0},o={buffer:0,texture:0,querySet:0},r={memory:t,resources:o},s=e&&e[n],c=[];for(const[e,r]of p.entries()){const{ref:a,deviceId:l,category:y,size:b}=r,n=a.deref();if(n&&f(l)){if(!s||l===s){if(o[y]=(o[y]||0)+1,b){const e="function"==typeof b?b(n):b;t.total+=e,t[y]+=e}"device"===y&&(t.maxTotal+=r.maxTotal)}}else c.push(e)}return e||(t.maxTotal=m),c.forEach((e=>k(e))),r}function D(e){const{blockWidth:t,blockHeight:o,bytesPerBlock:r}=b[e.format];let s=0,c=e.width,a=e.height,l=e.depthOrArrayLayers;for(let y=0;y<e.mipLevelCount;++y){s+=Math.ceil(c*e.sampleCount/t)*Math.ceil(a*e.sampleCount/o)*l*r,c=Math.max(1,c/2|0),a=Math.max(1,a/2|0),l="3d"===e.dimension?Math.max(1,l/2|0):l}return s}function B(e,t,o){const r=e.prototype[t];e.prototype[t]=function(...e){const t=r.call(this,...e);return o(this,t,...e),t}}function x(e,t,o,r){B(e,o,(function(e,t){d(e,t,r,0)})),t.prototype.destroy&&B(t,"destroy",(function(e){P(e)}))}"undefined"!=typeof GPUAdapter&&(!function(e,t,o){const r=e.prototype[t];e.prototype[t]=async function(...e){const t=await r.call(this,...e);return o(this,t,...e),t}}(GPUAdapter,"requestDevice",(function(e,t){S(t,t,"device",0);const o=t[n];i.set(o,new WeakRef(t))})),B(GPUDevice,"destroy",(function(e){const t=e[n];i.delete(t),P(e)})),B(GPUCanvasContext,"configure",(function(e,t,o){P(e);const r=o.format;S(o.device,e,"canvas",(e=>function(e,t){const{width:o,height:r}=e.canvas;return 2*D({format:t,width:o,height:r,depthOrArrayLayers:1,sampleCount:1,mipLevelCount:1,dimension:"2d"})}(e,r)))})),B(GPUCanvasContext,"unconfigure",(function(e){P(e)})),B(GPUCanvasContext,"getCurrentTexture",(function(e){const t=e[n],o=p.get(t),r=p.get(o.deviceId);h(r,-o.oldSize);const s=o.size(e);o.oldSize=s,h(r,s)})),B(GPUDevice,"createBuffer",(function(e,t){S(e,t,"buffer",t.size)})),B(GPUBuffer,"destroy",(function(e){P(e)})),B(GPUDevice,"createTexture",(function(e,t){S(e,t,"texture",D(t))})),B(GPUTexture,"destroy",(function(e){P(e)})),B(GPUDevice,"createQuerySet",(function(e,t){S(e,t,"querySet",8*t.count)})),B(GPUQuerySet,"destroy",(function(e){P(e)})),x(GPUDevice,GPUSampler,"createSampler","sampler"),x(GPUDevice,GPUBindGroup,"createBindGroup","bindGroup"),x(GPUDevice,GPUBindGroupLayout,"createBindGroupLayout","bindGroupLayout"),x(GPUDevice,GPUPipelineLayout,"createPipelineLayout","pipelineLayout"),x(GPUDevice,GPUShaderModule,"createShaderModule","shaderModule"),x(GPUDevice,GPUComputePipeline,"createComputePipeline","computePipeline"),x(GPUDevice,GPURenderPipeline,"createRenderPipeline","renderPipeline"),x(GPUDevice,GPUComputePipeline,"createComputePipelineAsync","computePipeline"),x(GPUDevice,GPURenderPipeline,"createRenderPipelineAsync","renderPipeline")),e.getWebGPUMemoryUsage=W,e.resetMaxTotal=function(e){const t=e?[e]:[];let o=0;if(!e)for(const[e,{ref:o,category:r}]of p.entries())if("device"===r){const e=o.deref();e&&t.push(e)}for(const e of t){const t=W(e),r=e[n],s=p.get(r);if(s){const{total:e}=t.memory;s.maxTotal=e,o+=e}}e||(u=o,m=o)}})); //# sourceMappingURL=webgpu-memory.min.js.map