constructor(memory, device) {
	        // internal data
	        this.bufferTable = [undefined];
	        this.bufferTableFreeId = [];
	        this.podArgStagingBuffers = [];
	        this.canvasRenderManager = undefined;
	        // number of pod arg staging buffers
	        this.maxNumPodArgsStagingBuffers = 2;
	        // flags for debugging
	        // stats of the runtime.
	        // peak allocation
	        this.peakAllocatedBytes = 0;
	        // current allocation
	        this.currAllocatedBytes = 0;
	        // all allocation(ignoring free)
	        this.allAllocatedBytes = 0;
	        // shader submit counter
	        this.shaderSubmitCounter = 0;
	        // limite number of shaders to be submitted, useful for debugging, default to -1
	        this.debugShaderSubmitLimit = -1;
	        // log and sync each step
	        this.debugLogFinish = false;
	        this.memory = memory;
	        this.device = device;
	    }
WebGPU context
Manages all the webgpu resources here.