GPUDevice

class

class GPUDevice extends EventTarget implements GPUObjectBase

The primary interface for interacting with a WebGPU device.

Example

// Request a GPU adapter from the browser/Ende
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

label

label: string

lost

readonly lost: Promise<GPUDeviceLostInfo>

features

readonly features: GPUSupportedFeatures

limits

readonly limits: GPUSupportedLimits

adapterInfo

readonly adapterInfo: GPUAdapterInfo

queue

readonly queue: GPUQueue

Methods

pushErrorScope

pushErrorScope(filter: GPUErrorFilter): undefined

popErrorScope

popErrorScope(): Promise<GPUError | null>

destroy

destroy(): undefined

createBuffer

createBuffer(descriptor: GPUBufferDescriptor): GPUBuffer

createTexture

createTexture(descriptor: GPUTextureDescriptor): GPUTexture

createSampler

createSampler(descriptor?: GPUSamplerDescriptor): GPUSampler

createBindGroupLayout

createBindGroupLayout(descriptor: GPUBindGroupLayoutDescriptor): GPUBindGroupLayout

createPipelineLayout

createPipelineLayout(descriptor: GPUPipelineLayoutDescriptor): GPUPipelineLayout

createBindGroup

createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup

createShaderModule

createShaderModule(descriptor: GPUShaderModuleDescriptor): GPUShaderModule

createComputePipeline

createComputePipeline(descriptor: GPUComputePipelineDescriptor): GPUComputePipeline

createRenderPipeline

createRenderPipeline(descriptor: GPURenderPipelineDescriptor): GPURenderPipeline

createComputePipelineAsync

createComputePipelineAsync(descriptor: GPUComputePipelineDescriptor): Promise<GPUComputePipeline>

createRenderPipelineAsync

createRenderPipelineAsync(descriptor: GPURenderPipelineDescriptor): Promise<GPURenderPipeline>

createCommandEncoder

createCommandEncoder(descriptor?: GPUCommandEncoderDescriptor): GPUCommandEncoder

createRenderBundleEncoder

createRenderBundleEncoder(descriptor: GPURenderBundleEncoderDescriptor): GPURenderBundleEncoder

createQuerySet

createQuerySet(descriptor: GPUQuerySetDescriptor): GPUQuerySet