GPUDevice
class
class GPUDevice extends EventTarget implements GPUObjectBaseThe 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: stringlost
readonly lost: Promise<GPUDeviceLostInfo>features
readonly features: GPUSupportedFeatureslimits
readonly limits: GPUSupportedLimitsadapterInfo
readonly adapterInfo: GPUAdapterInfoqueue
readonly queue: GPUQueueMethods
pushErrorScope
pushErrorScope(filter: GPUErrorFilter): undefinedpopErrorScope
popErrorScope(): Promise<GPUError | null>destroy
destroy(): undefinedcreateBuffer
createBuffer(descriptor: GPUBufferDescriptor): GPUBuffercreateTexture
createTexture(descriptor: GPUTextureDescriptor): GPUTexturecreateSampler
createSampler(descriptor?: GPUSamplerDescriptor): GPUSamplercreateBindGroupLayout
createBindGroupLayout(descriptor: GPUBindGroupLayoutDescriptor): GPUBindGroupLayoutcreatePipelineLayout
createPipelineLayout(descriptor: GPUPipelineLayoutDescriptor): GPUPipelineLayoutcreateBindGroup
createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroupcreateShaderModule
createShaderModule(descriptor: GPUShaderModuleDescriptor): GPUShaderModulecreateComputePipeline
createComputePipeline(descriptor: GPUComputePipelineDescriptor): GPUComputePipelinecreateRenderPipeline
createRenderPipeline(descriptor: GPURenderPipelineDescriptor): GPURenderPipelinecreateComputePipelineAsync
createComputePipelineAsync(descriptor: GPUComputePipelineDescriptor): Promise<GPUComputePipeline>createRenderPipelineAsync
createRenderPipelineAsync(descriptor: GPURenderPipelineDescriptor): Promise<GPURenderPipeline>createCommandEncoder
createCommandEncoder(descriptor?: GPUCommandEncoderDescriptor): GPUCommandEncodercreateRenderBundleEncoder
createRenderBundleEncoder(descriptor: GPURenderBundleEncoderDescriptor): GPURenderBundleEncodercreateQuerySet
createQuerySet(descriptor: GPUQuerySetDescriptor): GPUQuerySet