Spec-Zone.ru › Deno 2

GPU

Программирование и рендеринг с использованием GPU. Эффективно используйте графический процессор устройства (GPU) для высокопроизводительных вычислений и сложного рендеринга изображений.

Например, GPUDevice


класс GPU

Точка входа в WebGPU в Deno, доступная через глобальное свойство navigator.gpu.

Примеры

// 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");

Методы

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

класс GPUAdapter

Представляет физическое устройство GPU, которое можно использовать для создания логического устройства GPU.

Примеры

// 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
  }
});

Свойства

features: GPUSupportedFeatures
только для чтения
info: GPUAdapterInfo
только для чтения
limits: GPUSupportedLimits
только для чтения

Методы

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

класс GPUAdapterInfo

Свойства

architecture: string
только для чтения
description: string
только для чтения
device: string
только для чтения
isFallbackAdapter: boolean
только для чтения
subgroupMaxSize: number
только для чтения
subgroupMinSize: number
только для чтения
vendor: string
только для чтения

класс GPUBindGroup

реализует GPUObjectBase

Свойства

label: string

класс GPUBindGroupLayout

реализует GPUObjectBase

Свойства

label: string

класс GPUBuffer

реализует GPUObjectBase

Представляет блок памяти, выделенный на GPU.

Примеры

// 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();

Свойства

label: string
mapState: GPUBufferMapState
только для чтения
size: number
только для чтения
usage: GPUFlagsConstant
только для чтения

Методы

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

класс GPUBufferUsage

Статические свойства

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

класс GPUColorWrite

Статические свойства

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

класс GPUCommandBuffer

реализует GPUObjectBase

Свойства

label: string

класс GPUCommandEncoder

реализует GPUObjectBase

Используется для записи команд GPU, которые GPU выполнит позднее.

Примеры

// 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]);

Свойства

label: string

Методы

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

класс GPUCompilationInfo

Свойства

messages: ReadonlyArray<GPUCompilationMessage>
только для чтения

класс GPUCompilationMessage

Свойства

length: number
только для чтения
lineNum: number
только для чтения
linePos: number
только для чтения
message: string
только для чтения
offset: number
только для чтения
type: GPUCompilationMessageType
только для чтения

класс GPUComputePassEncoder

реализует GPUObjectBase, GPUProgrammablePassEncoder

Свойства

label: string

Методы

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

класс GPUComputePipeline

реализует GPUObjectBase, GPUPipelineBase

Свойства

label: string

Методы

getBindGroupLayout(index: number): GPUBindGroupLayout

класс GPUDevice

реализует GPUObjectBase
наследует EventTarget

Основной интерфейс для взаимодействия с устройством WebGPU.

Примеры

// 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]));

Свойства

adapterInfo: GPUAdapterInfo
только для чтения
features: GPUSupportedFeatures
только для чтения
label: string
limits: GPUSupportedLimits
только для чтения
lost: Promise<GPUDeviceLostInfo>
только для чтения
queue: GPUQueue
только для чтения

Методы

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

класс GPUMapMode

Статические свойства

READ: 1
WRITE: 2

класс GPUPipelineLayout

реализует GPUObjectBase

Свойства

label: string

класс GPUQuerySet

implements GPUObjectBase

Свойства

count: number
только для чтения
label: string
type: GPUQueryType
только для чтения

Методы

destroy(): undefined

класс GPUQueue

implements GPUObjectBase

Представляет очередь для отправки команд графическому процессору.

Примеры

// 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 }
);

Свойства

label: string

Методы

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

класс GPURenderBundle

implements GPUObjectBase

Свойства

label: string

класс GPURenderBundleEncoder

implements GPUObjectBase, GPUProgrammablePassEncoder, GPURenderEncoderBase

Свойства

label: string

Методы

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

класс GPURenderPassEncoder

implements GPUObjectBase, GPUProgrammablePassEncoder, GPURenderEncoderBase

Свойства

label: string

Методы

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

класс GPURenderPipeline

implements GPUObjectBase, GPUPipelineBase

Свойства

label: string

Методы

getBindGroupLayout(index: number): GPUBindGroupLayout

класс GPUSampler

implements GPUObjectBase

Свойства

label: string

класс GPUShaderModule

implements GPUObjectBase

Представляет скомпилированный модуль шейдера, который можно использовать для создания графических или вычислительных конвейеров.

Примеры

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

Свойства

label: string

Методы

getCompilationInfo(): Promise<GPUCompilationInfo>

Возвращает сообщения компиляции для этого модуля шейдера, которые могут содержать ошибки, предупреждения и информационные сообщения.


класс GPUShaderStage

Статические свойства

COMPUTE: 4
FRAGMENT: 2
VERTEX: 1

класс GPUSupportedFeatures

Свойства

size: number

Методы

[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>

класс GPUSupportedLimits

Свойства

maxBindGroups: number
только для чтения
maxBindGroupsPlusVertexBuffers: number
только для чтения
maxBindingsPerBindGroup: number
только для чтения
maxBufferSize: number
только для чтения
maxColorAttachmentBytesPerSample: number
только для чтения
maxColorAttachments: number
только для чтения
maxComputeInvocationsPerWorkgroup: number
только для чтения
maxComputeWorkgroupSizeX: number
только для чтения
maxComputeWorkgroupSizeY: number
только для чтения
maxComputeWorkgroupSizeZ: number
только для чтения
maxComputeWorkgroupStorageSize: number
только для чтения
maxComputeWorkgroupsPerDimension: number
только для чтения
maxDynamicStorageBuffersPerPipelineLayout: number
только для чтения
maxDynamicUniformBuffersPerPipelineLayout: number
только для чтения
maxInterStageShaderVariables: number
только для чтения
maxSampledTexturesPerShaderStage: number
только для чтения
maxSamplersPerShaderStage: number
только для чтения
maxStorageBufferBindingSize: number
только для чтения
maxStorageBuffersPerShaderStage: number
только для чтения
maxStorageTexturesPerShaderStage: number
только для чтения
maxTextureArrayLayers: number
только для чтения
maxTextureDimension1D: number
только для чтения
maxTextureDimension2D: number
только для чтения
maxTextureDimension3D: number
только для чтения
maxUniformBufferBindingSize: number
только для чтения
maxUniformBuffersPerShaderStage: number
только для чтения
maxVertexAttributes: number
только для чтения
maxVertexBufferArrayStride: number
только для чтения
maxVertexBuffers: number
только для чтения
minStorageBufferOffsetAlignment: number
только для чтения
minUniformBufferOffsetAlignment: number
только для чтения

класс GPUTexture

реализует GPUObjectBase

Представляет текстуру (изображение) в памяти GPU.

Примеры

// 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,
});

Свойства

depthOrArrayLayers: number
только для чтения
dimension: GPUTextureDimension
только для чтения
format: GPUTextureFormat
только для чтения
height: number
только для чтения
label: string
mipLevelCount: number
только для чтения
sampleCount: number
только для чтения
usage: GPUFlagsConstant
только для чтения
width: number
только для чтения

Методы

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

класс GPUTextureUsage

Статические свойства

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

класс GPUTextureView

реализует GPUObjectBase

Свойства

label: string

класс GPUUncapturedErrorEvent

наследует Event

Конструкторы

GPUUncapturedErrorEvent(
type: string,
gpuUncapturedErrorEventInitDict: GPUUncapturedErrorEventInit,
)
новый

Свойства

error: GPUError
только для чтения

интерфейс GPUBindGroupDescriptor

наследует GPUObjectDescriptorBase

Свойства

layout: GPUBindGroupLayout
entries: GPUBindGroupEntry[]

интерфейс GPUBindGroupEntry

Свойства

binding: number
resource: GPUBindingResource

интерфейс GPUBindGroupLayoutDescriptor

наследует GPUObjectDescriptorBase

Свойства

entries: GPUBindGroupLayoutEntry[]

интерфейс GPUBindGroupLayoutEntry

Свойства

binding: number
visibility: GPUShaderStageFlags
buffer: GPUBufferBindingLayout
необязательное
sampler: GPUSamplerBindingLayout
необязательное
texture: GPUTextureBindingLayout
необязательное
storageTexture: GPUStorageTextureBindingLayout
необязательное

интерфейс GPUBlendComponent

Свойства

operation: GPUBlendOperation
необязательное
srcFactor: GPUBlendFactor
необязательное
dstFactor: GPUBlendFactor
необязательное

интерфейс GPUBlendState

Свойства

color: GPUBlendComponent
alpha: GPUBlendComponent

интерфейс GPUBufferBinding

Свойства

buffer: GPUBuffer
offset: number
необязательное
size: number
необязательное

интерфейс GPUBufferBindingLayout

Свойства

type: GPUBufferBindingType
необязательное
hasDynamicOffset: boolean
необязательное
minBindingSize: number
необязательное

интерфейс GPUBufferDescriptor

наследует GPUObjectDescriptorBase

Свойства

size: number
usage: GPUBufferUsageFlags
mappedAtCreation: boolean
необязательное

интерфейс GPUColorDict

Свойства

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

интерфейс GPUColorTargetState

Свойства

format: GPUTextureFormat
blend: GPUBlendState
необязательное
writeMask: GPUColorWriteFlags
необязательное

интерфейс GPUCommandBufferDescriptor

наследует GPUObjectDescriptorBase

интерфейс GPUCommandEncoderDescriptor

наследует GPUObjectDescriptorBase

интерфейс GPUComputePassDescriptor

наследует GPUObjectDescriptorBase

Свойства

timestampWrites: GPUComputePassTimestampWrites
необязательное

интерфейс GPUComputePassTimestampWrites

Свойства

querySet: GPUQuerySet
beginningOfPassWriteIndex: number
необязательное
endOfPassWriteIndex: number
необязательное

интерфейс GPUComputePipelineDescriptor

наследует GPUPipelineDescriptorBase

Свойства

compute: GPUProgrammableStage

интерфейс GPUDepthStencilState

Свойства

format: GPUTextureFormat
depthWriteEnabled: boolean
необязательное
depthCompare: GPUCompareFunction
необязательное
stencilFront: GPUStencilFaceState
необязательное
stencilBack: GPUStencilFaceState
необязательное
stencilReadMask: number
необязательное
stencilWriteMask: number
необязательное
depthBias: number
необязательное
depthBiasSlopeScale: number
необязательное
depthBiasClamp: number
необязательное

интерфейс GPUDeviceDescriptor

наследует GPUObjectDescriptorBase

Свойства

requiredFeatures: GPUFeatureName[]
необязательное
requiredLimits: Record<string, number | undefined>
необязательное

интерфейс GPUDeviceLostInfo

Свойства

reason: GPUDeviceLostReason
только для чтения
message: string
только для чтения

интерфейс GPUError

Интерфейс GPUError API WebGPU является базовым интерфейсом для ошибок, возникающих при вызове GPUDevice.popErrorScope и события GPUDevice.uncapturederror_event. Доступен только в защищённых контекстах.

Справочник MDN

Свойства

message: string
только для чтения

Свойство message интерфейса A string, доступное только для чтения. Свойство message интерфейса GPUError, доступное только для чтения, содержит понятное человеку сообщение, объясняющее причину возникновения ошибки.

Справочник MDN

переменная GPUError

Свойства

prototype: GPUError

интерфейс GPUExtent3DDict

Свойства

width: number
height: number
необязательное
depthOrArrayLayers: number
необязательное

интерфейс GPUFragmentState

расширяет GPUProgrammableStage

Свойства

targets: (GPUColorTargetState | null)[]

интерфейс GPUInternalError

расширяет GPUError

переменная GPUInternalError

Свойства

prototype: GPUInternalError

интерфейс GPUMultisampleState

Свойства

count: number
необязательное
mask: number
необязательное
alphaToCoverageEnabled: boolean
необязательное

интерфейс GPUObjectBase

Свойства

label: string

интерфейс GPUObjectDescriptorBase

Свойства

label: string
необязательное

интерфейс GPUOrigin3DDict

Свойства

x: number
необязательное
y: number
необязательное
z: number
необязательное

интерфейс GPUOutOfMemoryError

расширяет GPUError

переменная GPUOutOfMemoryError

Свойства

prototype: GPUOutOfMemoryError

интерфейс GPUPipelineBase

Методы

getBindGroupLayout(index: number): GPUBindGroupLayout

интерфейс GPUPipelineDescriptorBase

расширяет GPUObjectDescriptorBase

Свойства

layout: GPUPipelineLayout | GPUAutoLayoutMode

интерфейс GPUPipelineError

расширяет DOMException

Интерфейс GPUPipelineError API WebGPU описывает сбой конвейера. Доступен только в защищённых контекстах.

Справочник MDN

Свойства

reason: "validation" | "internal"
только для чтения

Свойство reason интерфейса GPUPipelineError, доступное только для чтения, определяет причину сбоя создания конвейера в машиночитаемом виде.

Справочник MDN

переменная GPUPipelineError

Свойства

prototype: GPUPipelineError

интерфейс GPUPipelineErrorInit

Свойства

reason: "validation" | "internal"

интерфейс GPUPipelineLayoutDescriptor

расширяет GPUObjectDescriptorBase

Свойства

bindGroupLayouts: GPUBindGroupLayout[]

интерфейс GPUPrimitiveState

Свойства

topology: GPUPrimitiveTopology
необязательное
stripIndexFormat: GPUIndexFormat
необязательное
frontFace: GPUFrontFace
необязательное
cullMode: GPUCullMode
необязательное
unclippedDepth: boolean
необязательное

интерфейс GPUProgrammablePassEncoder

Методы

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

интерфейс GPUProgrammableStage

Свойства

module: GPUShaderModule
entryPoint: string
необязательное
constants: Record<string, number>
необязательное

интерфейс GPUQuerySetDescriptor

расширяет GPUObjectDescriptorBase

Свойства

type: GPUQueryType
count: number

интерфейс GPURenderBundleDescriptor

расширяет GPUObjectDescriptorBase

интерфейс GPURenderBundleEncoderDescriptor

расширяет GPURenderPassLayout

Свойства

depthReadOnly: boolean
необязательное
stencilReadOnly: boolean
необязательное

интерфейс GPURenderEncoderBase

Методы

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

интерфейс GPURenderPassColorAttachment

Свойства

view: GPUTextureView
resolveTarget: GPUTextureView
необязательное
clearValue: GPUColor
необязательное
loadOp: GPULoadOp
storeOp: GPUStoreOp

интерфейс GPURenderPassDepthStencilAttachment

Свойства

view: GPUTextureView
depthClearValue: number
необязательное
depthLoadOp: GPULoadOp
необязательное
depthStoreOp: GPUStoreOp
необязательное
depthReadOnly: boolean
необязательное
stencilClearValue: number
необязательное
stencilLoadOp: GPULoadOp
необязательное
stencilStoreOp: GPUStoreOp
необязательное
stencilReadOnly: boolean
необязательное

интерфейс GPURenderPassDescriptor

расширяет GPUObjectDescriptorBase

Свойства

colorAttachments: (GPURenderPassColorAttachment | null)[]
depthStencilAttachment: GPURenderPassDepthStencilAttachment
необязательное
occlusionQuerySet: GPUQuerySet
необязательное
timestampWrites: GPURenderPassTimestampWrites
необязательное

интерфейс GPURenderPassLayout

расширяет GPUObjectDescriptorBase

Свойства

colorFormats: (GPUTextureFormat | null)[]
depthStencilFormat: GPUTextureFormat
необязательное
sampleCount: number
необязательное

интерфейс GPURenderPassTimestampWrites

Свойства

querySet: GPUQuerySet
beginningOfPassWriteIndex: number
необязательное
endOfPassWriteIndex: number
необязательное

интерфейс GPURenderPipelineDescriptor

расширяет GPUPipelineDescriptorBase

Свойства

vertex: GPUVertexState
primitive: GPUPrimitiveState
необязательное
depthStencil: GPUDepthStencilState
необязательное
multisample: GPUMultisampleState
необязательное
fragment: GPUFragmentState
необязательное

интерфейс GPURequestAdapterOptions

Свойства

powerPreference: GPUPowerPreference
необязательное
forceFallbackAdapter: boolean
необязательное

интерфейс GPUSamplerBindingLayout

Свойства

type: GPUSamplerBindingType
необязательное

интерфейс GPUSamplerDescriptor

расширяет GPUObjectDescriptorBase

Свойства

addressModeU: GPUAddressMode
необязательное
addressModeV: GPUAddressMode
необязательное
addressModeW: GPUAddressMode
необязательное
magFilter: GPUFilterMode
необязательное
minFilter: GPUFilterMode
необязательное
mipmapFilter: GPUMipmapFilterMode
необязательное
lodMinClamp: number
необязательное
lodMaxClamp: number
необязательное
compare: GPUCompareFunction
необязательное
maxAnisotropy: number
необязательное

интерфейс GPUShaderModuleDescriptor

расширяет GPUObjectDescriptorBase

Свойства

code: string
sourceMap: any
необязательное

интерфейс GPUStencilFaceState

Свойства

compare: GPUCompareFunction
необязательное
failOp: GPUStencilOperation
необязательное
depthFailOp: GPUStencilOperation
необязательное
passOp: GPUStencilOperation
необязательное

интерфейс GPUStorageTextureBindingLayout

Свойства

access: GPUStorageTextureAccess
необязательное
format: GPUTextureFormat
viewDimension: GPUTextureViewDimension
необязательное

интерфейс GPUTexelCopyBufferInfo

расширяет GPUTexelCopyBufferLayout

Свойства

buffer: GPUBuffer

интерфейс GPUTexelCopyBufferLayout

Свойства

offset: number
необязательное
bytesPerRow: number
необязательное
rowsPerImage: number
необязательное

интерфейс GPUTexelCopyTextureInfo

Свойства

texture: GPUTexture
mipLevel: number
необязательное
origin: GPUOrigin3D
необязательное
aspect: GPUTextureAspect
необязательное

интерфейс GPUTextureBindingLayout

Свойства

sampleType: GPUTextureSampleType
необязательное
viewDimension: GPUTextureViewDimension
необязательное
multisampled: boolean
необязательное

интерфейс GPUTextureDescriptor

расширяет GPUObjectDescriptorBase

Свойства

size: GPUExtent3D
mipLevelCount: number
необязательное
sampleCount: number
необязательное
dimension: GPUTextureDimension
необязательное
format: GPUTextureFormat
usage: GPUTextureUsageFlags
viewFormats: GPUTextureFormat[]
необязательное

интерфейс GPUTextureViewDescriptor

расширяет GPUObjectDescriptorBase

Свойства

format: GPUTextureFormat
необязательное
dimension: GPUTextureViewDimension
необязательное
usage: GPUTextureUsageFlags
необязательное
aspect: GPUTextureAspect
необязательное
baseMipLevel: number
необязательное
mipLevelCount: number
необязательное
baseArrayLayer: number
необязательное
arrayLayerCount: number
необязательное

интерфейс GPUUncapturedErrorEventInit

расширяет EventInit

Свойства

error: GPUError

интерфейс GPUValidationError

расширяет GPUError

переменная GPUValidationError

Свойства

prototype: GPUValidationError

интерфейс GPUVertexAttribute

Свойства

format: GPUVertexFormat
offset: number
shaderLocation: number

интерфейс GPUVertexBufferLayout

Свойства

arrayStride: number
stepMode: GPUVertexStepMode
необязательный
attributes: GPUVertexAttribute[]

интерфейс GPUVertexState

наследует GPUProgrammableStage

Свойства

buffers: (GPUVertexBufferLayout | null)[]
необязательный

псевдоним типа GPUAddressMode

Определение

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

псевдоним типа GPUAutoLayoutMode

Определение

"auto"

псевдоним типа GPUBindingResource

Определение

GPUSampler
| GPUTextureView
| GPUBufferBinding

псевдоним типа GPUBlendFactor

Определение

"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"

псевдоним типа GPUBlendOperation

Определение

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

псевдоним типа GPUBufferBindingType

Определение

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

псевдоним типа GPUBufferMapState

Определение

"unmapped"
| "pending"
| "mapped"

псевдоним типа GPUBufferUsageFlags

Определение

number

псевдоним типа GPUColor

Определение

number[] | GPUColorDict

псевдоним типа GPUColorWriteFlags

Определение

number

псевдоним типа GPUCompareFunction

Определение

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

псевдоним типа GPUCompilationMessageType

Определение

"error"
| "warning"
| "info"

псевдоним типа GPUCullMode

Определение

"none"
| "front"
| "back"

псевдоним типа GPUDeviceLostReason

Определение

"destroyed"

псевдоним типа GPUErrorFilter

Определение

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

псевдоним типа GPUExtent3D

Определение

number[] | GPUExtent3DDict

псевдоним типа GPUFeatureName

Определение

"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"

псевдоним типа GPUFilterMode

Определение

"nearest" | "linear"

псевдоним типа GPUFlagsConstant

Определение

number

псевдоним типа GPUFrontFace

Определение

"ccw" | "cw"

псевдоним типа GPUIndexFormat

Определение

"uint16" | "uint32"

псевдоним типа GPULoadOp

Определение

"load" | "clear"

псевдоним типа GPUMapModeFlags

Определение

number

псевдоним типа GPUMipmapFilterMode

Определение

"nearest" | "linear"

псевдоним типа GPUOrigin3D

Определение

number[] | GPUOrigin3DDict

псевдоним типа GPUPowerPreference

Определение

"low-power" | "high-performance"

псевдоним типа GPUPrimitiveTopology

Определение

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

псевдоним типа GPUQueryType

Определение

"occlusion" | "timestamp"

псевдоним типа GPUSamplerBindingType

Определение

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

псевдоним типа GPUShaderStageFlags

Определение

number

псевдоним типа GPUStencilOperation

Определение

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

псевдоним типа GPUStorageTextureAccess

Определение

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

псевдоним типа GPUStoreOp

Определение

"store" | "discard"

псевдоним типа GPUTextureAspect

Определение

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

псевдоним типа GPUTextureDimension

Определение

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

псевдоним типа GPUTextureFormat

Определение

"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"

псевдоним типа GPUTextureSampleType

Определение

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

псевдоним типа GPUTextureUsageFlags

Определение

number

псевдоним типа GPUTextureViewDimension

Определение

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

псевдоним типа GPUVertexFormat

Определение

"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"

псевдоним типа GPUVertexStepMode

Определение

"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