Skip to content

Commit e3e3dd6

Browse files
authored
Add GPUDevice.createBuffer/CommandEncoder/RenderBundleEncoder (#2412)
Co-authored-by: saschanaz <saschanaz@users.noreply.github.com>
1 parent 81bce26 commit e3e3dd6

18 files changed

+628
-17
lines changed

baselines/dom.generated.d.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -821,6 +821,12 @@ interface GPUBufferBinding {
821821
size?: GPUSize64;
822822
}
823823

824+
interface GPUBufferDescriptor extends GPUObjectDescriptorBase {
825+
mappedAtCreation?: boolean;
826+
size: GPUSize64;
827+
usage: GPUBufferUsageFlags;
828+
}
829+
824830
interface GPUCanvasConfiguration {
825831
alphaMode?: GPUCanvasAlphaMode;
826832
colorSpace?: PredefinedColorSpace;
@@ -845,6 +851,9 @@ interface GPUColorDict {
845851
interface GPUCommandBufferDescriptor extends GPUObjectDescriptorBase {
846852
}
847853

854+
interface GPUCommandEncoderDescriptor extends GPUObjectDescriptorBase {
855+
}
856+
848857
interface GPUComputePassDescriptor extends GPUObjectDescriptorBase {
849858
timestampWrites?: GPUComputePassTimestampWrites;
850859
}
@@ -899,6 +908,11 @@ interface GPUPipelineErrorInit {
899908
interface GPURenderBundleDescriptor extends GPUObjectDescriptorBase {
900909
}
901910

911+
interface GPURenderBundleEncoderDescriptor extends GPURenderPassLayout {
912+
depthReadOnly?: boolean;
913+
stencilReadOnly?: boolean;
914+
}
915+
902916
interface GPURenderPassColorAttachment {
903917
clearValue?: GPUColor;
904918
depthSlice?: GPUIntegerCoordinate;
@@ -928,6 +942,12 @@ interface GPURenderPassDescriptor extends GPUObjectDescriptorBase {
928942
timestampWrites?: GPURenderPassTimestampWrites;
929943
}
930944

945+
interface GPURenderPassLayout extends GPUObjectDescriptorBase {
946+
colorFormats: (GPUTextureFormat | null)[];
947+
depthStencilFormat?: GPUTextureFormat;
948+
sampleCount?: GPUSize32;
949+
}
950+
931951
interface GPURenderPassTimestampWrites {
932952
beginningOfPassWriteIndex?: GPUSize32;
933953
endOfPassWriteIndex?: GPUSize32;
@@ -15345,6 +15365,24 @@ interface GPUDevice extends EventTarget, GPUObjectBase {
1534515365
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBindGroup)
1534615366
*/
1534715367
createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup;
15368+
/**
15369+
* The **`createBuffer()`** method of the GPUDevice interface creates a GPUBuffer in which to store raw data to use in GPU operations.
15370+
*
15371+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBuffer)
15372+
*/
15373+
createBuffer(descriptor: GPUBufferDescriptor): GPUBuffer;
15374+
/**
15375+
* The **`createCommandEncoder()`** method of the GPUDevice interface creates a GPUCommandEncoder, used to encode commands to be issued to the GPU.
15376+
*
15377+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createCommandEncoder)
15378+
*/
15379+
createCommandEncoder(descriptor?: GPUCommandEncoderDescriptor): GPUCommandEncoder;
15380+
/**
15381+
* The **`createRenderBundleEncoder()`** method of the GPUDevice interface creates a GPURenderBundleEncoder that can be used to pre-record bundles of commands. These can be reused in GPURenderPassEncoders via the executeBundles() method, as many times as required.
15382+
*
15383+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createRenderBundleEncoder)
15384+
*/
15385+
createRenderBundleEncoder(descriptor: GPURenderBundleEncoderDescriptor): GPURenderBundleEncoder;
1534815386
/**
1534915387
* The **`destroy()`** method of the GPUDevice interface destroys the device, preventing further operations on it.
1535015388
*
@@ -43787,6 +43825,7 @@ type GLuint = number;
4378743825
type GLuint64 = number;
4378843826
type GPUBindingResource = GPUSampler | GPUTexture | GPUTextureView | GPUBuffer | GPUBufferBinding | GPUExternalTexture;
4378943827
type GPUBufferDynamicOffset = number;
43828+
type GPUBufferUsageFlags = number;
4379043829
type GPUColor = number[] | GPUColorDict;
4379143830
type GPUCopyExternalImageSource = ImageBitmap | ImageData | HTMLImageElement | HTMLVideoElement | VideoFrame | HTMLCanvasElement | OffscreenCanvas;
4379243831
type GPUExtent3D = GPUIntegerCoordinate[] | GPUExtent3DDict;

baselines/serviceworker.generated.d.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,12 @@ interface GPUBufferBinding {
288288
size?: GPUSize64;
289289
}
290290

291+
interface GPUBufferDescriptor extends GPUObjectDescriptorBase {
292+
mappedAtCreation?: boolean;
293+
size: GPUSize64;
294+
usage: GPUBufferUsageFlags;
295+
}
296+
291297
interface GPUCanvasConfiguration {
292298
alphaMode?: GPUCanvasAlphaMode;
293299
colorSpace?: PredefinedColorSpace;
@@ -312,6 +318,9 @@ interface GPUColorDict {
312318
interface GPUCommandBufferDescriptor extends GPUObjectDescriptorBase {
313319
}
314320

321+
interface GPUCommandEncoderDescriptor extends GPUObjectDescriptorBase {
322+
}
323+
315324
interface GPUComputePassDescriptor extends GPUObjectDescriptorBase {
316325
timestampWrites?: GPUComputePassTimestampWrites;
317326
}
@@ -365,6 +374,11 @@ interface GPUPipelineErrorInit {
365374
interface GPURenderBundleDescriptor extends GPUObjectDescriptorBase {
366375
}
367376

377+
interface GPURenderBundleEncoderDescriptor extends GPURenderPassLayout {
378+
depthReadOnly?: boolean;
379+
stencilReadOnly?: boolean;
380+
}
381+
368382
interface GPURenderPassColorAttachment {
369383
clearValue?: GPUColor;
370384
depthSlice?: GPUIntegerCoordinate;
@@ -394,6 +408,12 @@ interface GPURenderPassDescriptor extends GPUObjectDescriptorBase {
394408
timestampWrites?: GPURenderPassTimestampWrites;
395409
}
396410

411+
interface GPURenderPassLayout extends GPUObjectDescriptorBase {
412+
colorFormats: (GPUTextureFormat | null)[];
413+
depthStencilFormat?: GPUTextureFormat;
414+
sampleCount?: GPUSize32;
415+
}
416+
397417
interface GPURenderPassTimestampWrites {
398418
beginningOfPassWriteIndex?: GPUSize32;
399419
endOfPassWriteIndex?: GPUSize32;
@@ -4787,6 +4807,24 @@ interface GPUDevice extends EventTarget, GPUObjectBase {
47874807
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBindGroup)
47884808
*/
47894809
createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup;
4810+
/**
4811+
* The **`createBuffer()`** method of the GPUDevice interface creates a GPUBuffer in which to store raw data to use in GPU operations.
4812+
*
4813+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBuffer)
4814+
*/
4815+
createBuffer(descriptor: GPUBufferDescriptor): GPUBuffer;
4816+
/**
4817+
* The **`createCommandEncoder()`** method of the GPUDevice interface creates a GPUCommandEncoder, used to encode commands to be issued to the GPU.
4818+
*
4819+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createCommandEncoder)
4820+
*/
4821+
createCommandEncoder(descriptor?: GPUCommandEncoderDescriptor): GPUCommandEncoder;
4822+
/**
4823+
* The **`createRenderBundleEncoder()`** method of the GPUDevice interface creates a GPURenderBundleEncoder that can be used to pre-record bundles of commands. These can be reused in GPURenderPassEncoders via the executeBundles() method, as many times as required.
4824+
*
4825+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createRenderBundleEncoder)
4826+
*/
4827+
createRenderBundleEncoder(descriptor: GPURenderBundleEncoderDescriptor): GPURenderBundleEncoder;
47904828
/**
47914829
* The **`destroy()`** method of the GPUDevice interface destroys the device, preventing further operations on it.
47924830
*
@@ -12977,6 +13015,7 @@ type GLuint = number;
1297713015
type GLuint64 = number;
1297813016
type GPUBindingResource = GPUSampler | GPUTexture | GPUTextureView | GPUBuffer | GPUBufferBinding | GPUExternalTexture;
1297913017
type GPUBufferDynamicOffset = number;
13018+
type GPUBufferUsageFlags = number;
1298013019
type GPUColor = number[] | GPUColorDict;
1298113020
type GPUCopyExternalImageSource = ImageBitmap | ImageData | OffscreenCanvas;
1298213021
type GPUExtent3D = GPUIntegerCoordinate[] | GPUExtent3DDict;

baselines/sharedworker.generated.d.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,12 @@ interface GPUBufferBinding {
232232
size?: GPUSize64;
233233
}
234234

235+
interface GPUBufferDescriptor extends GPUObjectDescriptorBase {
236+
mappedAtCreation?: boolean;
237+
size: GPUSize64;
238+
usage: GPUBufferUsageFlags;
239+
}
240+
235241
interface GPUCanvasConfiguration {
236242
alphaMode?: GPUCanvasAlphaMode;
237243
colorSpace?: PredefinedColorSpace;
@@ -256,6 +262,9 @@ interface GPUColorDict {
256262
interface GPUCommandBufferDescriptor extends GPUObjectDescriptorBase {
257263
}
258264

265+
interface GPUCommandEncoderDescriptor extends GPUObjectDescriptorBase {
266+
}
267+
259268
interface GPUComputePassDescriptor extends GPUObjectDescriptorBase {
260269
timestampWrites?: GPUComputePassTimestampWrites;
261270
}
@@ -309,6 +318,11 @@ interface GPUPipelineErrorInit {
309318
interface GPURenderBundleDescriptor extends GPUObjectDescriptorBase {
310319
}
311320

321+
interface GPURenderBundleEncoderDescriptor extends GPURenderPassLayout {
322+
depthReadOnly?: boolean;
323+
stencilReadOnly?: boolean;
324+
}
325+
312326
interface GPURenderPassColorAttachment {
313327
clearValue?: GPUColor;
314328
depthSlice?: GPUIntegerCoordinate;
@@ -338,6 +352,12 @@ interface GPURenderPassDescriptor extends GPUObjectDescriptorBase {
338352
timestampWrites?: GPURenderPassTimestampWrites;
339353
}
340354

355+
interface GPURenderPassLayout extends GPUObjectDescriptorBase {
356+
colorFormats: (GPUTextureFormat | null)[];
357+
depthStencilFormat?: GPUTextureFormat;
358+
sampleCount?: GPUSize32;
359+
}
360+
341361
interface GPURenderPassTimestampWrites {
342362
beginningOfPassWriteIndex?: GPUSize32;
343363
endOfPassWriteIndex?: GPUSize32;
@@ -4470,6 +4490,24 @@ interface GPUDevice extends EventTarget, GPUObjectBase {
44704490
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBindGroup)
44714491
*/
44724492
createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup;
4493+
/**
4494+
* The **`createBuffer()`** method of the GPUDevice interface creates a GPUBuffer in which to store raw data to use in GPU operations.
4495+
*
4496+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBuffer)
4497+
*/
4498+
createBuffer(descriptor: GPUBufferDescriptor): GPUBuffer;
4499+
/**
4500+
* The **`createCommandEncoder()`** method of the GPUDevice interface creates a GPUCommandEncoder, used to encode commands to be issued to the GPU.
4501+
*
4502+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createCommandEncoder)
4503+
*/
4504+
createCommandEncoder(descriptor?: GPUCommandEncoderDescriptor): GPUCommandEncoder;
4505+
/**
4506+
* The **`createRenderBundleEncoder()`** method of the GPUDevice interface creates a GPURenderBundleEncoder that can be used to pre-record bundles of commands. These can be reused in GPURenderPassEncoders via the executeBundles() method, as many times as required.
4507+
*
4508+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createRenderBundleEncoder)
4509+
*/
4510+
createRenderBundleEncoder(descriptor: GPURenderBundleEncoderDescriptor): GPURenderBundleEncoder;
44734511
/**
44744512
* The **`destroy()`** method of the GPUDevice interface destroys the device, preventing further operations on it.
44754513
*
@@ -12653,6 +12691,7 @@ type GLuint = number;
1265312691
type GLuint64 = number;
1265412692
type GPUBindingResource = GPUSampler | GPUTexture | GPUTextureView | GPUBuffer | GPUBufferBinding | GPUExternalTexture;
1265512693
type GPUBufferDynamicOffset = number;
12694+
type GPUBufferUsageFlags = number;
1265612695
type GPUColor = number[] | GPUColorDict;
1265712696
type GPUCopyExternalImageSource = ImageBitmap | ImageData | OffscreenCanvas;
1265812697
type GPUExtent3D = GPUIntegerCoordinate[] | GPUExtent3DDict;

baselines/ts5.5/dom.generated.d.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -818,6 +818,12 @@ interface GPUBufferBinding {
818818
size?: GPUSize64;
819819
}
820820

821+
interface GPUBufferDescriptor extends GPUObjectDescriptorBase {
822+
mappedAtCreation?: boolean;
823+
size: GPUSize64;
824+
usage: GPUBufferUsageFlags;
825+
}
826+
821827
interface GPUCanvasConfiguration {
822828
alphaMode?: GPUCanvasAlphaMode;
823829
colorSpace?: PredefinedColorSpace;
@@ -842,6 +848,9 @@ interface GPUColorDict {
842848
interface GPUCommandBufferDescriptor extends GPUObjectDescriptorBase {
843849
}
844850

851+
interface GPUCommandEncoderDescriptor extends GPUObjectDescriptorBase {
852+
}
853+
845854
interface GPUComputePassDescriptor extends GPUObjectDescriptorBase {
846855
timestampWrites?: GPUComputePassTimestampWrites;
847856
}
@@ -896,6 +905,11 @@ interface GPUPipelineErrorInit {
896905
interface GPURenderBundleDescriptor extends GPUObjectDescriptorBase {
897906
}
898907

908+
interface GPURenderBundleEncoderDescriptor extends GPURenderPassLayout {
909+
depthReadOnly?: boolean;
910+
stencilReadOnly?: boolean;
911+
}
912+
899913
interface GPURenderPassColorAttachment {
900914
clearValue?: GPUColor;
901915
depthSlice?: GPUIntegerCoordinate;
@@ -925,6 +939,12 @@ interface GPURenderPassDescriptor extends GPUObjectDescriptorBase {
925939
timestampWrites?: GPURenderPassTimestampWrites;
926940
}
927941

942+
interface GPURenderPassLayout extends GPUObjectDescriptorBase {
943+
colorFormats: (GPUTextureFormat | null)[];
944+
depthStencilFormat?: GPUTextureFormat;
945+
sampleCount?: GPUSize32;
946+
}
947+
928948
interface GPURenderPassTimestampWrites {
929949
beginningOfPassWriteIndex?: GPUSize32;
930950
endOfPassWriteIndex?: GPUSize32;
@@ -15331,6 +15351,24 @@ interface GPUDevice extends EventTarget, GPUObjectBase {
1533115351
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBindGroup)
1533215352
*/
1533315353
createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup;
15354+
/**
15355+
* The **`createBuffer()`** method of the GPUDevice interface creates a GPUBuffer in which to store raw data to use in GPU operations.
15356+
*
15357+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBuffer)
15358+
*/
15359+
createBuffer(descriptor: GPUBufferDescriptor): GPUBuffer;
15360+
/**
15361+
* The **`createCommandEncoder()`** method of the GPUDevice interface creates a GPUCommandEncoder, used to encode commands to be issued to the GPU.
15362+
*
15363+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createCommandEncoder)
15364+
*/
15365+
createCommandEncoder(descriptor?: GPUCommandEncoderDescriptor): GPUCommandEncoder;
15366+
/**
15367+
* The **`createRenderBundleEncoder()`** method of the GPUDevice interface creates a GPURenderBundleEncoder that can be used to pre-record bundles of commands. These can be reused in GPURenderPassEncoders via the executeBundles() method, as many times as required.
15368+
*
15369+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createRenderBundleEncoder)
15370+
*/
15371+
createRenderBundleEncoder(descriptor: GPURenderBundleEncoderDescriptor): GPURenderBundleEncoder;
1533415372
/**
1533515373
* The **`destroy()`** method of the GPUDevice interface destroys the device, preventing further operations on it.
1533615374
*
@@ -43761,6 +43799,7 @@ type GLuint = number;
4376143799
type GLuint64 = number;
4376243800
type GPUBindingResource = GPUSampler | GPUTexture | GPUTextureView | GPUBuffer | GPUBufferBinding | GPUExternalTexture;
4376343801
type GPUBufferDynamicOffset = number;
43802+
type GPUBufferUsageFlags = number;
4376443803
type GPUColor = number[] | GPUColorDict;
4376543804
type GPUCopyExternalImageSource = ImageBitmap | ImageData | HTMLImageElement | HTMLVideoElement | VideoFrame | HTMLCanvasElement | OffscreenCanvas;
4376643805
type GPUExtent3D = GPUIntegerCoordinate[] | GPUExtent3DDict;

0 commit comments

Comments
 (0)