GPU
GPU programming and rendering. Efficiently use a device’s graphics processing unit (GPU) for high-performance computations and complex image rendering.
Eg GPUDevice
Classes
The entry point to WebGPU in Deno, accessed via the global navigator.gpu property.
Represents a physical GPU device that can be used to create a logical GPU device.
Used to record GPU commands for later execution by the GPU.
The primary interface for interacting with a WebGPU device.
- adapterInfo
- createBindGroup
- createBindGroupLayout
- createBuffer
- createCommandEncoder
- createComputePipeline
- createComputePipelineAsync
- createPipelineLayout
- createQuerySet
- createRenderBundleEncoder
- createRenderPipeline
- createRenderPipelineAsync
- createSampler
- createShaderModule
- createTexture
- destroy
- features
- label
- limits
- lost
- popErrorScope
- pushErrorScope
- queue
Represents a queue to submit commands to the GPU.
Represents a compiled shader module that can be used to create graphics or compute pipelines.
- maxBindGroups
- maxBindGroupsPlusVertexBuffers
- maxBindingsPerBindGroup
- maxBufferSize
- maxColorAttachmentBytesPerSample
- maxColorAttachments
- maxComputeInvocationsPerWorkgroup
- maxComputeWorkgroupSizeX
- maxComputeWorkgroupSizeY
- maxComputeWorkgroupSizeZ
- maxComputeWorkgroupStorageSize
- maxComputeWorkgroupsPerDimension
- maxDynamicStorageBuffersPerPipelineLayout
- maxDynamicUniformBuffersPerPipelineLayout
- maxInterStageShaderVariables
- maxSampledTexturesPerShaderStage
- maxSamplersPerShaderStage
- maxStorageBufferBindingSize
- maxStorageBuffersPerShaderStage
- maxStorageTexturesPerShaderStage
- maxTextureArrayLayers
- maxTextureDimension1D
- maxTextureDimension2D
- maxTextureDimension3D
- maxUniformBufferBindingSize
- maxUniformBuffersPerShaderStage
- maxVertexAttributes
- maxVertexBufferArrayStride
- maxVertexBuffers
- minStorageBufferOffsetAlignment
- minUniformBufferOffsetAlignment
Represents a texture (image) in GPU memory.
Interfaces
The GPUPipelineError interface of the WebGPU API describes a pipeline failure.
Available only in secure contexts.
Type Aliases
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 #
#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 #info: GPUAdapterInfo #limits: GPUSupportedLimits Methods #
#requestDevice(descriptor?: GPUDeviceDescriptor): Promise<GPUDevice> class GPUAdapterInfo
Properties #
#architecture: string #description: string #isFallbackAdapter: boolean #subgroupMaxSize: number #subgroupMinSize: number class GPUBuffer
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 #
#mapState: GPUBufferMapState #usage: GPUFlagsConstant Methods #
#getMappedRange(offset?: number,size?: number,): ArrayBuffer class GPUCommandEncoder
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 #
Methods #
#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 class GPUCompilationInfo
Properties #
#messages: ReadonlyArray<GPUCompilationMessage> class GPUComputePassEncoder
Properties #
Methods #
#dispatchWorkgroups(x: number,y?: number,z?: number,): undefined #dispatchWorkgroupsIndirect(indirectBuffer: GPUBuffer,indirectOffset: number,): 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 class GPUDevice
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 #features: GPUSupportedFeatures #limits: GPUSupportedLimits #lost: Promise<GPUDeviceLostInfo> Methods #
#createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup #createBuffer(descriptor: GPUBufferDescriptor): GPUBuffer #createCommandEncoder(descriptor?: GPUCommandEncoderDescriptor): GPUCommandEncoder #createComputePipelineAsync(descriptor: GPUComputePipelineDescriptor): Promise<GPUComputePipeline> #createQuerySet(descriptor: GPUQuerySetDescriptor): GPUQuerySet #createRenderPipelineAsync(descriptor: GPURenderPipelineDescriptor): Promise<GPURenderPipeline> #createSampler(descriptor?: GPUSamplerDescriptor): GPUSampler #createShaderModule(descriptor: GPUShaderModuleDescriptor): GPUShaderModule #createTexture(descriptor: GPUTextureDescriptor): GPUTexture #popErrorScope(): Promise<GPUError | null> #pushErrorScope(filter: GPUErrorFilter): undefined class GPUQuerySet
class GPUQueue
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 #
Methods #
#onSubmittedWorkDone(): Promise<undefined> #submit(commandBuffers: GPUCommandBuffer[]): undefined #writeBuffer(): undefined #writeTexture(destination: GPUTexelCopyTextureInfo,data: BufferSource,dataLayout: GPUTexelCopyBufferLayout,size: GPUExtent3D,): undefined class GPURenderBundleEncoder
Properties #
Methods #
#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 class GPURenderPassEncoder
Properties #
Methods #
#beginOcclusionQuery(queryIndex: 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 #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 class GPUShaderModule
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 #
Methods #
#getCompilationInfo(): Promise<GPUCompilationInfo> Returns compilation messages for this shader module, which can include errors, warnings and info messages.
class GPUSupportedFeatures
Properties #
Methods #
#[Symbol.iterator](): IterableIterator<GPUFeatureName> #entries(): IterableIterator<[GPUFeatureName, GPUFeatureName]> #has(value: GPUFeatureName): boolean #keys(): IterableIterator<GPUFeatureName> #values(): IterableIterator<GPUFeatureName> class GPUSupportedLimits
Properties #
#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 class GPUTexture
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 #dimension: GPUTextureDimension #format: GPUTextureFormat #mipLevelCount: number #sampleCount: number #usage: GPUFlagsConstant Methods #
#createView(descriptor?: GPUTextureViewDescriptor): GPUTextureView class GPUTextureUsage
Static Properties #
class GPUUncapturedErrorEvent
interface GPUBindGroupEntry
interface GPUBindGroupLayoutEntry
Properties #
#buffer: GPUBufferBindingLayout #sampler: GPUSamplerBindingLayout #texture: GPUTextureBindingLayout interface GPUBlendComponent
Properties #
#operation: GPUBlendOperation #srcFactor: GPUBlendFactor #dstFactor: GPUBlendFactor interface GPUBlendState
Properties #
interface GPUBufferBindingLayout
Properties #
#type: GPUBufferBindingType #hasDynamicOffset: boolean #minBindingSize: number interface GPUColorTargetState
Properties #
interface GPUComputePassTimestampWrites
Properties #
#beginningOfPassWriteIndex: number #endOfPassWriteIndex: number interface GPUDepthStencilState
Properties #
#depthWriteEnabled: boolean #depthCompare: GPUCompareFunction #stencilFront: GPUStencilFaceState #stencilBack: GPUStencilFaceState #stencilReadMask: number #stencilWriteMask: number #depthBiasSlopeScale: number #depthBiasClamp: number interface GPUDeviceDescriptor
Properties #
#requiredFeatures: GPUFeatureName[] #requiredLimits: Record<string, number | undefined> interface GPUDeviceLostInfo
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.
Properties #
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.
interface GPUExtent3DDict
interface GPUFragmentState
Properties #
#targets: (GPUColorTargetState | null)[] variable GPUInternalError
Properties #
interface GPUMultisampleState
interface GPUObjectBase
interface GPUObjectDescriptorBase
variable GPUOutOfMemoryError
Properties #
interface GPUPipelineBase
Methods #
#getBindGroupLayout(index: number): GPUBindGroupLayout interface GPUPipelineError
The GPUPipelineError interface of the WebGPU API describes a pipeline failure.
Available only in secure contexts.
Properties #
The reason read-only property of the GPUPipelineError interface defines the reason the pipeline creation failed in a machine-readable way.
variable GPUPipelineError
Properties #
interface GPUPipelineErrorInit
interface GPUPrimitiveState
Properties #
#topology: GPUPrimitiveTopology #stripIndexFormat: GPUIndexFormat #frontFace: GPUFrontFace #cullMode: GPUCullMode #unclippedDepth: boolean interface GPUProgrammablePassEncoder
Methods #
#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 interface GPUProgrammableStage
Properties #
interface GPUQuerySetDescriptor
interface GPURenderBundleEncoderDescriptor
Properties #
#depthReadOnly: boolean #stencilReadOnly: boolean interface GPURenderEncoderBase
Methods #
#setPipeline(pipeline: GPURenderPipeline): undefined #setIndexBuffer(): undefined #setVertexBuffer(): 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 #
#resolveTarget: GPUTextureView #clearValue: GPUColor interface GPURenderPassDepthStencilAttachment
Properties #
#depthClearValue: number #depthLoadOp: GPULoadOp #depthStoreOp: GPUStoreOp #depthReadOnly: boolean #stencilClearValue: number #stencilLoadOp: GPULoadOp #stencilStoreOp: GPUStoreOp #stencilReadOnly: boolean interface GPURenderPassDescriptor
Properties #
#colorAttachments: (GPURenderPassColorAttachment | null)[] #occlusionQuerySet: GPUQuerySet #timestampWrites: GPURenderPassTimestampWrites interface GPURenderPassLayout
Properties #
#colorFormats: (GPUTextureFormat | null)[] #depthStencilFormat: GPUTextureFormat #sampleCount: number interface GPURenderPassTimestampWrites
Properties #
#beginningOfPassWriteIndex: number #endOfPassWriteIndex: number interface GPURenderPipelineDescriptor
Properties #
#primitive: GPUPrimitiveState #depthStencil: GPUDepthStencilState #multisample: GPUMultisampleState #fragment: GPUFragmentState interface GPURequestAdapterOptions
Properties #
#powerPreference: GPUPowerPreference #forceFallbackAdapter: boolean interface GPUSamplerBindingLayout
Properties #
#type: GPUSamplerBindingType interface GPUSamplerDescriptor
Properties #
#addressModeU: GPUAddressMode #addressModeV: GPUAddressMode #addressModeW: GPUAddressMode #magFilter: GPUFilterMode #minFilter: GPUFilterMode #mipmapFilter: GPUMipmapFilterMode #lodMinClamp: number #lodMaxClamp: number #compare: GPUCompareFunction #maxAnisotropy: number interface GPUShaderModuleDescriptor
interface GPUStencilFaceState
Properties #
#compare: GPUCompareFunction #failOp: GPUStencilOperation #depthFailOp: GPUStencilOperation #passOp: GPUStencilOperation interface GPUStorageTextureBindingLayout
Properties #
#access: GPUStorageTextureAccess #viewDimension: GPUTextureViewDimension interface GPUTexelCopyBufferLayout
Properties #
interface GPUTexelCopyTextureInfo
Properties #
#origin: GPUOrigin3D #aspect: GPUTextureAspect interface GPUTextureBindingLayout
Properties #
#sampleType: GPUTextureSampleType #viewDimension: GPUTextureViewDimension #multisampled: boolean interface GPUTextureDescriptor
Properties #
#mipLevelCount: number #sampleCount: number #dimension: GPUTextureDimension #viewFormats: GPUTextureFormat[] interface GPUTextureViewDescriptor
Properties #
#format: GPUTextureFormat #dimension: GPUTextureViewDimension #usage: GPUTextureUsageFlags #aspect: GPUTextureAspect #baseMipLevel: number #mipLevelCount: number #baseArrayLayer: number #arrayLayerCount: number variable GPUValidationError
Properties #
interface GPUVertexAttribute
Properties #
interface GPUVertexBufferLayout
Properties #
interface GPUVertexState
Properties #
#buffers: (GPUVertexBufferLayout | null)[] type alias GPUAddressMode
Definition #
"clamp-to-edge"
| "repeat"
| "mirror-repeat" type alias GPUAutoLayoutMode
Definition #
"auto" type alias GPUBindingResource
Definition #
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 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"