|
@@ -1,9 +1,11 @@
|
|
|
-// https://github.com/gpuweb/gpuweb/blob/0a48816412b5d08a5fb8b89005e019165a1a2c63/spec/index.bs
|
|
|
-// except #280 which removed setSubData
|
|
|
+// https://github.com/gpuweb/gpuweb/blob/01b20b4ad93fabae1e8e0d7752515f69708d33e0/spec/index.bs
|
|
|
// except #494 which reverted the addition of GPUAdapter.limits
|
|
|
// except #591 which removed Uint32Array from GPUShaderModuleDescriptor
|
|
|
-// including #543 which adds GPUPipelineBase.getBindGroupLayout
|
|
|
-// v 0.0.24
|
|
|
+// except #708's removal of mapWriteAsync/mapReadAsync/createBufferMapped
|
|
|
+// except #691 et al which added pipeline statistics query (still in flux)
|
|
|
+// including #678 which adds GPUBindGroupLayoutEntry.minBufferBindingSize
|
|
|
+// including #605 which adds new mapping, but without removing the old mapping
|
|
|
+// v 0.0.29
|
|
|
|
|
|
interface GPUColorDict {
|
|
|
a: number;
|
|
@@ -221,6 +223,20 @@ type GPUTextureUsageFlags = number;
|
|
|
// OUTPUT_ATTACHMENT: 0x10;
|
|
|
// };
|
|
|
|
|
|
+type GPUQueryType =
|
|
|
+ | "occlusion";
|
|
|
+
|
|
|
+type GPUCompilationMessageType =
|
|
|
+ | "error"
|
|
|
+ | "warning"
|
|
|
+ | "info";
|
|
|
+
|
|
|
+type GPUMapModeFlags = number;
|
|
|
+// const GPUMapMode: {
|
|
|
+// READ: 0x1;
|
|
|
+// WRITE: 0x2;
|
|
|
+// };
|
|
|
+
|
|
|
interface GPUBindGroupEntry {
|
|
|
binding: number;
|
|
|
resource: GPUBindingResource;
|
|
@@ -235,10 +251,11 @@ interface GPUBindGroupLayoutEntry {
|
|
|
binding: number;
|
|
|
visibility: GPUShaderStageFlags;
|
|
|
type: GPUBindingType;
|
|
|
+ hasDynamicOffset?: boolean;
|
|
|
+ minBufferBindingSize?: number;
|
|
|
viewDimension?: GPUTextureViewDimension;
|
|
|
textureComponentType?: GPUTextureComponentType;
|
|
|
multisampled?: boolean;
|
|
|
- hasDynamicOffset?: boolean;
|
|
|
storageTextureFormat?: GPUTextureFormat;
|
|
|
}
|
|
|
|
|
@@ -267,17 +284,19 @@ interface GPUBufferBinding {
|
|
|
size?: number;
|
|
|
}
|
|
|
|
|
|
-interface GPUBufferCopyView {
|
|
|
- buffer: GPUBuffer;
|
|
|
+interface GPUTextureDataLayout {
|
|
|
offset?: number;
|
|
|
bytesPerRow: number;
|
|
|
rowsPerImage: number;
|
|
|
}
|
|
|
|
|
|
+interface GPUBufferCopyView extends GPUTextureDataLayout {
|
|
|
+ buffer: GPUBuffer;
|
|
|
+}
|
|
|
+
|
|
|
interface GPUTextureCopyView {
|
|
|
texture: GPUTexture;
|
|
|
mipLevel?: number;
|
|
|
- arrayLayer?: number;
|
|
|
origin?: GPUOrigin3D;
|
|
|
}
|
|
|
|
|
@@ -289,6 +308,7 @@ interface GPUImageBitmapCopyView {
|
|
|
interface GPUBufferDescriptor extends GPUObjectDescriptorBase {
|
|
|
size: number;
|
|
|
usage: GPUBufferUsageFlags;
|
|
|
+ mappedAtCreation?: boolean;
|
|
|
}
|
|
|
|
|
|
interface GPUCommandEncoderDescriptor extends GPUObjectDescriptorBase {
|
|
@@ -398,9 +418,11 @@ interface GPURenderPassDepthStencilAttachmentDescriptor {
|
|
|
|
|
|
depthLoadValue: GPULoadOp | number;
|
|
|
depthStoreOp: GPUStoreOp;
|
|
|
+ depthReadOnly?: boolean;
|
|
|
|
|
|
stencilLoadValue: GPULoadOp | number;
|
|
|
stencilStoreOp: GPUStoreOp;
|
|
|
+ stencilReadOnly?: boolean;
|
|
|
}
|
|
|
|
|
|
interface GPURenderPassDescriptor extends GPUObjectDescriptorBase {
|
|
@@ -442,6 +464,7 @@ interface GPUSamplerDescriptor extends GPUObjectDescriptorBase {
|
|
|
interface GPUShaderModuleDescriptor extends GPUObjectDescriptorBase {
|
|
|
code: Uint32Array | string;
|
|
|
label?: string;
|
|
|
+ sourceMap?: object;
|
|
|
}
|
|
|
|
|
|
interface GPUStencilStateFaceDescriptor {
|
|
@@ -497,17 +520,12 @@ declare class GPUBuffer implements GPUObjectBase {
|
|
|
//readonly mapping: ArrayBuffer | null;
|
|
|
destroy(): void;
|
|
|
unmap(): void;
|
|
|
- mapAsync(mode:number, offset?:number, size?: number): Promise<void>;
|
|
|
- getMappedRange(offset?:number, size?:number): ArrayBuffer;
|
|
|
+
|
|
|
+ mapAsync(mode: GPUMapModeFlags, offset?: number, size?: number): Promise<void>;
|
|
|
+ getMappedRange(offset?: number, size?: number): ArrayBuffer;
|
|
|
+
|
|
|
mapWriteAsync(): Promise<ArrayBuffer>;
|
|
|
mapReadAsync(): Promise<ArrayBuffer>;
|
|
|
- // TODO: Remove setSubData (#280)
|
|
|
- writeBuffer(
|
|
|
- offset: number,
|
|
|
- src: ArrayBufferView,
|
|
|
- srcOffset?: number,
|
|
|
- byteLength?: number
|
|
|
- ): void;
|
|
|
}
|
|
|
|
|
|
declare class GPUCommandBuffer implements GPUObjectBase {
|
|
@@ -635,6 +653,8 @@ declare class GPUDevice extends EventTarget implements GPUObjectBase {
|
|
|
descriptor: GPURenderBundleEncoderDescriptor
|
|
|
): GPURenderBundleEncoder;
|
|
|
|
|
|
+ createQuerySet(descriptor: GPUQuerySetDescriptor): GPUQuerySet;
|
|
|
+
|
|
|
defaultQueue: GPUQueue;
|
|
|
|
|
|
pushErrorScope(filter: GPUErrorFilter): void;
|
|
@@ -670,7 +690,20 @@ declare class GPUQueue implements GPUObjectBase {
|
|
|
label: string | undefined;
|
|
|
signal(fence: GPUFence, signalValue: number): void;
|
|
|
submit(commandBuffers: Iterable<GPUCommandBuffer>): void;
|
|
|
+
|
|
|
createFence(descriptor?: GPUFenceDescriptor): GPUFence;
|
|
|
+
|
|
|
+ writeBuffer(buffer: GPUBuffer,
|
|
|
+ bufferOffset: number,
|
|
|
+ data: ArrayBuffer,
|
|
|
+ dataOffset?: number,
|
|
|
+ size?: number): void;
|
|
|
+
|
|
|
+ writeTexture(destination: GPUTextureCopyView,
|
|
|
+ data: ArrayBuffer,
|
|
|
+ dataLayout: GPUTextureDataLayout,
|
|
|
+ size: GPUExtent3D): void;
|
|
|
+
|
|
|
copyImageBitmapToTexture(
|
|
|
source: GPUImageBitmapCopyView,
|
|
|
destination: GPUTextureCopyView,
|
|
@@ -678,6 +711,17 @@ declare class GPUQueue implements GPUObjectBase {
|
|
|
): void;
|
|
|
}
|
|
|
|
|
|
+interface GPUQuerySetDescriptor extends GPUObjectDescriptorBase {
|
|
|
+ type: GPUQueryType;
|
|
|
+ count: number;
|
|
|
+}
|
|
|
+
|
|
|
+declare class GPUQuerySet implements GPUObjectBase {
|
|
|
+ label: string | undefined;
|
|
|
+
|
|
|
+ destroy(): void;
|
|
|
+}
|
|
|
+
|
|
|
interface GPURenderEncoderBase extends GPUProgrammablePassEncoder {
|
|
|
setPipeline(pipeline: GPURenderPipeline): void;
|
|
|
|
|
@@ -726,16 +770,16 @@ declare class GPURenderPassEncoder implements GPURenderEncoderBase {
|
|
|
|
|
|
draw(
|
|
|
vertexCount: number,
|
|
|
- instanceCount: number,
|
|
|
- firstVertex: number,
|
|
|
- firstInstance: number
|
|
|
+ instanceCount?: number,
|
|
|
+ firstVertex?: number,
|
|
|
+ firstInstance?: number
|
|
|
): void;
|
|
|
drawIndexed(
|
|
|
indexCount: number,
|
|
|
- instanceCount: number,
|
|
|
- firstIndex: number,
|
|
|
- baseVertex: number,
|
|
|
- firstInstance: number
|
|
|
+ instanceCount?: number,
|
|
|
+ firstIndex?: number,
|
|
|
+ baseVertex?: number,
|
|
|
+ firstInstance?: number
|
|
|
): void;
|
|
|
|
|
|
drawIndirect(indirectBuffer: GPUBuffer, indirectOffset: number): void;
|
|
@@ -757,6 +801,9 @@ declare class GPURenderPassEncoder implements GPURenderEncoderBase {
|
|
|
setBlendColor(color: GPUColor): void;
|
|
|
setStencilReference(reference: number): void;
|
|
|
|
|
|
+ beginOcclusionQuery(queryIndex: number): void;
|
|
|
+ endOcclusionQuery(queryIndex: number): void;
|
|
|
+
|
|
|
executeBundles(bundles: Iterable<GPURenderBundle>): void;
|
|
|
endPass(): void;
|
|
|
}
|
|
@@ -787,16 +834,16 @@ declare class GPURenderBundleEncoder implements GPURenderEncoderBase {
|
|
|
|
|
|
draw(
|
|
|
vertexCount: number,
|
|
|
- instanceCount: number,
|
|
|
- firstVertex: number,
|
|
|
- firstInstance: number
|
|
|
+ instanceCount?: number,
|
|
|
+ firstVertex?: number,
|
|
|
+ firstInstance?: number
|
|
|
): void;
|
|
|
drawIndexed(
|
|
|
indexCount: number,
|
|
|
- instanceCount: number,
|
|
|
- firstIndex: number,
|
|
|
- baseVertex: number,
|
|
|
- firstInstance: number
|
|
|
+ instanceCount?: number,
|
|
|
+ firstIndex?: number,
|
|
|
+ baseVertex?: number,
|
|
|
+ firstInstance?: number
|
|
|
): void;
|
|
|
|
|
|
drawIndirect(indirectBuffer: GPUBuffer, indirectOffset: number): void;
|
|
@@ -824,8 +871,21 @@ declare class GPUSampler implements GPUObjectBase {
|
|
|
label: string | undefined;
|
|
|
}
|
|
|
|
|
|
+interface GPUCompilationMessage {
|
|
|
+ readonly message: string;
|
|
|
+ readonly type: GPUCompilationMessageType;
|
|
|
+ readonly lineNum: number;
|
|
|
+ readonly linePos: number;
|
|
|
+}
|
|
|
+
|
|
|
+interface GPUCompilationInfo {
|
|
|
+ readonly messages: Iterable<GPUCompilationMessage>;
|
|
|
+}
|
|
|
+
|
|
|
declare class GPUShaderModule implements GPUObjectBase {
|
|
|
label: string | undefined;
|
|
|
+
|
|
|
+ compilationInfo(): Promise<GPUCompilationInfo>;
|
|
|
}
|
|
|
|
|
|
declare class GPUSwapChain implements GPUObjectBase {
|