Validate copybuffertobuffer() + some spec update

The spec update includes renaming bindings to entries and
adding CommandEncoderState.
This commit is contained in:
Kunal Mohan 2020-05-15 20:30:02 +05:30
parent e1cc38bea8
commit 1aeae47299
11 changed files with 136 additions and 45 deletions

View file

@ -10,14 +10,12 @@ GPUBindGroup includes GPUObjectBase;
dictionary GPUBindGroupDescriptor : GPUObjectDescriptorBase {
required GPUBindGroupLayout layout;
required sequence<GPUBindGroupBindings> bindings;
required sequence<GPUBindGroupEntry> entries;
};
typedef /*(GPUSampler or GPUTextureView or*/ GPUBufferBindings/*)*/ GPUBindingResource;
// Note: Servo codegen doesn't like the name `GPUBindGroupBinding` because it's already occupied
// dictionary GPUBindGroupBinding {
dictionary GPUBindGroupBindings {
dictionary GPUBindGroupEntry {
required unsigned long binding;
required GPUBindingResource resource;
};
@ -26,6 +24,6 @@ dictionary GPUBindGroupBindings {
// dictionary GPUBufferBinding {
dictionary GPUBufferBindings {
required GPUBuffer buffer;
GPUBufferSize offset = 0;
GPUBufferSize size;
GPUSize64 offset = 0;
GPUSize64 size;
};

View file

@ -9,12 +9,10 @@ interface GPUBindGroupLayout {
GPUBindGroupLayout includes GPUObjectBase;
dictionary GPUBindGroupLayoutDescriptor : GPUObjectDescriptorBase {
required sequence<GPUBindGroupLayoutBindings> bindings;
required sequence<GPUBindGroupLayoutEntry> entries;
};
// Note: Servo codegen doesn't like the name `GPUBindGroupLayoutBinding` because it's already occupied
// dictionary GPUBindGroupLayoutBinding {
dictionary GPUBindGroupLayoutBindings {
dictionary GPUBindGroupLayoutEntry {
required unsigned long binding;
required GPUShaderStageFlags visibility;
required GPUBindingType type;

View file

@ -14,11 +14,11 @@ interface GPUBuffer {
GPUBuffer includes GPUObjectBase;
dictionary GPUBufferDescriptor : GPUObjectDescriptorBase {
required GPUBufferSize size;
required GPUSize64 size;
required GPUBufferUsageFlags usage;
};
typedef unsigned long long GPUBufferSize;
typedef unsigned long long GPUSize64;
typedef unsigned long GPUBufferUsageFlags;

View file

@ -10,10 +10,10 @@ interface GPUCommandEncoder {
void copyBufferToBuffer(
GPUBuffer source,
GPUBufferSize sourceOffset,
GPUSize64 sourceOffset,
GPUBuffer destination,
GPUBufferSize destinationOffset,
GPUBufferSize size);
GPUSize64 destinationOffset,
GPUSize64 size);
// void copyBufferToTexture(
// GPUBufferCopyView source,

View file

@ -7,7 +7,7 @@
interface GPUComputePassEncoder {
void setPipeline(GPUComputePipeline pipeline);
void dispatch(GPUSize32 x, optional GPUSize32 y = 1, optional GPUSize32 z = 1);
// void dispatchIndirect(GPUBuffer indirectBuffer, GPUBufferSize indirectOffset);
// void dispatchIndirect(GPUBuffer indirectBuffer, GPUSize64 indirectOffset);
void endPass();
};