class GPUDevice
implements GPUObjectBase
extends EventTarget
The primary interface for interacting with a WebGPU device.
Examples #
#
// Request a GPU adapter from the browser/Deno
const adapter = await navigator.gpu.requestAdapter();
if (!adapter) throw new Error("WebGPU not supported");
// Request a device from the adapter
const device = await adapter.requestDevice();
// Create a buffer on the GPU
const buffer = device.createBuffer({
size: 128,
usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST,
});
// Use device.queue to submit commands
device.queue.writeBuffer(buffer, 0, new Uint8Array([1, 2, 3, 4]));
Properties #
#adapterInfo: GPUAdapterInfo
readonly
#features: GPUSupportedFeatures
readonly
#limits: GPUSupportedLimits
readonly
#lost: Promise<GPUDeviceLostInfo>
readonly
Methods #
#createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup
#createBuffer(descriptor: GPUBufferDescriptor): GPUBuffer
#createCommandEncoder(descriptor?: GPUCommandEncoderDescriptor): GPUCommandEncoder
#createComputePipelineAsync(descriptor: GPUComputePipelineDescriptor): Promise<GPUComputePipeline>
#createQuerySet(descriptor: GPUQuerySetDescriptor): GPUQuerySet
#createRenderPipelineAsync(descriptor: GPURenderPipelineDescriptor): Promise<GPURenderPipeline>
#createSampler(descriptor?: GPUSamplerDescriptor): GPUSampler
#createShaderModule(descriptor: GPUShaderModuleDescriptor): GPUShaderModule
#createTexture(descriptor: GPUTextureDescriptor): GPUTexture
#popErrorScope(): Promise<GPUError | null>
#pushErrorScope(filter: GPUErrorFilter): undefined