Spec-Zone.ru › Deno 2

GPU

GPU programming and rendering. Efficiently use a device’s graphics processing unit (GPU) for high-performance computations and complex image rendering.

Eg GPUDevice


class GPU

The entry point to WebGPU in Deno, accessed via the global navigator.gpu property.

Examples

// Basic WebGPU initialization in Deno
const gpu = navigator.gpu;
if (!gpu) {
  console.error("WebGPU not supported in this Deno environment");
  Deno.exit(1);
}

// Request an adapter (physical GPU device)
const adapter = await gpu.requestAdapter();
if (!adapter) {
  console.error("Couldn't request WebGPU adapter");
  Deno.exit(1);
}

// Get the preferred format for canvas rendering
// Useful when working with canvas in browser/Deno environments
const preferredFormat = gpu.getPreferredCanvasFormat();
console.log(`Preferred canvas format: ${preferredFormat}`);

// Create a device with default settings
const device = await adapter.requestDevice();
console.log("WebGPU device created successfully");

Methods

getPreferredCanvasFormat(): GPUTextureFormat
requestAdapter(options?: GPURequestAdapterOptions): Promise<GPUAdapter | null>

class GPUAdapter

Represents a physical GPU device that can be used to create a logical GPU device.

Examples

// Request an adapter with specific power preference
const adapter = await navigator.gpu.requestAdapter({
  powerPreference: "high-performance"
});

if (!adapter) {
  console.error("WebGPU not supported or no appropriate adapter found");
  Deno.exit(1);
}

// Check adapter capabilities
if (adapter.features.has("shader-f16")) {
  console.log("Adapter supports 16-bit shader operations");
}

console.log(`Maximum buffer size: ${adapter.limits.maxBufferSize} bytes`);

// Get adapter info (vendor, device, etc.)
console.log(`GPU Vendor: ${adapter.info.vendor}`);
console.log(`GPU Device: ${adapter.info.device}`);

// Request a logical device with specific features and limits
const device = await adapter.requestDevice({
  requiredFeatures: ["shader-f16"],
  requiredLimits: {
    maxStorageBufferBindingSize: 128 * 1024 * 1024, // 128MB
  }
});

Properties

features: GPUSupportedFeatures
readonly
info: GPUAdapterInfo
readonly
limits: GPUSupportedLimits
readonly

Methods

requestDevice(descriptor?: GPUDeviceDescriptor): Promise<GPUDevice>

class GPUAdapterInfo

Properties

architecture: string
readonly
description: string
readonly
device: string
readonly
isFallbackAdapter: boolean
readonly
subgroupMaxSize: number
readonly
subgroupMinSize: number
readonly
vendor: string
readonly

class GPUBindGroup

implements GPUObjectBase

Properties

label: string

class GPUBindGroupLayout

implements GPUObjectBase

Properties

label: string

class GPUBuffer

implements GPUObjectBase

Represents a block of memory allocated on the GPU.

Examples

// Create a buffer that can be used as a vertex buffer and can be written to
const vertexBuffer = device.createBuffer({
  label: "Vertex Buffer",
  size: vertices.byteLength,
  usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
});

// Write data to the buffer
device.queue.writeBuffer(vertexBuffer, 0, vertices);

// Example of creating a mapped buffer for CPU access
const stagingBuffer = device.createBuffer({
  size: data.byteLength,
  usage: GPUBufferUsage.MAP_WRITE | GPUBufferUsage.COPY_SRC,
  mappedAtCreation: true,
});

// Copy data to the mapped buffer
new Uint8Array(stagingBuffer.getMappedRange()).set(data);
stagingBuffer.unmap();

Properties

label: string
mapState: GPUBufferMapState
readonly
size: number
readonly
usage: GPUFlagsConstant
readonly

Methods

destroy(): undefined
getMappedRange(
offset?: number,
size?: number,
): ArrayBuffer
mapAsync(
mode: GPUMapModeFlags,
offset?: number,
size?: number,
): Promise<undefined>
unmap(): undefined

class GPUBufferUsage

Static Properties

COPY_DST: 8
COPY_SRC: 4
INDEX: 16
INDIRECT: 256
MAP_READ: 1
MAP_WRITE: 2
QUERY_RESOLVE: 512
STORAGE: 128
UNIFORM: 64
VERTEX: 32

class GPUColorWrite

Static Properties

ALL: 15
ALPHA: 8
BLUE: 4
GREEN: 2
RED: 1

class GPUCommandBuffer

implements GPUObjectBase

Properties

label: string

class GPUCommandEncoder

implements GPUObjectBase

Used to record GPU commands for later execution by the GPU.

Examples

// Create a command encoder
const commandEncoder = device.createCommandEncoder({
  label: "Main Command Encoder"
});

// Record a copy from one buffer to another
commandEncoder.copyBufferToBuffer(
  sourceBuffer, 0, // Source buffer and offset
  destinationBuffer, 0, // Destination buffer and offset
  sourceBuffer.size // Size to copy
);

// Begin a compute pass to execute a compute shader
const computePass = commandEncoder.beginComputePass();
computePass.setPipeline(computePipeline);
computePass.setBindGroup(0, bindGroup);
computePass.dispatchWorkgroups(32, 1, 1); // Run 32 workgroups
computePass.end();

// Begin a render pass to draw to a texture
const renderPass = commandEncoder.beginRenderPass({
  colorAttachments: [{
    view: textureView,
    clearValue: { r: 0.0, g: 0.0, b: 0.0, a: 1.0 },
    loadOp: "clear",
    storeOp: "store"
  }]
});
renderPass.setPipeline(renderPipeline);
renderPass.draw(3, 1, 0, 0); // Draw a triangle
renderPass.end();

// Finish encoding and submit to GPU
const commandBuffer = commandEncoder.finish();
device.queue.submit([commandBuffer]);

Properties

label: string

Methods

beginComputePass(descriptor?: GPUComputePassDescriptor): GPUComputePassEncoder
beginRenderPass(descriptor: GPURenderPassDescriptor): GPURenderPassEncoder
clearBuffer(
destination: GPUBuffer,
destinationOffset?: number,
size?: number,
): undefined
copyBufferToBuffer(
source: GPUBuffer,
sourceOffset: number,
destination: GPUBuffer,
destinationOffset: number,
size: number,
): undefined
copyBufferToTexture(
source: GPUTexelCopyBufferInfo,
destination: GPUTexelCopyTextureInfo,
copySize: GPUExtent3D,
): undefined
copyTextureToBuffer(
source: GPUTexelCopyTextureInfo,
destination: GPUTexelCopyBufferInfo,
copySize: GPUExtent3D,
): undefined
copyTextureToTexture(
source: GPUTexelCopyTextureInfo,
destination: GPUTexelCopyTextureInfo,
copySize: GPUExtent3D,
): undefined
finish(descriptor?: GPUCommandBufferDescriptor): GPUCommandBuffer
insertDebugMarker(markerLabel: string): undefined
popDebugGroup(): undefined
pushDebugGroup(groupLabel: string): undefined
resolveQuerySet(
querySet: GPUQuerySet,
firstQuery: number,
queryCount: number,
destination: GPUBuffer,
destinationOffset: number,
): undefined
writeTimestamp(
querySet: GPUQuerySet,
queryIndex: number,
): undefined

class GPUCompilationInfo

Properties

messages: ReadonlyArray<GPUCompilationMessage>
readonly

class GPUCompilationMessage

Properties

length: number
readonly
lineNum: number
readonly
linePos: number
readonly
message: string
readonly
offset: number
readonly
type: GPUCompilationMessageType
readonly

class GPUComputePassEncoder

implements GPUObjectBase, GPUProgrammablePassEncoder

Properties

label: string

Methods

dispatchWorkgroups(
x: number,
y?: number,
z?: number,
): undefined
dispatchWorkgroupsIndirect(
indirectBuffer: GPUBuffer,
indirectOffset: number,
): undefined
end(): undefined
insertDebugMarker(markerLabel: string): undefined
popDebugGroup(): undefined
pushDebugGroup(groupLabel: string): undefined
setBindGroup(
index: number,
bindGroup: GPUBindGroup | null,
dynamicOffsets?: number[],
): undefined
setBindGroup(
index: number,
bindGroup: GPUBindGroup | null,
dynamicOffsetsData: Uint32Array,
dynamicOffsetsDataStart: number,
dynamicOffsetsDataLength: number,
): undefined
setPipeline(pipeline: GPUComputePipeline): undefined

class GPUComputePipeline

implements GPUObjectBase, GPUPipelineBase

Properties

label: string

Methods

getBindGroupLayout(index: number): GPUBindGroupLayout

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
label: string
limits: GPUSupportedLimits
readonly
lost: Promise<GPUDeviceLostInfo>
readonly
queue: GPUQueue
readonly

Methods

createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup
createBindGroupLayout(descriptor: GPUBindGroupLayoutDescriptor): GPUBindGroupLayout
createBuffer(descriptor: GPUBufferDescriptor): GPUBuffer
createCommandEncoder(descriptor?: GPUCommandEncoderDescriptor): GPUCommandEncoder
createComputePipeline(descriptor: GPUComputePipelineDescriptor): GPUComputePipeline
createComputePipelineAsync(descriptor: GPUComputePipelineDescriptor): Promise<GPUComputePipeline>
createPipelineLayout(descriptor: GPUPipelineLayoutDescriptor): GPUPipelineLayout
createQuerySet(descriptor: GPUQuerySetDescriptor): GPUQuerySet
createRenderBundleEncoder(descriptor: GPURenderBundleEncoderDescriptor): GPURenderBundleEncoder
createRenderPipeline(descriptor: GPURenderPipelineDescriptor): GPURenderPipeline
createRenderPipelineAsync(descriptor: GPURenderPipelineDescriptor): Promise<GPURenderPipeline>
createSampler(descriptor?: GPUSamplerDescriptor): GPUSampler
createShaderModule(descriptor: GPUShaderModuleDescriptor): GPUShaderModule
createTexture(descriptor: GPUTextureDescriptor): GPUTexture
destroy(): undefined
popErrorScope(): Promise<GPUError | null>
pushErrorScope(filter: GPUErrorFilter): undefined

class GPUMapMode

Static Properties

READ: 1
WRITE: 2

class GPUPipelineLayout

implements GPUObjectBase

Properties

label: string

class GPUQuerySet

implements GPUObjectBase

Properties

count: number
readonly
label: string
type: GPUQueryType
readonly

Methods

destroy(): undefined

class GPUQueue

implements GPUObjectBase

Represents a queue to submit commands to the GPU.

Examples

// Get a queue from the device (each device has a default queue)
const queue = device.queue;

// Write data to a buffer
const buffer = device.createBuffer({
  size: data.byteLength,
  usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.STORAGE
});
queue.writeBuffer(buffer, 0, data);

// Submit command buffers to the GPU for execution
const commandBuffer = commandEncoder.finish();
queue.submit([commandBuffer]);

// Wait for all submitted operations to complete
await queue.onSubmittedWorkDone();

// Example: Write data to a texture
const texture = device.createTexture({
  size: { width: 256, height: 256 },
  format: "rgba8unorm",
  usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST
});

const data = new Uint8Array(256 * 256 * 4); // RGBA data
// Fill data with your texture content...

queue.writeTexture(
  { texture },
  data,
  { bytesPerRow: 256 * 4 },
  { width: 256, height: 256 }
);

Properties

label: string

Methods

onSubmittedWorkDone(): Promise<undefined>
submit(commandBuffers: GPUCommandBuffer[]): undefined
writeBuffer(
buffer: GPUBuffer,
bufferOffset: number,
data: BufferSource,
dataOffset?: number,
size?: number,
): undefined
writeTexture(
destination: GPUTexelCopyTextureInfo,
data: BufferSource,
dataLayout: GPUTexelCopyBufferLayout,
size: GPUExtent3D,
): undefined

class GPURenderBundle

implements GPUObjectBase

Properties

label: string

class GPURenderBundleEncoder

implements GPUObjectBase, GPUProgrammablePassEncoder, GPURenderEncoderBase

Properties

label: string

Methods

draw(
vertexCount: number,
instanceCount?: number,
firstVertex?: number,
firstInstance?: number,
): undefined
drawIndexed(
indexCount: number,
instanceCount?: number,
firstIndex?: number,
baseVertex?: number,
firstInstance?: number,
): undefined
drawIndexedIndirect(
indirectBuffer: GPUBuffer,
indirectOffset: number,
): undefined
drawIndirect(
indirectBuffer: GPUBuffer,
indirectOffset: number,
): undefined
finish(descriptor?: GPURenderBundleDescriptor): GPURenderBundle
insertDebugMarker(markerLabel: string): undefined
popDebugGroup(): undefined
pushDebugGroup(groupLabel: string): undefined
setBindGroup(
index: number,
bindGroup: GPUBindGroup | null,
dynamicOffsets?: number[],
): undefined
setBindGroup(
index: number,
bindGroup: GPUBindGroup | null,
dynamicOffsetsData: Uint32Array,
dynamicOffsetsDataStart: number,
dynamicOffsetsDataLength: number,
): undefined
setIndexBuffer(
buffer: GPUBuffer,
indexFormat: GPUIndexFormat,
offset?: number,
size?: number,
): undefined
setPipeline(pipeline: GPURenderPipeline): undefined
setVertexBuffer(
slot: number,
buffer: GPUBuffer,
offset?: number,
size?: number,
): undefined

class GPURenderPassEncoder

implements GPUObjectBase, GPUProgrammablePassEncoder, GPURenderEncoderBase

Properties

label: string

Methods

beginOcclusionQuery(queryIndex: number): undefined
draw(
vertexCount: number,
instanceCount?: number,
firstVertex?: number,
firstInstance?: number,
): undefined
drawIndexed(
indexCount: number,
instanceCount?: number,
firstIndex?: number,
baseVertex?: number,
firstInstance?: number,
): undefined
drawIndexedIndirect(
indirectBuffer: GPUBuffer,
indirectOffset: number,
): undefined
drawIndirect(
indirectBuffer: GPUBuffer,
indirectOffset: number,
): undefined
end(): undefined
endOcclusionQuery(): undefined
executeBundles(bundles: GPURenderBundle[]): undefined
insertDebugMarker(markerLabel: string): undefined
popDebugGroup(): undefined
pushDebugGroup(groupLabel: string): undefined
setBindGroup(
index: number,
bindGroup: GPUBindGroup | null,
dynamicOffsets?: number[],
): undefined
setBindGroup(
index: number,
bindGroup: GPUBindGroup | null,
dynamicOffsetsData: Uint32Array,
dynamicOffsetsDataStart: number,
dynamicOffsetsDataLength: number,
): undefined
setBlendConstant(color: GPUColor): undefined
setIndexBuffer(
buffer: GPUBuffer,
indexFormat: GPUIndexFormat,
offset?: number,
size?: number,
): undefined
setPipeline(pipeline: GPURenderPipeline): undefined
setScissorRect(
x: number,
y: number,
width: number,
height: number,
): undefined
setStencilReference(reference: number): undefined
setVertexBuffer(
slot: number,
buffer: GPUBuffer,
offset?: number,
size?: number,
): undefined
setViewport(
x: number,
y: number,
width: number,
height: number,
minDepth: number,
maxDepth: number,
): undefined

class GPURenderPipeline

implements GPUObjectBase, GPUPipelineBase

Properties

label: string

Methods

getBindGroupLayout(index: number): GPUBindGroupLayout

class GPUSampler

implements GPUObjectBase

Properties

label: string

class GPUShaderModule

implements GPUObjectBase

Represents a compiled shader module that can be used to create graphics or compute pipelines.

Examples

// Create a shader module using WGSL (WebGPU Shading Language)
const shaderModule = device.createShaderModule({
  label: "My Shader",
  code: `

Properties

label: string

Methods

getCompilationInfo(): Promise<GPUCompilationInfo>

Returns compilation messages for this shader module, which can include errors, warnings and info messages.


class GPUShaderStage

Static Properties

COMPUTE: 4
FRAGMENT: 2
VERTEX: 1

class GPUSupportedFeatures

Properties

size: number

Methods

[Symbol.iterator](): IterableIterator<GPUFeatureName>
entries(): IterableIterator<[GPUFeatureName, GPUFeatureName]>
forEach(
callbackfn: (
value: GPUFeatureName,
value2: GPUFeatureName,
set: Set<GPUFeatureName>,
) => void
,
thisArg?: any,
): void
has(value: GPUFeatureName): boolean
keys(): IterableIterator<GPUFeatureName>
values(): IterableIterator<GPUFeatureName>

class GPUSupportedLimits

Properties

maxBindGroups: number
readonly
maxBindGroupsPlusVertexBuffers: number
readonly
maxBindingsPerBindGroup: number
readonly
maxBufferSize: number
readonly
maxColorAttachmentBytesPerSample: number
readonly
maxColorAttachments: number
readonly
maxComputeInvocationsPerWorkgroup: number
readonly
maxComputeWorkgroupSizeX: number
readonly
maxComputeWorkgroupSizeY: number
readonly
maxComputeWorkgroupSizeZ: number
readonly
maxComputeWorkgroupStorageSize: number
readonly
maxComputeWorkgroupsPerDimension: number
readonly
maxDynamicStorageBuffersPerPipelineLayout: number
readonly
maxDynamicUniformBuffersPerPipelineLayout: number
readonly
maxInterStageShaderVariables: number
readonly
maxSampledTexturesPerShaderStage: number
readonly
maxSamplersPerShaderStage: number
readonly
maxStorageBufferBindingSize: number
readonly
maxStorageBuffersPerShaderStage: number
readonly
maxStorageTexturesPerShaderStage: number
readonly
maxTextureArrayLayers: number
readonly
maxTextureDimension1D: number
readonly
maxTextureDimension2D: number
readonly
maxTextureDimension3D: number
readonly
maxUniformBufferBindingSize: number
readonly
maxUniformBuffersPerShaderStage: number
readonly
maxVertexAttributes: number
readonly
maxVertexBufferArrayStride: number
readonly
maxVertexBuffers: number
readonly
minStorageBufferOffsetAlignment: number
readonly
minUniformBufferOffsetAlignment: number
readonly

class GPUTexture

implements GPUObjectBase

Represents a texture (image) in GPU memory.

Examples

// Create a texture to render to
const texture = device.createTexture({
  label: "Output Texture",
  size: { width: 640, height: 480 },
  format: "rgba8unorm",
  usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING,
});

// Get a view of the texture (needed for most operations)
const textureView = texture.createView();

// When the texture is no longer needed
texture.destroy();

// Example: Creating a depth texture
const depthTexture = device.createTexture({
  size: { width: 640, height: 480 },
  format: "depth24plus",
  usage: GPUTextureUsage.RENDER_ATTACHMENT,
});

Properties

depthOrArrayLayers: number
readonly
dimension: GPUTextureDimension
readonly
format: GPUTextureFormat
readonly
height: number
readonly
label: string
mipLevelCount: number
readonly
sampleCount: number
readonly
usage: GPUFlagsConstant
readonly
width: number
readonly

Methods

createView(descriptor?: GPUTextureViewDescriptor): GPUTextureView
destroy(): undefined

class GPUTextureUsage

Static Properties

COPY_DST: 2
COPY_SRC: 1
RENDER_ATTACHMENT: 16
STORAGE_BINDING: 8
TEXTURE_BINDING: 4

class GPUTextureView

implements GPUObjectBase

Properties

label: string

class GPUUncapturedErrorEvent

extends Event

Constructors

GPUUncapturedErrorEvent(
type: string,
gpuUncapturedErrorEventInitDict: GPUUncapturedErrorEventInit,
)
new

Properties

error: GPUError
readonly

interface GPUBindGroupDescriptor

extends GPUObjectDescriptorBase

Properties

layout: GPUBindGroupLayout
entries: GPUBindGroupEntry[]

interface GPUBindGroupEntry

Properties

binding: number
resource: GPUBindingResource

interface GPUBindGroupLayoutDescriptor

extends GPUObjectDescriptorBase

Properties

entries: GPUBindGroupLayoutEntry[]

interface GPUBindGroupLayoutEntry

Properties

binding: number
visibility: GPUShaderStageFlags
buffer: GPUBufferBindingLayout
optional
sampler: GPUSamplerBindingLayout
optional
texture: GPUTextureBindingLayout
optional
storageTexture: GPUStorageTextureBindingLayout
optional

interface GPUBlendComponent

Properties

operation: GPUBlendOperation
optional
srcFactor: GPUBlendFactor
optional
dstFactor: GPUBlendFactor
optional

interface GPUBlendState

Properties

color: GPUBlendComponent
alpha: GPUBlendComponent

interface GPUBufferBinding

Properties

buffer: GPUBuffer
offset: number
optional
size: number
optional

interface GPUBufferBindingLayout

Properties

type: GPUBufferBindingType
optional
hasDynamicOffset: boolean
optional
minBindingSize: number
optional

interface GPUBufferDescriptor

extends GPUObjectDescriptorBase

Properties

size: number
usage: GPUBufferUsageFlags
mappedAtCreation: boolean
optional

interface GPUColorDict

Properties

r: number
g: number
b: number
a: number

interface GPUColorTargetState

Properties

format: GPUTextureFormat
blend: GPUBlendState
optional
writeMask: GPUColorWriteFlags
optional

interface GPUCommandBufferDescriptor

extends GPUObjectDescriptorBase

interface GPUCommandEncoderDescriptor

extends GPUObjectDescriptorBase

interface GPUComputePassDescriptor

extends GPUObjectDescriptorBase

Properties

timestampWrites: GPUComputePassTimestampWrites
optional

interface GPUComputePassTimestampWrites

Properties

querySet: GPUQuerySet
beginningOfPassWriteIndex: number
optional
endOfPassWriteIndex: number
optional

interface GPUComputePipelineDescriptor

extends GPUPipelineDescriptorBase

Properties

compute: GPUProgrammableStage

interface GPUDepthStencilState

Properties

format: GPUTextureFormat
depthWriteEnabled: boolean
optional
depthCompare: GPUCompareFunction
optional
stencilFront: GPUStencilFaceState
optional
stencilBack: GPUStencilFaceState
optional
stencilReadMask: number
optional
stencilWriteMask: number
optional
depthBias: number
optional
depthBiasSlopeScale: number
optional
depthBiasClamp: number
optional

interface GPUDeviceDescriptor

extends GPUObjectDescriptorBase

Properties

requiredFeatures: GPUFeatureName[]
optional
requiredLimits: Record<string, number | undefined>
optional

interface GPUDeviceLostInfo

Properties

reason: GPUDeviceLostReason
readonly
message: string
readonly

interface GPUError

The GPUError interface of the WebGPU API is the base interface for errors surfaced by GPUDevice.popErrorScope and the GPUDevice.uncapturederror_event event. Available only in secure contexts.

MDN Reference

Properties

message: string
readonly

The message read-only property of the A string. The message read-only property of the GPUError interface provides a human-readable message that explains why the error occurred.

MDN Reference

variable GPUError

Properties

prototype: GPUError

interface GPUExtent3DDict

Properties

width: number
height: number
optional
depthOrArrayLayers: number
optional

interface GPUFragmentState

extends GPUProgrammableStage

Properties

targets: (GPUColorTargetState | null)[]

interface GPUInternalError

extends GPUError

variable GPUInternalError

Properties

prototype: GPUInternalError

interface GPUMultisampleState

Properties

count: number
optional
mask: number
optional
alphaToCoverageEnabled: boolean
optional

interface GPUObjectBase

Properties

label: string

interface GPUObjectDescriptorBase

Properties

label: string
optional

interface GPUOrigin3DDict

Properties

x: number
optional
y: number
optional
z: number
optional

interface GPUOutOfMemoryError

extends GPUError

variable GPUOutOfMemoryError

Properties

prototype: GPUOutOfMemoryError

interface GPUPipelineBase

Methods

getBindGroupLayout(index: number): GPUBindGroupLayout

interface GPUPipelineDescriptorBase

extends GPUObjectDescriptorBase

Properties

layout: GPUPipelineLayout | GPUAutoLayoutMode

interface GPUPipelineError

extends DOMException

The GPUPipelineError interface of the WebGPU API describes a pipeline failure. Available only in secure contexts.

MDN Reference

Properties

reason: "validation" | "internal"
readonly

The reason read-only property of the GPUPipelineError interface defines the reason the pipeline creation failed in a machine-readable way.

MDN Reference

variable GPUPipelineError

Properties

prototype: GPUPipelineError

interface GPUPipelineErrorInit

Properties

reason: "validation" | "internal"

interface GPUPipelineLayoutDescriptor

extends GPUObjectDescriptorBase

Properties

bindGroupLayouts: GPUBindGroupLayout[]

interface GPUPrimitiveState

Properties

topology: GPUPrimitiveTopology
optional
stripIndexFormat: GPUIndexFormat
optional
frontFace: GPUFrontFace
optional
cullMode: GPUCullMode
optional
unclippedDepth: boolean
optional

interface GPUProgrammablePassEncoder

Methods

setBindGroup(
index: number,
bindGroup: GPUBindGroup | null,
dynamicOffsets?: number[],
): undefined
setBindGroup(
index: number,
bindGroup: GPUBindGroup | null,
dynamicOffsetsData: Uint32Array,
dynamicOffsetsDataStart: number,
dynamicOffsetsDataLength: number,
): undefined
pushDebugGroup(groupLabel: string): undefined
popDebugGroup(): undefined
insertDebugMarker(markerLabel: string): undefined

interface GPUProgrammableStage

Properties

module: GPUShaderModule
entryPoint: string
optional
constants: Record<string, number>
optional

interface GPUQuerySetDescriptor

extends GPUObjectDescriptorBase

Properties

type: GPUQueryType
count: number

interface GPURenderBundleDescriptor

extends GPUObjectDescriptorBase

interface GPURenderBundleEncoderDescriptor

extends GPURenderPassLayout

Properties

depthReadOnly: boolean
optional
stencilReadOnly: boolean
optional

interface GPURenderEncoderBase

Methods

setPipeline(pipeline: GPURenderPipeline): undefined
setIndexBuffer(
buffer: GPUBuffer,
indexFormat: GPUIndexFormat,
offset?: number,
size?: number,
): undefined
setVertexBuffer(
slot: number,
buffer: GPUBuffer,
offset?: number,
size?: number,
): undefined
draw(
vertexCount: number,
instanceCount?: number,
firstVertex?: number,
firstInstance?: number,
): undefined
drawIndexed(
indexCount: number,
instanceCount?: number,
firstIndex?: number,
baseVertex?: number,
firstInstance?: number,
): undefined
drawIndirect(
indirectBuffer: GPUBuffer,
indirectOffset: number,
): undefined
drawIndexedIndirect(
indirectBuffer: GPUBuffer,
indirectOffset: number,
): undefined

interface GPURenderPassColorAttachment

Properties

view: GPUTextureView
resolveTarget: GPUTextureView
optional
clearValue: GPUColor
optional
loadOp: GPULoadOp
storeOp: GPUStoreOp

interface GPURenderPassDepthStencilAttachment

Properties

view: GPUTextureView
depthClearValue: number
optional
depthLoadOp: GPULoadOp
optional
depthStoreOp: GPUStoreOp
optional
depthReadOnly: boolean
optional
stencilClearValue: number
optional
stencilLoadOp: GPULoadOp
optional
stencilStoreOp: GPUStoreOp
optional
stencilReadOnly: boolean
optional

interface GPURenderPassDescriptor

extends GPUObjectDescriptorBase

Properties

colorAttachments: (GPURenderPassColorAttachment | null)[]
depthStencilAttachment: GPURenderPassDepthStencilAttachment
optional
occlusionQuerySet: GPUQuerySet
optional
timestampWrites: GPURenderPassTimestampWrites
optional

interface GPURenderPassLayout

extends GPUObjectDescriptorBase

Properties

colorFormats: (GPUTextureFormat | null)[]
depthStencilFormat: GPUTextureFormat
optional
sampleCount: number
optional

interface GPURenderPassTimestampWrites

Properties

querySet: GPUQuerySet
beginningOfPassWriteIndex: number
optional
endOfPassWriteIndex: number
optional

interface GPURenderPipelineDescriptor

extends GPUPipelineDescriptorBase

Properties

vertex: GPUVertexState
primitive: GPUPrimitiveState
optional
depthStencil: GPUDepthStencilState
optional
multisample: GPUMultisampleState
optional
fragment: GPUFragmentState
optional

interface GPURequestAdapterOptions

Properties

powerPreference: GPUPowerPreference
optional
forceFallbackAdapter: boolean
optional

interface GPUSamplerBindingLayout

Properties

type: GPUSamplerBindingType
optional

interface GPUSamplerDescriptor

extends GPUObjectDescriptorBase

Properties

addressModeU: GPUAddressMode
optional
addressModeV: GPUAddressMode
optional
addressModeW: GPUAddressMode
optional
magFilter: GPUFilterMode
optional
minFilter: GPUFilterMode
optional
mipmapFilter: GPUMipmapFilterMode
optional
lodMinClamp: number
optional
lodMaxClamp: number
optional
compare: GPUCompareFunction
optional
maxAnisotropy: number
optional

interface GPUShaderModuleDescriptor

extends GPUObjectDescriptorBase

Properties

code: string
sourceMap: any
optional

interface GPUStencilFaceState

Properties

compare: GPUCompareFunction
optional
failOp: GPUStencilOperation
optional
depthFailOp: GPUStencilOperation
optional
passOp: GPUStencilOperation
optional

interface GPUStorageTextureBindingLayout

Properties

access: GPUStorageTextureAccess
optional
format: GPUTextureFormat
viewDimension: GPUTextureViewDimension
optional

interface GPUTexelCopyBufferInfo

extends GPUTexelCopyBufferLayout

Properties

buffer: GPUBuffer

interface GPUTexelCopyBufferLayout

Properties

offset: number
optional
bytesPerRow: number
optional
rowsPerImage: number
optional

interface GPUTexelCopyTextureInfo

Properties

texture: GPUTexture
mipLevel: number
optional
origin: GPUOrigin3D
optional
aspect: GPUTextureAspect
optional

interface GPUTextureBindingLayout

Properties

sampleType: GPUTextureSampleType
optional
viewDimension: GPUTextureViewDimension
optional
multisampled: boolean
optional

interface GPUTextureDescriptor

extends GPUObjectDescriptorBase

Properties

size: GPUExtent3D
mipLevelCount: number
optional
sampleCount: number
optional
dimension: GPUTextureDimension
optional
format: GPUTextureFormat
usage: GPUTextureUsageFlags
viewFormats: GPUTextureFormat[]
optional

interface GPUTextureViewDescriptor

extends GPUObjectDescriptorBase

Properties

format: GPUTextureFormat
optional
dimension: GPUTextureViewDimension
optional
usage: GPUTextureUsageFlags
optional
aspect: GPUTextureAspect
optional
baseMipLevel: number
optional
mipLevelCount: number
optional
baseArrayLayer: number
optional
arrayLayerCount: number
optional

interface GPUUncapturedErrorEventInit

extends EventInit

Properties

error: GPUError

interface GPUValidationError

extends GPUError

variable GPUValidationError

Properties

prototype: GPUValidationError

interface GPUVertexAttribute

Properties

format: GPUVertexFormat
offset: number
shaderLocation: number

interface GPUVertexBufferLayout

Properties

arrayStride: number
stepMode: GPUVertexStepMode
optional
attributes: GPUVertexAttribute[]

interface GPUVertexState

extends GPUProgrammableStage

Properties

buffers: (GPUVertexBufferLayout | null)[]
optional

type alias GPUAddressMode

Definition

"clamp-to-edge"
| "repeat"
| "mirror-repeat"

type alias GPUAutoLayoutMode

Definition

"auto"

type alias GPUBindingResource

Definition

GPUSampler
| GPUTextureView
| GPUBufferBinding

type alias GPUBlendFactor

Definition

"zero"
| "one"
| "src"
| "one-minus-src"
| "src-alpha"
| "one-minus-src-alpha"
| "dst"
| "one-minus-dst"
| "dst-alpha"
| "one-minus-dst-alpha"
| "src-alpha-saturated"
| "constant"
| "one-minus-constant"
| "src1"
| "one-minus-src1"
| "src1-alpha"
| "one-minus-src1-alpha"

type alias GPUBlendOperation

Definition

"add"
| "subtract"
| "reverse-subtract"
| "min"
| "max"

type alias GPUBufferBindingType

Definition

"uniform"
| "storage"
| "read-only-storage"

type alias GPUBufferMapState

Definition

"unmapped"
| "pending"
| "mapped"

type alias GPUBufferUsageFlags

Definition

number

type alias GPUColor

Definition

number[] | GPUColorDict

type alias GPUColorWriteFlags

Definition

number

type alias GPUCompareFunction

Definition

"never"
| "less"
| "equal"
| "less-equal"
| "greater"
| "not-equal"
| "greater-equal"
| "always"

type alias GPUCompilationMessageType

Definition

"error"
| "warning"
| "info"

type alias GPUCullMode

Definition

"none"
| "front"
| "back"

type alias GPUDeviceLostReason

Definition

"destroyed"

type alias GPUErrorFilter

Definition

"out-of-memory"
| "validation"
| "internal"

type alias GPUExtent3D

Definition

number[] | GPUExtent3DDict

type alias GPUFeatureName

Definition

"depth-clip-control"
| "timestamp-query"
| "indirect-first-instance"
| "shader-f16"
| "depth32float-stencil8"
| "texture-compression-bc"
| "texture-compression-bc-sliced-3d"
| "texture-compression-etc2"
| "texture-compression-astc"
| "rg11b10ufloat-renderable"
| "bgra8unorm-storage"
| "float32-filterable"
| "dual-source-blending"
| "subgroups"
| "texture-format-16-bit-norm"
| "texture-compression-astc-hdr"
| "texture-adapter-specific-format-features"
| "pipeline-statistics-query"
| "timestamp-query-inside-passes"
| "mappable-primary-buffers"
| "texture-binding-array"
| "buffer-binding-array"
| "storage-resource-binding-array"
| "sampled-texture-and-storage-buffer-array-non-uniform-indexing"
| "uniform-buffer-and-storage-texture-array-non-uniform-indexing"
| "partially-bound-binding-array"
| "multi-draw-indirect"
| "multi-draw-indirect-count"
| "push-constants"
| "address-mode-clamp-to-zero"
| "address-mode-clamp-to-border"
| "polygon-mode-line"
| "polygon-mode-point"
| "conservative-rasterization"
| "vertex-writable-storage"
| "clear-texture"
| "spirv-shader-passthrough"
| "multiview"
| "vertex-attribute-64-bit"
| "shader-f64"
| "shader-i16"
| "shader-primitive-index"
| "shader-early-depth-test"

type alias GPUFilterMode

Definition

"nearest" | "linear"

type alias GPUFlagsConstant

Definition

number

type alias GPUFrontFace

Definition

"ccw" | "cw"

type alias GPUIndexFormat

Definition

"uint16" | "uint32"

type alias GPULoadOp

Definition

"load" | "clear"

type alias GPUMapModeFlags

Definition

number

type alias GPUMipmapFilterMode

Definition

"nearest" | "linear"

type alias GPUOrigin3D

Definition

number[] | GPUOrigin3DDict

type alias GPUPowerPreference

Definition

"low-power" | "high-performance"

type alias GPUPrimitiveTopology

Definition

"point-list"
| "line-list"
| "line-strip"
| "triangle-list"
| "triangle-strip"

type alias GPUQueryType

Definition

"occlusion" | "timestamp"

type alias GPUSamplerBindingType

Definition

"filtering"
| "non-filtering"
| "comparison"

type alias GPUShaderStageFlags

Definition

number

type alias GPUStencilOperation

Definition

"keep"
| "zero"
| "replace"
| "invert"
| "increment-clamp"
| "decrement-clamp"
| "increment-wrap"
| "decrement-wrap"

type alias GPUStorageTextureAccess

Definition

"write-only"
| "read-only"
| "read-write"

type alias GPUStoreOp

Definition

"store" | "discard"

type alias GPUTextureAspect

Definition

"all"
| "stencil-only"
| "depth-only"

type alias GPUTextureDimension

Definition

"1d"
| "2d"
| "3d"

type alias GPUTextureFormat

Definition

"r8unorm"
| "r8snorm"
| "r8uint"
| "r8sint"
| "r16uint"
| "r16sint"
| "r16float"
| "rg8unorm"
| "rg8snorm"
| "rg8uint"
| "rg8sint"
| "r32uint"
| "r32sint"
| "r32float"
| "rg16uint"
| "rg16sint"
| "rg16float"
| "rgba8unorm"
| "rgba8unorm-srgb"
| "rgba8snorm"
| "rgba8uint"
| "rgba8sint"
| "bgra8unorm"
| "bgra8unorm-srgb"
| "rgb9e5ufloat"
| "rgb10a2uint"
| "rgb10a2unorm"
| "rg11b10ufloat"
| "rg32uint"
| "rg32sint"
| "rg32float"
| "rgba16uint"
| "rgba16sint"
| "rgba16float"
| "rgba32uint"
| "rgba32sint"
| "rgba32float"
| "stencil8"
| "depth16unorm"
| "depth24plus"
| "depth24plus-stencil8"
| "depth32float"
| "depth32float-stencil8"
| "bc1-rgba-unorm"
| "bc1-rgba-unorm-srgb"
| "bc2-rgba-unorm"
| "bc2-rgba-unorm-srgb"
| "bc3-rgba-unorm"
| "bc3-rgba-unorm-srgb"
| "bc4-r-unorm"
| "bc4-r-snorm"
| "bc5-rg-unorm"
| "bc5-rg-snorm"
| "bc6h-rgb-ufloat"
| "bc6h-rgb-float"
| "bc7-rgba-unorm"
| "bc7-rgba-unorm-srgb"
| "etc2-rgb8unorm"
| "etc2-rgb8unorm-srgb"
| "etc2-rgb8a1unorm"
| "etc2-rgb8a1unorm-srgb"
| "etc2-rgba8unorm"
| "etc2-rgba8unorm-srgb"
| "eac-r11unorm"
| "eac-r11snorm"
| "eac-rg11unorm"
| "eac-rg11snorm"
| "astc-4x4-unorm"
| "astc-4x4-unorm-srgb"
| "astc-5x4-unorm"
| "astc-5x4-unorm-srgb"
| "astc-5x5-unorm"
| "astc-5x5-unorm-srgb"
| "astc-6x5-unorm"
| "astc-6x5-unorm-srgb"
| "astc-6x6-unorm"
| "astc-6x6-unorm-srgb"
| "astc-8x5-unorm"
| "astc-8x5-unorm-srgb"
| "astc-8x6-unorm"
| "astc-8x6-unorm-srgb"
| "astc-8x8-unorm"
| "astc-8x8-unorm-srgb"
| "astc-10x5-unorm"
| "astc-10x5-unorm-srgb"
| "astc-10x6-unorm"
| "astc-10x6-unorm-srgb"
| "astc-10x8-unorm"
| "astc-10x8-unorm-srgb"
| "astc-10x10-unorm"
| "astc-10x10-unorm-srgb"
| "astc-12x10-unorm"
| "astc-12x10-unorm-srgb"
| "astc-12x12-unorm"
| "astc-12x12-unorm-srgb"

type alias GPUTextureSampleType

Definition

"float"
| "unfilterable-float"
| "depth"
| "sint"
| "uint"

type alias GPUTextureUsageFlags

Definition

number

type alias GPUTextureViewDimension

Definition

"1d"
| "2d"
| "2d-array"
| "cube"
| "cube-array"
| "3d"

type alias GPUVertexFormat

Definition

"uint8x2"
| "uint8x4"
| "sint8x2"
| "sint8x4"
| "unorm8x2"
| "unorm8x4"
| "snorm8x2"
| "snorm8x4"
| "uint16x2"
| "uint16x4"
| "sint16x2"
| "sint16x4"
| "unorm16x2"
| "unorm16x4"
| "snorm16x2"
| "snorm16x4"
| "float16x2"
| "float16x4"
| "float32"
| "float32x2"
| "float32x3"
| "float32x4"
| "uint32"
| "uint32x2"
| "uint32x3"
| "uint32x4"
| "sint32"
| "sint32x2"
| "sint32x3"
| "sint32x4"
| "unorm10-10-10-2"

type alias GPUVertexStepMode

Definition

"vertex" | "instance"

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/web/gpu

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API