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");
Методы
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 класс GPUBuffer
Представляет блок памяти, выделенный на 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(): Promise<undefined> unmap(): undefined класс GPUCommandEncoder
Используется для записи команд 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(): undefined copyBufferToBuffer(
source: GPUBuffer,
sourceOffset: number,
destination: GPUBuffer,
destinationOffset: number,
size: number,
): undefined copyBufferToTexture(): undefined copyTextureToBuffer(): undefined copyTextureToTexture(): 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
класс GPUComputePassEncoder
Свойства
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(): undefined setBindGroup(
index: number,
bindGroup: GPUBindGroup | null,
dynamicOffsetsData: Uint32Array,
dynamicOffsetsDataStart: number,
dynamicOffsetsDataLength: number,
): undefined setPipeline(pipeline: GPUComputePipeline): undefined класс GPUComputePipeline
Свойства
label: string Методы
getBindGroupLayout(index: number): GPUBindGroupLayout класс GPUDevice
Основной интерфейс для взаимодействия с устройством 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> Методы
createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup createBuffer(descriptor: GPUBufferDescriptor): GPUBuffer createCommandEncoder(descriptor?: GPUCommandEncoderDescriptor): GPUCommandEncoder createComputePipelineAsync(descriptor: GPUComputePipelineDescriptor): Promise<GPUComputePipeline> createPipelineLayout(descriptor: GPUPipelineLayoutDescriptor): GPUPipelineLayout createQuerySet(descriptor: GPUQuerySetDescriptor): GPUQuerySet 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
класс GPUQueue
Представляет очередь для отправки команд графическому процессору.
Примеры
// 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(): undefined writeTexture(
destination: GPUTexelCopyTextureInfo,
data: BufferSource,
dataLayout: GPUTexelCopyBufferLayout,
size: GPUExtent3D,
): undefined класс GPURenderBundleEncoder
Свойства
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(): undefined setBindGroup(
index: number,
bindGroup: GPUBindGroup | null,
dynamicOffsetsData: Uint32Array,
dynamicOffsetsDataStart: number,
dynamicOffsetsDataLength: number,
): undefined setIndexBuffer(): undefined setPipeline(pipeline: GPURenderPipeline): undefined setVertexBuffer(): undefined класс GPURenderPassEncoder
Свойства
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(): undefined setBindGroup(
index: number,
bindGroup: GPUBindGroup | null,
dynamicOffsetsData: Uint32Array,
dynamicOffsetsDataStart: number,
dynamicOffsetsDataLength: number,
): undefined setBlendConstant(color: GPUColor): undefined setIndexBuffer(): undefined setPipeline(pipeline: GPURenderPipeline): undefined setScissorRect(
x: number,
y: number,
width: number,
height: number,
): undefined setStencilReference(reference: number): undefined setVertexBuffer(): undefined setViewport(
x: number,
y: number,
width: number,
height: number,
minDepth: number,
maxDepth: number,
): undefined класс GPURenderPipeline
Свойства
label: string Методы
getBindGroupLayout(index: number): GPUBindGroupLayout класс GPUShaderModule
Представляет скомпилированный модуль шейдера, который можно использовать для создания графических или вычислительных конвейеров.
Примеры
// Create a shader module using WGSL (WebGPU Shading Language)
const shaderModule = device.createShaderModule({
label: "My Shader",
code: ` Свойства
label: string Методы
getCompilationInfo(): Promise<GPUCompilationInfo> Возвращает сообщения компиляции для этого модуля шейдера, которые могут содержать ошибки, предупреждения и информационные сообщения.
класс GPUShaderStage
класс GPUSupportedFeatures
Свойства
size: number Методы
[Symbol.iterator](): IterableIterator<GPUFeatureName> entries(): IterableIterator<[GPUFeatureName, GPUFeatureName]> forEach(
callbackfn: () => 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
Представляет текстуру (изображение) в памяти 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
Статические свойства
класс GPUUncapturedErrorEvent
Конструкторы
GPUUncapturedErrorEvent(
type: string,
gpuUncapturedErrorEventInitDict: GPUUncapturedErrorEventInit,
) Свойства
интерфейс GPUBindGroupEntry
Свойства
binding: number интерфейс GPUBindGroupLayoutEntry
Свойства
binding: number buffer: GPUBufferBindingLayout sampler: GPUSamplerBindingLayout texture: GPUTextureBindingLayout storageTexture: GPUStorageTextureBindingLayout интерфейс GPUBlendComponent
Свойства
operation: GPUBlendOperation srcFactor: GPUBlendFactor dstFactor: GPUBlendFactor интерфейс GPUBlendState
Свойства
интерфейс GPUBufferBinding
интерфейс GPUBufferBindingLayout
Свойства
type: GPUBufferBindingType hasDynamicOffset: boolean minBindingSize: number интерфейс GPUColorDict
интерфейс GPUColorTargetState
Свойства
blend: GPUBlendState writeMask: GPUColorWriteFlags интерфейс GPUCommandBufferDescriptor
интерфейс GPUCommandEncoderDescriptor
интерфейс GPUComputePassDescriptor
Свойства
timestampWrites: GPUComputePassTimestampWrites интерфейс GPUComputePassTimestampWrites
Свойства
beginningOfPassWriteIndex: number endOfPassWriteIndex: number интерфейс GPUDepthStencilState
Свойства
depthWriteEnabled: boolean depthCompare: GPUCompareFunction stencilFront: GPUStencilFaceState stencilBack: GPUStencilFaceState stencilReadMask: number stencilWriteMask: number depthBias: number depthBiasSlopeScale: number depthBiasClamp: number интерфейс GPUDeviceDescriptor
Свойства
requiredFeatures: GPUFeatureName[] requiredLimits: Record<string, number | undefined> интерфейс GPUDeviceLostInfo
Свойства
reason: GPUDeviceLostReason message: string интерфейс GPUError
Интерфейс GPUError API WebGPU является базовым интерфейсом для ошибок, возникающих при вызове GPUDevice.popErrorScope и события GPUDevice.uncapturederror_event. Доступен только в защищённых контекстах.
Свойства
message: string Свойство message интерфейса A string, доступное только для чтения. Свойство message интерфейса GPUError, доступное только для чтения, содержит понятное человеку сообщение, объясняющее причину возникновения ошибки.
интерфейс GPUExtent3DDict
Свойства
интерфейс GPUFragmentState
Свойства
targets: (GPUColorTargetState | null)[] интерфейс GPUInternalError
переменная GPUInternalError
Свойства
интерфейс GPUMultisampleState
Свойства
count: number mask: number alphaToCoverageEnabled: boolean интерфейс GPUObjectBase
Свойства
label: string интерфейс GPUObjectDescriptorBase
Свойства
label: string интерфейс GPUOrigin3DDict
интерфейс GPUOutOfMemoryError
переменная GPUOutOfMemoryError
Свойства
интерфейс GPUPipelineBase
Методы
getBindGroupLayout(index: number): GPUBindGroupLayout интерфейс GPUPipelineError
Интерфейс GPUPipelineError API WebGPU описывает сбой конвейера. Доступен только в защищённых контекстах.
Свойства
reason: "validation" | "internal" Свойство reason интерфейса GPUPipelineError, доступное только для чтения, определяет причину сбоя создания конвейера в машиночитаемом виде.
переменная GPUPipelineError
Свойства
интерфейс GPUPipelineErrorInit
Свойства
reason: "validation" | "internal" интерфейс GPUPrimitiveState
Свойства
topology: GPUPrimitiveTopology stripIndexFormat: GPUIndexFormat frontFace: GPUFrontFace cullMode: GPUCullMode unclippedDepth: boolean интерфейс GPUProgrammablePassEncoder
Методы
setBindGroup(): 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
Свойства
entryPoint: string constants: Record<string, number> интерфейс GPURenderBundleDescriptor
интерфейс GPURenderBundleEncoderDescriptor
Свойства
depthReadOnly: boolean stencilReadOnly: boolean интерфейс GPURenderEncoderBase
Методы
setPipeline(pipeline: GPURenderPipeline): undefined setIndexBuffer(): undefined setVertexBuffer(): 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
Свойства
resolveTarget: GPUTextureView clearValue: GPUColor интерфейс GPURenderPassDepthStencilAttachment
Свойства
depthClearValue: number depthLoadOp: GPULoadOp depthStoreOp: GPUStoreOp depthReadOnly: boolean stencilClearValue: number stencilLoadOp: GPULoadOp stencilStoreOp: GPUStoreOp stencilReadOnly: boolean интерфейс GPURenderPassDescriptor
Свойства
colorAttachments: (GPURenderPassColorAttachment | null)[] depthStencilAttachment: GPURenderPassDepthStencilAttachment occlusionQuerySet: GPUQuerySet timestampWrites: GPURenderPassTimestampWrites интерфейс GPURenderPassLayout
Свойства
colorFormats: (GPUTextureFormat | null)[] depthStencilFormat: GPUTextureFormat sampleCount: number интерфейс GPURenderPassTimestampWrites
Свойства
beginningOfPassWriteIndex: number endOfPassWriteIndex: number интерфейс GPURenderPipelineDescriptor
Свойства
primitive: GPUPrimitiveState depthStencil: GPUDepthStencilState multisample: GPUMultisampleState fragment: GPUFragmentState интерфейс GPURequestAdapterOptions
Свойства
powerPreference: GPUPowerPreference forceFallbackAdapter: boolean интерфейс GPUSamplerBindingLayout
Свойства
type: GPUSamplerBindingType интерфейс GPUSamplerDescriptor
Свойства
addressModeU: GPUAddressMode addressModeV: GPUAddressMode addressModeW: GPUAddressMode magFilter: GPUFilterMode minFilter: GPUFilterMode mipmapFilter: GPUMipmapFilterMode lodMinClamp: number lodMaxClamp: number compare: GPUCompareFunction maxAnisotropy: number интерфейс GPUShaderModuleDescriptor
интерфейс GPUStencilFaceState
Свойства
compare: GPUCompareFunction failOp: GPUStencilOperation depthFailOp: GPUStencilOperation passOp: GPUStencilOperation интерфейс GPUStorageTextureBindingLayout
Свойства
access: GPUStorageTextureAccess viewDimension: GPUTextureViewDimension интерфейс GPUTexelCopyBufferLayout
Свойства
offset: number bytesPerRow: number rowsPerImage: number интерфейс GPUTexelCopyTextureInfo
Свойства
mipLevel: number origin: GPUOrigin3D aspect: GPUTextureAspect интерфейс GPUTextureBindingLayout
Свойства
sampleType: GPUTextureSampleType viewDimension: GPUTextureViewDimension multisampled: boolean интерфейс GPUTextureDescriptor
Свойства
mipLevelCount: number sampleCount: number dimension: GPUTextureDimension viewFormats: GPUTextureFormat[] интерфейс GPUTextureViewDescriptor
Свойства
format: GPUTextureFormat dimension: GPUTextureViewDimension usage: GPUTextureUsageFlags aspect: GPUTextureAspect baseMipLevel: number mipLevelCount: number baseArrayLayer: number arrayLayerCount: number интерфейс GPUValidationError
переменная GPUValidationError
Свойства
интерфейс GPUVertexAttribute
Свойства
интерфейс GPUVertexBufferLayout
Свойства
интерфейс GPUVertexState
Свойства
buffers: (GPUVertexBufferLayout | null)[] псевдоним типа GPUAddressMode
Определение
"clamp-to-edge"
| "repeat"
| "mirror-repeat"
псевдоним типа GPUAutoLayoutMode
Определение
"auto" псевдоним типа GPUBindingResource
Определение
псевдоним типа 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