Skip to main content
Module

x/deno/op_crates/webgpu/lib.deno_webgpu.d.ts

A modern runtime for JavaScript and TypeScript.
Go to Latest
File
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
// deno-lint-ignore-file no-explicit-any no-empty-interface
/// <reference no-default-lib="true" />/// <reference lib="esnext" />
// 8cc98b6f10b7f354473a08c3773bb1de839845b9
interface GPUObjectBase { label: string | null;}
declare interface GPUObjectDescriptorBase { label?: string;}
declare class GPUAdapterLimits { maxTextureDimension1D?: number; maxTextureDimension2D?: number; maxTextureDimension3D?: number; maxTextureArrayLayers?: number; maxBindGroups?: number; maxDynamicUniformBuffersPerPipelineLayout?: number; maxDynamicStorageBuffersPerPipelineLayout?: number; maxSampledTexturesPerShaderStage?: number; maxSamplersPerShaderStage?: number; maxStorageBuffersPerShaderStage?: number; maxStorageTexturesPerShaderStage?: number; maxUniformBuffersPerShaderStage?: number; maxUniformBufferBindingSize?: number; maxStorageBufferBindingSize?: number; maxVertexBuffers?: number; maxVertexAttributes?: number; maxVertexBufferArrayStride?: number;}
declare class GPUAdapterFeatures { forEach( callbackfn: ( value: GPUFeatureName, value2: GPUFeatureName, set: Set<GPUFeatureName>, ) => void, thisArg?: any, ): void; has(value: GPUFeatureName): boolean; size: number; [ Symbol .iterator ](): IterableIterator<GPUFeatureName>; entries(): IterableIterator<[GPUFeatureName, GPUFeatureName]>; keys(): IterableIterator<GPUFeatureName>; values(): IterableIterator<GPUFeatureName>;}
declare class GPU { requestAdapter( options?: GPURequestAdapterOptions, ): Promise<GPUAdapter | null>;}
declare interface GPURequestAdapterOptions { powerPreference?: GPUPowerPreference;}
declare type GPUPowerPreference = "low-power" | "high-performance";
declare class GPUAdapter { readonly name: string; readonly features: GPUAdapterFeatures; readonly limits: GPUAdapterLimits;
requestDevice(descriptor?: GPUDeviceDescriptor): Promise<GPUDevice | null>;}
declare interface GPUDeviceDescriptor extends GPUObjectDescriptorBase { nonGuaranteedFeatures?: GPUFeatureName[]; nonGuaranteedLimits?: Record<string, number>;}
declare type GPUFeatureName = | "depth-clamping" | "depth24unorm-stencil8" | "depth32float-stencil8" | "pipeline-statistics-query" | "texture-compression-bc" | "timestamp-query" // extended from spec | "mappable-primary-buffers" | "sampled-texture-binding-array" | "sampled-texture-array-dynamic-indexing" | "sampled-texture-array-non-uniform-indexing" | "unsized-binding-array" | "multi-draw-indirect" | "multi-draw-indirect-count" | "push-constants" | "address-mode-clamp-to-border" | "non-fill-polygon-mode" | "texture-compression-etc2" | "texture-compression-astc-ldr" | "texture-adapter-specific-format-features" | "shader-float64" | "vertex-attribute-64bit";
declare class GPUDevice extends EventTarget implements GPUObjectBase { label: string | null;
readonly lost: Promise<GPUDeviceLostInfo>; pushErrorScope(filter: GPUErrorFilter): undefined; popErrorScope(): Promise<GPUError | null>; onuncapturederror: | ((this: GPUDevice, ev: GPUUncapturedErrorEvent) => any) | null;
readonly adapter: GPUAdapter; readonly features: ReadonlyArray<GPUFeatureName>; readonly limits: Record<string, number>; readonly queue: GPUQueue;
destroy(): undefined;
createBuffer(descriptor: GPUBufferDescriptor): GPUBuffer; createTexture(descriptor: GPUTextureDescriptor): GPUTexture; createSampler(descriptor?: GPUSamplerDescriptor): GPUSampler;
createBindGroupLayout( descriptor: GPUBindGroupLayoutDescriptor, ): GPUBindGroupLayout; createPipelineLayout( descriptor: GPUPipelineLayoutDescriptor, ): GPUPipelineLayout; createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup;
createShaderModule(descriptor: GPUShaderModuleDescriptor): GPUShaderModule; createComputePipeline( descriptor: GPUComputePipelineDescriptor, ): GPUComputePipeline; createRenderPipeline( descriptor: GPURenderPipelineDescriptor, ): GPURenderPipeline; createComputePipelineAsync( descriptor: GPUComputePipelineDescriptor, ): Promise<GPUComputePipeline>; createRenderPipelineAsync( descriptor: GPURenderPipelineDescriptor, ): Promise<GPURenderPipeline>;
createCommandEncoder( descriptor?: GPUCommandEncoderDescriptor, ): GPUCommandEncoder; createRenderBundleEncoder( descriptor: GPURenderBundleEncoderDescriptor, ): GPURenderBundleEncoder;
createQuerySet(descriptor: GPUQuerySetDescriptor): GPUQuerySet;}
declare class GPUBuffer implements GPUObjectBase { label: string | null;
mapAsync( mode: GPUMapModeFlags, offset?: number, size?: number, ): Promise<undefined>; getMappedRange(offset?: number, size?: number): ArrayBuffer; unmap(): undefined;
destroy(): undefined;}
declare interface GPUBufferDescriptor extends GPUObjectDescriptorBase { size: number; usage: GPUBufferUsageFlags; mappedAtCreation?: boolean;}
declare type GPUBufferUsageFlags = number;declare class GPUBufferUsage { static MAP_READ: 0x0001; static MAP_WRITE: 0x0002; static COPY_SRC: 0x0004; static COPY_DST: 0x0008; static INDEX: 0x0010; static VERTEX: 0x0020; static UNIFORM: 0x0040; static STORAGE: 0x0080; static INDIRECT: 0x0100; static QUERY_RESOLVE: 0x0200;}
declare type GPUMapModeFlags = number;declare class GPUMapMode { static READ: 0x0001; static WRITE: 0x0002;}
declare class GPUTexture implements GPUObjectBase { label: string | null;
createView(descriptor?: GPUTextureViewDescriptor): GPUTextureView; destroy(): undefined;}
declare interface GPUTextureDescriptor extends GPUObjectDescriptorBase { size: GPUExtent3D; mipLevelCount?: number; sampleCount?: number; dimension?: GPUTextureDimension; format: GPUTextureFormat; usage: GPUTextureUsageFlags;}
declare type GPUTextureDimension = "1d" | "2d" | "3d";
declare type GPUTextureUsageFlags = number;declare class GPUTextureUsage { static COPY_SRC: 0x01; static COPY_DST: 0x02; static SAMPLED: 0x04; static STORAGE: 0x08; static RENDER_ATTACHMENT: 0x10;}
declare class GPUTextureView implements GPUObjectBase { label: string | null;}
declare interface GPUTextureViewDescriptor extends GPUObjectDescriptorBase { format?: GPUTextureFormat; dimension?: GPUTextureViewDimension; aspect?: GPUTextureAspect; baseMipLevel?: number; mipLevelCount?: number; baseArrayLayer?: number; arrayLayerCount?: number;}
declare type GPUTextureViewDimension = | "1d" | "2d" | "2d-array" | "cube" | "cube-array" | "3d";
declare type GPUTextureAspect = "all" | "stencil-only" | "depth-only";
declare type 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" | "rgb10a2unorm" | "rg11b10ufloat" | "rg32uint" | "rg32sint" | "rg32float" | "rgba16uint" | "rgba16sint" | "rgba16float" | "rgba32uint" | "rgba32sint" | "rgba32float" | "stencil8" | "depth16unorm" | "depth24plus" | "depth24plus-stencil8" | "depth32float" | "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" | "depth24unorm-stencil8" | "depth32float-stencil8";
declare class GPUSampler implements GPUObjectBase { label: string | null;}
declare interface GPUSamplerDescriptor extends GPUObjectDescriptorBase { addressModeU?: GPUAddressMode; addressModeV?: GPUAddressMode; addressModeW?: GPUAddressMode; magFilter?: GPUFilterMode; minFilter?: GPUFilterMode; mipmapFilter?: GPUFilterMode; lodMinClamp?: number; lodMaxClamp?: number; compare?: GPUCompareFunction; maxAnisotropy?: number;}
declare type GPUAddressMode = "clamp-to-edge" | "repeat" | "mirror-repeat";
declare type GPUFilterMode = "nearest" | "linear";
declare type GPUCompareFunction = | "never" | "less" | "equal" | "less-equal" | "greater" | "not-equal" | "greater-equal" | "always";
declare class GPUBindGroupLayout implements GPUObjectBase { label: string | null;}
declare interface GPUBindGroupLayoutDescriptor extends GPUObjectDescriptorBase { entries: GPUBindGroupLayoutEntry[];}
declare interface GPUBindGroupLayoutEntry { binding: number; visibility: GPUShaderStageFlags;
buffer?: GPUBufferBindingLayout; sampler?: GPUSamplerBindingLayout; texture?: GPUTextureBindingLayout; storageTexture?: GPUStorageTextureBindingLayout;}
declare type GPUShaderStageFlags = number;declare class GPUShaderStage { static VERTEX: 0x1; static FRAGMENT: 0x2; static COMPUTE: 0x4;}
declare interface GPUBufferBindingLayout { type?: GPUBufferBindingType; hasDynamicOffset?: boolean; minBindingSize?: number;}
declare type GPUBufferBindingType = "uniform" | "storage" | "read-only-storage";
declare interface GPUSamplerBindingLayout { type?: GPUSamplerBindingType;}
declare type GPUSamplerBindingType = | "filtering" | "non-filtering" | "comparison";
declare interface GPUTextureBindingLayout { sampleType?: GPUTextureSampleType; viewDimension?: GPUTextureViewDimension; multisampled?: boolean;}
declare type GPUTextureSampleType = | "float" | "unfilterable-float" | "depth" | "sint" | "uint";
declare interface GPUTextureBindingLayout { sampleType?: GPUTextureSampleType; viewDimension?: GPUTextureViewDimension; multisampled?: boolean;}
declare type GPUStorageTextureAccess = "read-only" | "write-only";
declare interface GPUStorageTextureBindingLayout { access: GPUStorageTextureAccess; format: GPUTextureFormat; viewDimension?: GPUTextureViewDimension;}
declare class GPUBindGroup implements GPUObjectBase { label: string | null;}
declare interface GPUBindGroupDescriptor extends GPUObjectDescriptorBase { layout: GPUBindGroupLayout; entries: GPUBindGroupEntry[];}
declare type GPUBindingResource = | GPUSampler | GPUTextureView | GPUBufferBinding;
declare interface GPUBindGroupEntry { binding: number; resource: GPUBindingResource;}
declare interface GPUBufferBinding { buffer: GPUBuffer; offset?: number; size?: number;}
declare class GPUPipelineLayout implements GPUObjectBase { label: string | null;}
declare interface GPUPipelineLayoutDescriptor extends GPUObjectDescriptorBase { bindGroupLayouts: GPUBindGroupLayout[];}
declare type GPUCompilationMessageType = "error" | "warning" | "info";
declare interface GPUCompilationMessage { readonly message: string; readonly type: GPUCompilationMessageType; readonly lineNum: number; readonly linePos: number;}
declare interface GPUCompilationInfo { readonly messages: ReadonlyArray<GPUCompilationMessage>;}
declare class GPUShaderModule implements GPUObjectBase { label: string | null;
compilationInfo(): Promise<GPUCompilationInfo>;}
declare interface GPUShaderModuleDescriptor extends GPUObjectDescriptorBase { code: string | Uint32Array; sourceMap?: any;}
declare interface GPUPipelineDescriptorBase extends GPUObjectDescriptorBase { layout?: GPUPipelineLayout;}
declare interface GPUPipelineBase { getBindGroupLayout(index: number): GPUBindGroupLayout;}
declare interface GPUProgrammableStage { module: GPUShaderModule; entryPoint: string;}
declare class GPUComputePipeline implements GPUObjectBase, GPUPipelineBase { label: string | null;
getBindGroupLayout(index: number): GPUBindGroupLayout;}
declare interface GPUComputePipelineDescriptor extends GPUPipelineDescriptorBase { compute: GPUProgrammableStage;}
declare class GPURenderPipeline implements GPUObjectBase, GPUPipelineBase { label: string | null;
getBindGroupLayout(index: number): GPUBindGroupLayout;}
declare interface GPURenderPipelineDescriptor extends GPUPipelineDescriptorBase { vertex: GPUVertexState; primitive?: GPUPrimitiveState; depthStencil?: GPUDepthStencilState; multisample?: GPUMultisampleState; fragment?: GPUFragmentState;}
declare type GPUPrimitiveTopology = | "point-list" | "line-list" | "line-strip" | "triangle-list" | "triangle-strip";
declare interface GPUPrimitiveState { topology?: GPUPrimitiveTopology; stripIndexFormat?: GPUIndexFormat; frontFace?: GPUFrontFace; cullMode?: GPUCullMode;}
declare type GPUFrontFace = "ccw" | "cw";
declare type GPUCullMode = "none" | "front" | "back";
declare interface GPUMultisampleState { count?: number; mask?: number; alphaToCoverageEnabled?: boolean;}
declare interface GPUFragmentState extends GPUProgrammableStage { targets: GPUColorTargetState[];}
declare interface GPUColorTargetState { format: GPUTextureFormat;
blend?: GPUBlendState; writeMask?: GPUColorWriteFlags;}
declare interface GPUBlendState { color: GPUBlendComponent; alpha: GPUBlendComponent;}
declare type GPUColorWriteFlags = number;declare class GPUColorWrite { static RED: 0x1; static GREEN: 0x2; static BLUE: 0x4; static ALPHA: 0x8; static ALL: 0xF;}
declare interface GPUBlendComponent { srcFactor: GPUBlendFactor; dstFactor: GPUBlendFactor; operation: GPUBlendOperation;}
declare type GPUBlendFactor = | "zero" | "one" | "src-color" | "one-minus-src-color" | "src-alpha" | "one-minus-src-alpha" | "dst-color" | "one-minus-dst-color" | "dst-alpha" | "one-minus-dst-alpha" | "src-alpha-saturated" | "blend-color" | "one-minus-blend-color";
declare type GPUBlendOperation = | "add" | "subtract" | "reverse-subtract" | "min" | "max";
declare interface GPUDepthStencilState { format: GPUTextureFormat;
depthWriteEnabled?: boolean; depthCompare?: GPUCompareFunction;
stencilFront?: GPUStencilFaceState; stencilBack?: GPUStencilFaceState;
stencilReadMask?: number; stencilWriteMask?: number;
depthBias?: number; depthBiasSlopeScale?: number; depthBiasClamp?: number;
clampDepth?: boolean;}
declare interface GPUStencilFaceState { compare?: GPUCompareFunction; failOp?: GPUStencilOperation; depthFailOp?: GPUStencilOperation; passOp?: GPUStencilOperation;}
declare type GPUStencilOperation = | "keep" | "zero" | "replace" | "invert" | "increment-clamp" | "decrement-clamp" | "increment-wrap" | "decrement-wrap";
declare type GPUIndexFormat = "uint16" | "uint32";
declare type GPUVertexFormat = | "uchar2" | "uchar4" | "char2" | "char4" | "uchar2norm" | "uchar4norm" | "char2norm" | "char4norm" | "ushort2" | "ushort4" | "short2" | "short4" | "ushort2norm" | "ushort4norm" | "short2norm" | "short4norm" | "half2" | "half4" | "float" | "float2" | "float3" | "float4" | "uint" | "uint2" | "uint3" | "uint4" | "int" | "int2" | "int3" | "int4";
declare type GPUInputStepMode = "vertex" | "instance";
declare interface GPUVertexState extends GPUProgrammableStage { buffers?: (GPUVertexBufferLayout | null)[];}
declare interface GPUVertexBufferLayout { arrayStride: number; stepMode?: GPUInputStepMode; attributes: GPUVertexAttribute[];}
declare interface GPUVertexAttribute { format: GPUVertexFormat; offset: number;
shaderLocation: number;}
declare class GPUCommandBuffer implements GPUObjectBase { label: string | null;
readonly executionTime: Promise<number>;}
declare interface GPUCommandBufferDescriptor extends GPUObjectDescriptorBase {}
declare class GPUCommandEncoder implements GPUObjectBase { label: string | null;
beginRenderPass(descriptor: GPURenderPassDescriptor): GPURenderPassEncoder; beginComputePass( descriptor?: GPUComputePassDescriptor, ): GPUComputePassEncoder;
copyBufferToBuffer( source: GPUBuffer, sourceOffset: number, destination: GPUBuffer, destinationOffset: number, size: number, ): undefined;
copyBufferToTexture( source: GPUImageCopyBuffer, destination: GPUImageCopyTexture, copySize: GPUExtent3D, ): undefined;
copyTextureToBuffer( source: GPUImageCopyTexture, destination: GPUImageCopyBuffer, copySize: GPUExtent3D, ): undefined;
copyTextureToTexture( source: GPUImageCopyTexture, destination: GPUImageCopyTexture, copySize: GPUExtent3D, ): undefined;
pushDebugGroup(groupLabel: string): undefined; popDebugGroup(): undefined; insertDebugMarker(markerLabel: string): undefined;
writeTimestamp(querySet: GPUQuerySet, queryIndex: number): undefined;
resolveQuerySet( querySet: GPUQuerySet, firstQuery: number, queryCount: number, destination: GPUBuffer, destinationOffset: number, ): undefined;
finish(descriptor?: GPUCommandBufferDescriptor): GPUCommandBuffer;}
declare interface GPUCommandEncoderDescriptor extends GPUObjectDescriptorBase { measureExecutionTime?: boolean;}
declare interface GPUImageDataLayout { offset?: number; bytesPerRow?: number; rowsPerImage?: number;}
declare interface GPUImageCopyBuffer extends GPUImageDataLayout { buffer: GPUBuffer;}
declare interface GPUImageCopyTexture { texture: GPUTexture; mipLevel?: number; origin?: GPUOrigin3D; aspect?: GPUTextureAspect;}
interface GPUProgrammablePassEncoder { setBindGroup( index: number, bindGroup: GPUBindGroup, dynamicOffsets?: number[], ): undefined;
setBindGroup( index: number, bindGroup: GPUBindGroup, dynamicOffsetsData: Uint32Array, dynamicOffsetsDataStart: number, dynamicOffsetsDataLength: number, ): undefined;
pushDebugGroup(groupLabel: string): undefined; popDebugGroup(): undefined; insertDebugMarker(markerLabel: string): undefined;}
declare class GPUComputePassEncoder implements GPUObjectBase, GPUProgrammablePassEncoder { label: string | null; setBindGroup( index: number, bindGroup: GPUBindGroup, dynamicOffsets?: number[], ): undefined; setBindGroup( index: number, bindGroup: GPUBindGroup, dynamicOffsetsData: Uint32Array, dynamicOffsetsDataStart: number, dynamicOffsetsDataLength: number, ): undefined; pushDebugGroup(groupLabel: string): undefined; popDebugGroup(): undefined; insertDebugMarker(markerLabel: string): undefined; setPipeline(pipeline: GPUComputePipeline): undefined; dispatch(x: number, y?: number, z?: number): undefined; dispatchIndirect( indirectBuffer: GPUBuffer, indirectOffset: number, ): undefined;
beginPipelineStatisticsQuery( querySet: GPUQuerySet, queryIndex: number, ): undefined; endPipelineStatisticsQuery(): undefined;
writeTimestamp(querySet: GPUQuerySet, queryIndex: number): undefined;
endPass(): undefined;}
declare interface GPUComputePassDescriptor extends GPUObjectDescriptorBase {}
interface 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;}
declare class GPURenderPassEncoder implements GPUObjectBase, GPUProgrammablePassEncoder, GPURenderEncoderBase { label: string | null; setBindGroup( index: number, bindGroup: GPUBindGroup, dynamicOffsets?: number[], ): undefined; setBindGroup( index: number, bindGroup: GPUBindGroup, dynamicOffsetsData: Uint32Array, dynamicOffsetsDataStart: number, dynamicOffsetsDataLength: number, ): undefined; pushDebugGroup(groupLabel: string): undefined; popDebugGroup(): undefined; insertDebugMarker(markerLabel: string): undefined; 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;
setViewport( x: number, y: number, width: number, height: number, minDepth: number, maxDepth: number, ): undefined;
setScissorRect( x: number, y: number, width: number, height: number, ): undefined;
setBlendColor(color: GPUColor): undefined; setStencilReference(reference: number): undefined;
beginOcclusionQuery(queryIndex: number): undefined; endOcclusionQuery(): undefined;
beginPipelineStatisticsQuery( querySet: GPUQuerySet, queryIndex: number, ): undefined; endPipelineStatisticsQuery(): undefined;
writeTimestamp(querySet: GPUQuerySet, queryIndex: number): undefined;
executeBundles(bundles: GPURenderBundle[]): undefined; endPass(): undefined;}
declare interface GPURenderPassDescriptor extends GPUObjectDescriptorBase { colorAttachments: GPURenderPassColorAttachment[]; depthStencilAttachment?: GPURenderPassDepthStencilAttachment; occlusionQuerySet?: GPUQuerySet;}
declare interface GPURenderPassColorAttachment { view: GPUTextureView; resolveTarget?: GPUTextureView;
loadValue: GPULoadOp | GPUColor; storeOp?: GPUStoreOp;}
declare interface GPURenderPassDepthStencilAttachment { view: GPUTextureView;
depthLoadValue: GPULoadOp | number; depthStoreOp: GPUStoreOp; depthReadOnly?: boolean;
stencilLoadValue: GPULoadOp | number; stencilStoreOp: GPUStoreOp; stencilReadOnly?: boolean;}
declare type GPULoadOp = "load";
declare type GPUStoreOp = "store" | "clear";
declare class GPURenderBundle implements GPUObjectBase { label: string | null;}
declare interface GPURenderBundleDescriptor extends GPUObjectDescriptorBase {}
declare class GPURenderBundleEncoder implements GPUObjectBase, GPUProgrammablePassEncoder, GPURenderEncoderBase { label: string | null; 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; insertDebugMarker(markerLabel: string): undefined; popDebugGroup(): undefined; pushDebugGroup(groupLabel: string): undefined; setBindGroup( index: number, bindGroup: GPUBindGroup, dynamicOffsets?: number[], ): undefined; setBindGroup( index: number, bindGroup: GPUBindGroup, 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;
finish(descriptor?: GPURenderBundleDescriptor): GPURenderBundle;}
declare interface GPURenderBundleEncoderDescriptor extends GPUObjectDescriptorBase { colorFormats: GPUTextureFormat[]; depthStencilFormat?: GPUTextureFormat; sampleCount?: number;}
declare class GPUQueue implements GPUObjectBase { label: string | null;
submit(commandBuffers: GPUCommandBuffer[]): undefined;
onSubmittedWorkDone(): Promise<undefined>;
writeBuffer( buffer: GPUBuffer, bufferOffset: number, data: BufferSource, dataOffset?: number, size?: number, ): undefined;
writeTexture( destination: GPUImageCopyTexture, data: BufferSource, dataLayout: GPUImageDataLayout, size: GPUExtent3D, ): undefined;}
declare class GPUQuerySet implements GPUObjectBase { label: string | null;
destroy(): undefined;}
declare interface GPUQuerySetDescriptor extends GPUObjectDescriptorBase { type: GPUQueryType; count: number; pipelineStatistics?: GPUPipelineStatisticName[];}
declare type GPUQueryType = "occlusion" | "pipeline-statistics" | "timestamp";
declare type GPUPipelineStatisticName = | "vertex-shader-invocations" | "clipper-invocations" | "clipper-primitives-out" | "fragment-shader-invocations" | "compute-shader-invocations";
declare type GPUDeviceLostReason = "destroyed";
declare interface GPUDeviceLostInfo { readonly reason: GPUDeviceLostReason | undefined; readonly message: string;}
declare type GPUErrorFilter = "out-of-memory" | "validation";
declare class GPUOutOfMemoryError { constructor();}
declare class GPUValidationError { constructor(message: string); readonly message: string;}
declare type GPUError = GPUOutOfMemoryError | GPUValidationError;
declare class GPUUncapturedErrorEvent extends Event { constructor( type: string, gpuUncapturedErrorEventInitDict: GPUUncapturedErrorEventInit, ); readonly error: GPUError;}
declare interface GPUUncapturedErrorEventInit extends EventInit { error?: GPUError;}
declare interface GPUColorDict { r: number; g: number; b: number; a: number;}
declare type GPUColor = number[] | GPUColorDict;
declare interface GPUOrigin3DDict { x?: number; y?: number; z?: number;}
declare type GPUOrigin3D = number[] | GPUOrigin3DDict;
declare interface GPUExtent3DDict { width?: number; height?: number; depth?: number;}
declare type GPUExtent3D = number[] | GPUExtent3DDict;