Commit 99fcab2e authored by François Beaufort's avatar François Beaufort Committed by Commit Bot

[WebGPU] Introduce GPUBufferSize and clean "unsigned long" GPUFlags

Following spec change at https://github.com/gpuweb/gpuweb/pull/444, this
CL makes sure typedef GPUBufferSize is used in all IDL files. It also
change occurrences of "unsigned long" to the appropriate GPU{}Flags.

Bug: 877147
Change-Id: I267b4427b5df288ca4095208eb0f1bf4b02077f4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1821597
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: default avatarKai Ninomiya <kainino@chromium.org>
Reviewed-by: default avatarAustin Eng <enga@chromium.org>
Cr-Commit-Position: refs/heads/master@{#700983}
parent 3b22eb9f
......@@ -4,6 +4,8 @@
// https://gpuweb.github.io/gpuweb/
typedef unsigned long long GPUBufferSize;
[
RuntimeEnabled=WebGPU
] interface GPU {
......
......@@ -6,7 +6,7 @@
dictionary GPUBufferBinding {
required GPUBuffer buffer;
unsigned long long offset = 0;
GPUBufferSize offset = 0;
// If size is undefined, use the whole size of the buffer.
unsigned long long size;
GPUBufferSize size;
};
......@@ -6,7 +6,7 @@
dictionary GPUBufferCopyView {
required GPUBuffer buffer;
unsigned long long offset = 0;
GPUBufferSize offset = 0;
required unsigned long rowPitch;
required unsigned long imageHeight;
};
......@@ -5,6 +5,6 @@
// https://gpuweb.github.io/gpuweb/
dictionary GPUBufferDescriptor {
required unsigned long long size;
required GPUBufferSize size;
required GPUBufferUsageFlags usage;
};
......@@ -8,14 +8,14 @@ typedef unsigned long GPUBufferUsageFlags;
[
RuntimeEnabled=WebGPU
] interface GPUBufferUsage {
const unsigned long NONE = 0;
const unsigned long MAP_READ = 1;
const unsigned long MAP_WRITE = 2;
const unsigned long COPY_SRC = 4;
const unsigned long COPY_DST = 8;
const unsigned long INDEX = 16;
const unsigned long VERTEX = 32;
const unsigned long UNIFORM = 64;
const unsigned long STORAGE = 128;
const unsigned long INDIRECT = 256;
const GPUBufferUsageFlags NONE = 0;
const GPUBufferUsageFlags MAP_READ = 1;
const GPUBufferUsageFlags MAP_WRITE = 2;
const GPUBufferUsageFlags COPY_SRC = 4;
const GPUBufferUsageFlags COPY_DST = 8;
const GPUBufferUsageFlags INDEX = 16;
const GPUBufferUsageFlags VERTEX = 32;
const GPUBufferUsageFlags UNIFORM = 64;
const GPUBufferUsageFlags STORAGE = 128;
const GPUBufferUsageFlags INDIRECT = 256;
};
......@@ -8,10 +8,10 @@ typedef unsigned long GPUColorWriteFlags;
[
RuntimeEnabled=WebGPU
] interface GPUColorWrite {
const unsigned long NONE = 0;
const unsigned long RED = 1;
const unsigned long GREEN = 2;
const unsigned long BLUE = 4;
const unsigned long ALPHA = 8;
const unsigned long ALL = 15;
const GPUColorWriteFlags NONE = 0;
const GPUColorWriteFlags RED = 1;
const GPUColorWriteFlags GREEN = 2;
const GPUColorWriteFlags BLUE = 4;
const GPUColorWriteFlags ALPHA = 8;
const GPUColorWriteFlags ALL = 15;
};
......@@ -11,9 +11,11 @@
GPUComputePassEncoder beginComputePass(optional GPUComputePassDescriptor descriptor);
void copyBufferToBuffer(
GPUBuffer src, unsigned long long srcOffset,
GPUBuffer dst, unsigned long long dstOffset,
unsigned long long size);
GPUBuffer src,
GPUBufferSize srcOffset,
GPUBuffer dst,
GPUBufferSize dstOffset,
GPUBufferSize size);
void copyBufferToTexture(
GPUBufferCopyView source,
......
......@@ -10,7 +10,7 @@
// GPUProgrammablePassEncoder methods
void setBindGroup(unsigned long index,
GPUBindGroup bindGroup,
optional sequence<unsigned long long> dynamicOffsets = []);
optional sequence<GPUBufferSize> dynamicOffsets = []);
void pushDebugGroup(DOMString groupLabel);
void popDebugGroup();
void insertDebugMarker(DOMString markerLabel);
......@@ -21,7 +21,7 @@
optional unsigned long y = 1,
optional unsigned long z = 1);
void dispatchIndirect(GPUBuffer indirectBuffer,
unsigned long long indirectOffset);
GPUBufferSize indirectOffset);
void endPass();
};
......@@ -10,17 +10,17 @@
// GPUProgrammablePassEncoder methods
void setBindGroup(unsigned long index,
GPUBindGroup bindGroup,
optional sequence<unsigned long long> dynamicOffsets = []);
optional sequence<GPUBufferSize> dynamicOffsets = []);
void pushDebugGroup(DOMString groupLabel);
void popDebugGroup();
void insertDebugMarker(DOMString markerLabel);
// GPURenderEncoderBase methods
void setPipeline(GPURenderPipeline pipeline);
void setIndexBuffer(GPUBuffer buffer, optional unsigned long long offset = 0);
void setIndexBuffer(GPUBuffer buffer, optional GPUBufferSize offset = 0);
[RaisesException] void setVertexBuffers(unsigned long startSlot,
sequence<GPUBuffer> buffers,
sequence<unsigned long long> offsets);
sequence<GPUBufferSize> offsets);
void draw(unsigned long vertexCount, unsigned long instanceCount,
unsigned long firstVertex,
unsigned long firstInstance);
......@@ -29,9 +29,9 @@
long baseVertex,
unsigned long firstInstance);
void drawIndirect(GPUBuffer indirectBuffer,
unsigned long long indirectOffset);
GPUBufferSize indirectOffset);
void drawIndexedIndirect(GPUBuffer indirectBuffer,
unsigned long long indirectOffset);
GPUBufferSize indirectOffset);
// GPURenderBundleEncoder methods
GPURenderBundle finish(optional GPURenderBundleDescriptor descriptor);
......
......@@ -10,7 +10,7 @@
// GPUProgrammablePassEncoder methods
void setBindGroup(unsigned long index,
GPUBindGroup bindGroup,
optional sequence<unsigned long long> dynamicOffsets = []);
optional sequence<GPUBufferSize> dynamicOffsets = []);
void pushDebugGroup(DOMString groupLabel);
void popDebugGroup();
void insertDebugMarker(DOMString markerLabel);
......@@ -24,10 +24,10 @@
float minDepth, float maxDepth);
void setScissorRect(unsigned long x, unsigned long y,
unsigned long width, unsigned long height);
void setIndexBuffer(GPUBuffer buffer, optional unsigned long long offset = 0);
void setIndexBuffer(GPUBuffer buffer, optional GPUBufferSize offset = 0);
[RaisesException] void setVertexBuffers(unsigned long startSlot,
sequence<GPUBuffer> buffers,
sequence<unsigned long long> offsets);
sequence<GPUBufferSize> offsets);
void draw(unsigned long vertexCount, unsigned long instanceCount,
unsigned long firstVertex,
unsigned long firstInstance);
......@@ -36,9 +36,9 @@
long baseVertex,
unsigned long firstInstance);
void drawIndirect(GPUBuffer indirectBuffer,
unsigned long long indirectOffset);
GPUBufferSize indirectOffset);
void drawIndexedIndirect(GPUBuffer indirectBuffer,
unsigned long long indirectOffset);
GPUBufferSize indirectOffset);
void executeBundles(sequence<GPURenderBundle> bundles);
void endPass();
......
......@@ -8,8 +8,8 @@ typedef unsigned long GPUShaderStageFlags;
[
RuntimeEnabled=WebGPU
] interface GPUShaderStage {
const unsigned long NONE = 0;
const unsigned long VERTEX = 1;
const unsigned long FRAGMENT = 2;
const unsigned long COMPUTE = 4;
const GPUShaderStageFlags NONE = 0;
const GPUShaderStageFlags VERTEX = 1;
const GPUShaderStageFlags FRAGMENT = 2;
const GPUShaderStageFlags COMPUTE = 4;
};
......@@ -8,10 +8,10 @@ typedef unsigned long GPUTextureUsageFlags;
[
RuntimeEnabled=WebGPU
] interface GPUTextureUsage {
const unsigned long NONE = 0;
const unsigned long COPY_SRC = 1;
const unsigned long COPY_DST = 2;
const unsigned long SAMPLED = 4;
const unsigned long STORAGE = 8;
const unsigned long OUTPUT_ATTACHMENT = 16;
const GPUTextureUsageFlags NONE = 0;
const GPUTextureUsageFlags COPY_SRC = 1;
const GPUTextureUsageFlags COPY_DST = 2;
const GPUTextureUsageFlags SAMPLED = 4;
const GPUTextureUsageFlags STORAGE = 8;
const GPUTextureUsageFlags OUTPUT_ATTACHMENT = 16;
};
......@@ -5,7 +5,7 @@
// https://gpuweb.github.io/gpuweb/
dictionary GPUVertexAttributeDescriptor {
unsigned long long offset = 0;
GPUBufferSize offset = 0;
required GPUVertexFormat format;
required unsigned long shaderLocation;
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment