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 @@ ...@@ -4,6 +4,8 @@
// https://gpuweb.github.io/gpuweb/ // https://gpuweb.github.io/gpuweb/
typedef unsigned long long GPUBufferSize;
[ [
RuntimeEnabled=WebGPU RuntimeEnabled=WebGPU
] interface GPU { ] interface GPU {
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
dictionary GPUBufferBinding { dictionary GPUBufferBinding {
required GPUBuffer buffer; required GPUBuffer buffer;
unsigned long long offset = 0; GPUBufferSize offset = 0;
// If size is undefined, use the whole size of the buffer. // If size is undefined, use the whole size of the buffer.
unsigned long long size; GPUBufferSize size;
}; };
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
dictionary GPUBufferCopyView { dictionary GPUBufferCopyView {
required GPUBuffer buffer; required GPUBuffer buffer;
unsigned long long offset = 0; GPUBufferSize offset = 0;
required unsigned long rowPitch; required unsigned long rowPitch;
required unsigned long imageHeight; required unsigned long imageHeight;
}; };
...@@ -5,6 +5,6 @@ ...@@ -5,6 +5,6 @@
// https://gpuweb.github.io/gpuweb/ // https://gpuweb.github.io/gpuweb/
dictionary GPUBufferDescriptor { dictionary GPUBufferDescriptor {
required unsigned long long size; required GPUBufferSize size;
required GPUBufferUsageFlags usage; required GPUBufferUsageFlags usage;
}; };
...@@ -8,14 +8,14 @@ typedef unsigned long GPUBufferUsageFlags; ...@@ -8,14 +8,14 @@ typedef unsigned long GPUBufferUsageFlags;
[ [
RuntimeEnabled=WebGPU RuntimeEnabled=WebGPU
] interface GPUBufferUsage { ] interface GPUBufferUsage {
const unsigned long NONE = 0; const GPUBufferUsageFlags NONE = 0;
const unsigned long MAP_READ = 1; const GPUBufferUsageFlags MAP_READ = 1;
const unsigned long MAP_WRITE = 2; const GPUBufferUsageFlags MAP_WRITE = 2;
const unsigned long COPY_SRC = 4; const GPUBufferUsageFlags COPY_SRC = 4;
const unsigned long COPY_DST = 8; const GPUBufferUsageFlags COPY_DST = 8;
const unsigned long INDEX = 16; const GPUBufferUsageFlags INDEX = 16;
const unsigned long VERTEX = 32; const GPUBufferUsageFlags VERTEX = 32;
const unsigned long UNIFORM = 64; const GPUBufferUsageFlags UNIFORM = 64;
const unsigned long STORAGE = 128; const GPUBufferUsageFlags STORAGE = 128;
const unsigned long INDIRECT = 256; const GPUBufferUsageFlags INDIRECT = 256;
}; };
...@@ -8,10 +8,10 @@ typedef unsigned long GPUColorWriteFlags; ...@@ -8,10 +8,10 @@ typedef unsigned long GPUColorWriteFlags;
[ [
RuntimeEnabled=WebGPU RuntimeEnabled=WebGPU
] interface GPUColorWrite { ] interface GPUColorWrite {
const unsigned long NONE = 0; const GPUColorWriteFlags NONE = 0;
const unsigned long RED = 1; const GPUColorWriteFlags RED = 1;
const unsigned long GREEN = 2; const GPUColorWriteFlags GREEN = 2;
const unsigned long BLUE = 4; const GPUColorWriteFlags BLUE = 4;
const unsigned long ALPHA = 8; const GPUColorWriteFlags ALPHA = 8;
const unsigned long ALL = 15; const GPUColorWriteFlags ALL = 15;
}; };
...@@ -11,9 +11,11 @@ ...@@ -11,9 +11,11 @@
GPUComputePassEncoder beginComputePass(optional GPUComputePassDescriptor descriptor); GPUComputePassEncoder beginComputePass(optional GPUComputePassDescriptor descriptor);
void copyBufferToBuffer( void copyBufferToBuffer(
GPUBuffer src, unsigned long long srcOffset, GPUBuffer src,
GPUBuffer dst, unsigned long long dstOffset, GPUBufferSize srcOffset,
unsigned long long size); GPUBuffer dst,
GPUBufferSize dstOffset,
GPUBufferSize size);
void copyBufferToTexture( void copyBufferToTexture(
GPUBufferCopyView source, GPUBufferCopyView source,
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
// GPUProgrammablePassEncoder methods // GPUProgrammablePassEncoder methods
void setBindGroup(unsigned long index, void setBindGroup(unsigned long index,
GPUBindGroup bindGroup, GPUBindGroup bindGroup,
optional sequence<unsigned long long> dynamicOffsets = []); optional sequence<GPUBufferSize> dynamicOffsets = []);
void pushDebugGroup(DOMString groupLabel); void pushDebugGroup(DOMString groupLabel);
void popDebugGroup(); void popDebugGroup();
void insertDebugMarker(DOMString markerLabel); void insertDebugMarker(DOMString markerLabel);
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
optional unsigned long y = 1, optional unsigned long y = 1,
optional unsigned long z = 1); optional unsigned long z = 1);
void dispatchIndirect(GPUBuffer indirectBuffer, void dispatchIndirect(GPUBuffer indirectBuffer,
unsigned long long indirectOffset); GPUBufferSize indirectOffset);
void endPass(); void endPass();
}; };
...@@ -10,17 +10,17 @@ ...@@ -10,17 +10,17 @@
// GPUProgrammablePassEncoder methods // GPUProgrammablePassEncoder methods
void setBindGroup(unsigned long index, void setBindGroup(unsigned long index,
GPUBindGroup bindGroup, GPUBindGroup bindGroup,
optional sequence<unsigned long long> dynamicOffsets = []); optional sequence<GPUBufferSize> dynamicOffsets = []);
void pushDebugGroup(DOMString groupLabel); void pushDebugGroup(DOMString groupLabel);
void popDebugGroup(); void popDebugGroup();
void insertDebugMarker(DOMString markerLabel); void insertDebugMarker(DOMString markerLabel);
// GPURenderEncoderBase methods // GPURenderEncoderBase methods
void setPipeline(GPURenderPipeline pipeline); 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, [RaisesException] void setVertexBuffers(unsigned long startSlot,
sequence<GPUBuffer> buffers, sequence<GPUBuffer> buffers,
sequence<unsigned long long> offsets); sequence<GPUBufferSize> offsets);
void draw(unsigned long vertexCount, unsigned long instanceCount, void draw(unsigned long vertexCount, unsigned long instanceCount,
unsigned long firstVertex, unsigned long firstVertex,
unsigned long firstInstance); unsigned long firstInstance);
...@@ -29,9 +29,9 @@ ...@@ -29,9 +29,9 @@
long baseVertex, long baseVertex,
unsigned long firstInstance); unsigned long firstInstance);
void drawIndirect(GPUBuffer indirectBuffer, void drawIndirect(GPUBuffer indirectBuffer,
unsigned long long indirectOffset); GPUBufferSize indirectOffset);
void drawIndexedIndirect(GPUBuffer indirectBuffer, void drawIndexedIndirect(GPUBuffer indirectBuffer,
unsigned long long indirectOffset); GPUBufferSize indirectOffset);
// GPURenderBundleEncoder methods // GPURenderBundleEncoder methods
GPURenderBundle finish(optional GPURenderBundleDescriptor descriptor); GPURenderBundle finish(optional GPURenderBundleDescriptor descriptor);
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
// GPUProgrammablePassEncoder methods // GPUProgrammablePassEncoder methods
void setBindGroup(unsigned long index, void setBindGroup(unsigned long index,
GPUBindGroup bindGroup, GPUBindGroup bindGroup,
optional sequence<unsigned long long> dynamicOffsets = []); optional sequence<GPUBufferSize> dynamicOffsets = []);
void pushDebugGroup(DOMString groupLabel); void pushDebugGroup(DOMString groupLabel);
void popDebugGroup(); void popDebugGroup();
void insertDebugMarker(DOMString markerLabel); void insertDebugMarker(DOMString markerLabel);
...@@ -24,10 +24,10 @@ ...@@ -24,10 +24,10 @@
float minDepth, float maxDepth); float minDepth, float maxDepth);
void setScissorRect(unsigned long x, unsigned long y, void setScissorRect(unsigned long x, unsigned long y,
unsigned long width, unsigned long height); 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, [RaisesException] void setVertexBuffers(unsigned long startSlot,
sequence<GPUBuffer> buffers, sequence<GPUBuffer> buffers,
sequence<unsigned long long> offsets); sequence<GPUBufferSize> offsets);
void draw(unsigned long vertexCount, unsigned long instanceCount, void draw(unsigned long vertexCount, unsigned long instanceCount,
unsigned long firstVertex, unsigned long firstVertex,
unsigned long firstInstance); unsigned long firstInstance);
...@@ -36,9 +36,9 @@ ...@@ -36,9 +36,9 @@
long baseVertex, long baseVertex,
unsigned long firstInstance); unsigned long firstInstance);
void drawIndirect(GPUBuffer indirectBuffer, void drawIndirect(GPUBuffer indirectBuffer,
unsigned long long indirectOffset); GPUBufferSize indirectOffset);
void drawIndexedIndirect(GPUBuffer indirectBuffer, void drawIndexedIndirect(GPUBuffer indirectBuffer,
unsigned long long indirectOffset); GPUBufferSize indirectOffset);
void executeBundles(sequence<GPURenderBundle> bundles); void executeBundles(sequence<GPURenderBundle> bundles);
void endPass(); void endPass();
......
...@@ -8,8 +8,8 @@ typedef unsigned long GPUShaderStageFlags; ...@@ -8,8 +8,8 @@ typedef unsigned long GPUShaderStageFlags;
[ [
RuntimeEnabled=WebGPU RuntimeEnabled=WebGPU
] interface GPUShaderStage { ] interface GPUShaderStage {
const unsigned long NONE = 0; const GPUShaderStageFlags NONE = 0;
const unsigned long VERTEX = 1; const GPUShaderStageFlags VERTEX = 1;
const unsigned long FRAGMENT = 2; const GPUShaderStageFlags FRAGMENT = 2;
const unsigned long COMPUTE = 4; const GPUShaderStageFlags COMPUTE = 4;
}; };
...@@ -8,10 +8,10 @@ typedef unsigned long GPUTextureUsageFlags; ...@@ -8,10 +8,10 @@ typedef unsigned long GPUTextureUsageFlags;
[ [
RuntimeEnabled=WebGPU RuntimeEnabled=WebGPU
] interface GPUTextureUsage { ] interface GPUTextureUsage {
const unsigned long NONE = 0; const GPUTextureUsageFlags NONE = 0;
const unsigned long COPY_SRC = 1; const GPUTextureUsageFlags COPY_SRC = 1;
const unsigned long COPY_DST = 2; const GPUTextureUsageFlags COPY_DST = 2;
const unsigned long SAMPLED = 4; const GPUTextureUsageFlags SAMPLED = 4;
const unsigned long STORAGE = 8; const GPUTextureUsageFlags STORAGE = 8;
const unsigned long OUTPUT_ATTACHMENT = 16; const GPUTextureUsageFlags OUTPUT_ATTACHMENT = 16;
}; };
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
// https://gpuweb.github.io/gpuweb/ // https://gpuweb.github.io/gpuweb/
dictionary GPUVertexAttributeDescriptor { dictionary GPUVertexAttributeDescriptor {
unsigned long long offset = 0; GPUBufferSize offset = 0;
required GPUVertexFormat format; required GPUVertexFormat format;
required unsigned long shaderLocation; 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