Skip to content

Commit d91ea29

Browse files
authored
Add GPUDevice.createBindGroup (microsoft#2409)
Co-authored-by: saschanaz <saschanaz@users.noreply.github.com>
1 parent ded5dbf commit d91ea29

17 files changed

+368
-1
lines changed

baselines/dom.generated.d.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -805,6 +805,22 @@ interface FullscreenOptions {
805805
navigationUI?: FullscreenNavigationUI;
806806
}
807807

808+
interface GPUBindGroupDescriptor extends GPUObjectDescriptorBase {
809+
entries: GPUBindGroupEntry[];
810+
layout: GPUBindGroupLayout;
811+
}
812+
813+
interface GPUBindGroupEntry {
814+
binding: GPUIndex32;
815+
resource: GPUBindingResource;
816+
}
817+
818+
interface GPUBufferBinding {
819+
buffer: GPUBuffer;
820+
offset?: GPUSize64;
821+
size?: GPUSize64;
822+
}
823+
808824
interface GPUCanvasConfiguration {
809825
alphaMode?: GPUCanvasAlphaMode;
810826
colorSpace?: PredefinedColorSpace;
@@ -15323,6 +15339,12 @@ interface GPUDevice extends EventTarget, GPUObjectBase {
1532315339
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/queue)
1532415340
*/
1532515341
readonly queue: GPUQueue;
15342+
/**
15343+
* The **`createBindGroup()`** method of the GPUDevice interface creates a GPUBindGroup based on a GPUBindGroupLayout that defines a set of resources to be bound together in a group and how those resources are used in shader stages.
15344+
*
15345+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBindGroup)
15346+
*/
15347+
createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup;
1532615348
/**
1532715349
* The **`destroy()`** method of the GPUDevice interface destroys the device, preventing further operations on it.
1532815350
*
@@ -43763,6 +43785,7 @@ type GLsizei = number;
4376343785
type GLsizeiptr = number;
4376443786
type GLuint = number;
4376543787
type GLuint64 = number;
43788+
type GPUBindingResource = GPUSampler | GPUTexture | GPUTextureView | GPUBuffer | GPUBufferBinding | GPUExternalTexture;
4376643789
type GPUBufferDynamicOffset = number;
4376743790
type GPUColor = number[] | GPUColorDict;
4376843791
type GPUCopyExternalImageSource = ImageBitmap | ImageData | HTMLImageElement | HTMLVideoElement | VideoFrame | HTMLCanvasElement | OffscreenCanvas;

baselines/serviceworker.generated.d.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,22 @@ interface FontFaceSetLoadEventInit extends EventInit {
272272
fontfaces?: FontFace[];
273273
}
274274

275+
interface GPUBindGroupDescriptor extends GPUObjectDescriptorBase {
276+
entries: GPUBindGroupEntry[];
277+
layout: GPUBindGroupLayout;
278+
}
279+
280+
interface GPUBindGroupEntry {
281+
binding: GPUIndex32;
282+
resource: GPUBindingResource;
283+
}
284+
285+
interface GPUBufferBinding {
286+
buffer: GPUBuffer;
287+
offset?: GPUSize64;
288+
size?: GPUSize64;
289+
}
290+
275291
interface GPUCanvasConfiguration {
276292
alphaMode?: GPUCanvasAlphaMode;
277293
colorSpace?: PredefinedColorSpace;
@@ -4765,6 +4781,12 @@ interface GPUDevice extends EventTarget, GPUObjectBase {
47654781
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/queue)
47664782
*/
47674783
readonly queue: GPUQueue;
4784+
/**
4785+
* The **`createBindGroup()`** method of the GPUDevice interface creates a GPUBindGroup based on a GPUBindGroupLayout that defines a set of resources to be bound together in a group and how those resources are used in shader stages.
4786+
*
4787+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBindGroup)
4788+
*/
4789+
createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup;
47684790
/**
47694791
* The **`destroy()`** method of the GPUDevice interface destroys the device, preventing further operations on it.
47704792
*
@@ -12953,6 +12975,7 @@ type GLsizei = number;
1295312975
type GLsizeiptr = number;
1295412976
type GLuint = number;
1295512977
type GLuint64 = number;
12978+
type GPUBindingResource = GPUSampler | GPUTexture | GPUTextureView | GPUBuffer | GPUBufferBinding | GPUExternalTexture;
1295612979
type GPUBufferDynamicOffset = number;
1295712980
type GPUColor = number[] | GPUColorDict;
1295812981
type GPUCopyExternalImageSource = ImageBitmap | ImageData | OffscreenCanvas;

baselines/sharedworker.generated.d.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,22 @@ interface FontFaceSetLoadEventInit extends EventInit {
216216
fontfaces?: FontFace[];
217217
}
218218

219+
interface GPUBindGroupDescriptor extends GPUObjectDescriptorBase {
220+
entries: GPUBindGroupEntry[];
221+
layout: GPUBindGroupLayout;
222+
}
223+
224+
interface GPUBindGroupEntry {
225+
binding: GPUIndex32;
226+
resource: GPUBindingResource;
227+
}
228+
229+
interface GPUBufferBinding {
230+
buffer: GPUBuffer;
231+
offset?: GPUSize64;
232+
size?: GPUSize64;
233+
}
234+
219235
interface GPUCanvasConfiguration {
220236
alphaMode?: GPUCanvasAlphaMode;
221237
colorSpace?: PredefinedColorSpace;
@@ -4448,6 +4464,12 @@ interface GPUDevice extends EventTarget, GPUObjectBase {
44484464
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/queue)
44494465
*/
44504466
readonly queue: GPUQueue;
4467+
/**
4468+
* The **`createBindGroup()`** method of the GPUDevice interface creates a GPUBindGroup based on a GPUBindGroupLayout that defines a set of resources to be bound together in a group and how those resources are used in shader stages.
4469+
*
4470+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBindGroup)
4471+
*/
4472+
createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup;
44514473
/**
44524474
* The **`destroy()`** method of the GPUDevice interface destroys the device, preventing further operations on it.
44534475
*
@@ -12629,6 +12651,7 @@ type GLsizei = number;
1262912651
type GLsizeiptr = number;
1263012652
type GLuint = number;
1263112653
type GLuint64 = number;
12654+
type GPUBindingResource = GPUSampler | GPUTexture | GPUTextureView | GPUBuffer | GPUBufferBinding | GPUExternalTexture;
1263212655
type GPUBufferDynamicOffset = number;
1263312656
type GPUColor = number[] | GPUColorDict;
1263412657
type GPUCopyExternalImageSource = ImageBitmap | ImageData | OffscreenCanvas;

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,22 @@ interface FullscreenOptions {
802802
navigationUI?: FullscreenNavigationUI;
803803
}
804804

805+
interface GPUBindGroupDescriptor extends GPUObjectDescriptorBase {
806+
entries: GPUBindGroupEntry[];
807+
layout: GPUBindGroupLayout;
808+
}
809+
810+
interface GPUBindGroupEntry {
811+
binding: GPUIndex32;
812+
resource: GPUBindingResource;
813+
}
814+
815+
interface GPUBufferBinding {
816+
buffer: GPUBuffer;
817+
offset?: GPUSize64;
818+
size?: GPUSize64;
819+
}
820+
805821
interface GPUCanvasConfiguration {
806822
alphaMode?: GPUCanvasAlphaMode;
807823
colorSpace?: PredefinedColorSpace;
@@ -15309,6 +15325,12 @@ interface GPUDevice extends EventTarget, GPUObjectBase {
1530915325
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/queue)
1531015326
*/
1531115327
readonly queue: GPUQueue;
15328+
/**
15329+
* The **`createBindGroup()`** method of the GPUDevice interface creates a GPUBindGroup based on a GPUBindGroupLayout that defines a set of resources to be bound together in a group and how those resources are used in shader stages.
15330+
*
15331+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBindGroup)
15332+
*/
15333+
createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup;
1531215334
/**
1531315335
* The **`destroy()`** method of the GPUDevice interface destroys the device, preventing further operations on it.
1531415336
*
@@ -43737,6 +43759,7 @@ type GLsizei = number;
4373743759
type GLsizeiptr = number;
4373843760
type GLuint = number;
4373943761
type GLuint64 = number;
43762+
type GPUBindingResource = GPUSampler | GPUTexture | GPUTextureView | GPUBuffer | GPUBufferBinding | GPUExternalTexture;
4374043763
type GPUBufferDynamicOffset = number;
4374143764
type GPUColor = number[] | GPUColorDict;
4374243765
type GPUCopyExternalImageSource = ImageBitmap | ImageData | HTMLImageElement | HTMLVideoElement | VideoFrame | HTMLCanvasElement | OffscreenCanvas;

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,22 @@ interface FontFaceSetLoadEventInit extends EventInit {
269269
fontfaces?: FontFace[];
270270
}
271271

272+
interface GPUBindGroupDescriptor extends GPUObjectDescriptorBase {
273+
entries: GPUBindGroupEntry[];
274+
layout: GPUBindGroupLayout;
275+
}
276+
277+
interface GPUBindGroupEntry {
278+
binding: GPUIndex32;
279+
resource: GPUBindingResource;
280+
}
281+
282+
interface GPUBufferBinding {
283+
buffer: GPUBuffer;
284+
offset?: GPUSize64;
285+
size?: GPUSize64;
286+
}
287+
272288
interface GPUCanvasConfiguration {
273289
alphaMode?: GPUCanvasAlphaMode;
274290
colorSpace?: PredefinedColorSpace;
@@ -4762,6 +4778,12 @@ interface GPUDevice extends EventTarget, GPUObjectBase {
47624778
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/queue)
47634779
*/
47644780
readonly queue: GPUQueue;
4781+
/**
4782+
* The **`createBindGroup()`** method of the GPUDevice interface creates a GPUBindGroup based on a GPUBindGroupLayout that defines a set of resources to be bound together in a group and how those resources are used in shader stages.
4783+
*
4784+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBindGroup)
4785+
*/
4786+
createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup;
47654787
/**
47664788
* The **`destroy()`** method of the GPUDevice interface destroys the device, preventing further operations on it.
47674789
*
@@ -12950,6 +12972,7 @@ type GLsizei = number;
1295012972
type GLsizeiptr = number;
1295112973
type GLuint = number;
1295212974
type GLuint64 = number;
12975+
type GPUBindingResource = GPUSampler | GPUTexture | GPUTextureView | GPUBuffer | GPUBufferBinding | GPUExternalTexture;
1295312976
type GPUBufferDynamicOffset = number;
1295412977
type GPUColor = number[] | GPUColorDict;
1295512978
type GPUCopyExternalImageSource = ImageBitmap | ImageData | OffscreenCanvas;

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,22 @@ interface FontFaceSetLoadEventInit extends EventInit {
213213
fontfaces?: FontFace[];
214214
}
215215

216+
interface GPUBindGroupDescriptor extends GPUObjectDescriptorBase {
217+
entries: GPUBindGroupEntry[];
218+
layout: GPUBindGroupLayout;
219+
}
220+
221+
interface GPUBindGroupEntry {
222+
binding: GPUIndex32;
223+
resource: GPUBindingResource;
224+
}
225+
226+
interface GPUBufferBinding {
227+
buffer: GPUBuffer;
228+
offset?: GPUSize64;
229+
size?: GPUSize64;
230+
}
231+
216232
interface GPUCanvasConfiguration {
217233
alphaMode?: GPUCanvasAlphaMode;
218234
colorSpace?: PredefinedColorSpace;
@@ -4445,6 +4461,12 @@ interface GPUDevice extends EventTarget, GPUObjectBase {
44454461
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/queue)
44464462
*/
44474463
readonly queue: GPUQueue;
4464+
/**
4465+
* The **`createBindGroup()`** method of the GPUDevice interface creates a GPUBindGroup based on a GPUBindGroupLayout that defines a set of resources to be bound together in a group and how those resources are used in shader stages.
4466+
*
4467+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBindGroup)
4468+
*/
4469+
createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup;
44484470
/**
44494471
* The **`destroy()`** method of the GPUDevice interface destroys the device, preventing further operations on it.
44504472
*
@@ -12626,6 +12648,7 @@ type GLsizei = number;
1262612648
type GLsizeiptr = number;
1262712649
type GLuint = number;
1262812650
type GLuint64 = number;
12651+
type GPUBindingResource = GPUSampler | GPUTexture | GPUTextureView | GPUBuffer | GPUBufferBinding | GPUExternalTexture;
1262912652
type GPUBufferDynamicOffset = number;
1263012653
type GPUColor = number[] | GPUColorDict;
1263112654
type GPUCopyExternalImageSource = ImageBitmap | ImageData | OffscreenCanvas;

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,22 @@ interface FontFaceSetLoadEventInit extends EventInit {
359359
fontfaces?: FontFace[];
360360
}
361361

362+
interface GPUBindGroupDescriptor extends GPUObjectDescriptorBase {
363+
entries: GPUBindGroupEntry[];
364+
layout: GPUBindGroupLayout;
365+
}
366+
367+
interface GPUBindGroupEntry {
368+
binding: GPUIndex32;
369+
resource: GPUBindingResource;
370+
}
371+
372+
interface GPUBufferBinding {
373+
buffer: GPUBuffer;
374+
offset?: GPUSize64;
375+
size?: GPUSize64;
376+
}
377+
362378
interface GPUCanvasConfiguration {
363379
alphaMode?: GPUCanvasAlphaMode;
364380
colorSpace?: PredefinedColorSpace;
@@ -5465,6 +5481,12 @@ interface GPUDevice extends EventTarget, GPUObjectBase {
54655481
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/queue)
54665482
*/
54675483
readonly queue: GPUQueue;
5484+
/**
5485+
* The **`createBindGroup()`** method of the GPUDevice interface creates a GPUBindGroup based on a GPUBindGroupLayout that defines a set of resources to be bound together in a group and how those resources are used in shader stages.
5486+
*
5487+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBindGroup)
5488+
*/
5489+
createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup;
54685490
/**
54695491
* The **`destroy()`** method of the GPUDevice interface destroys the device, preventing further operations on it.
54705492
*
@@ -14628,6 +14650,7 @@ type GLsizei = number;
1462814650
type GLsizeiptr = number;
1462914651
type GLuint = number;
1463014652
type GLuint64 = number;
14653+
type GPUBindingResource = GPUSampler | GPUTexture | GPUTextureView | GPUBuffer | GPUBufferBinding | GPUExternalTexture;
1463114654
type GPUBufferDynamicOffset = number;
1463214655
type GPUColor = number[] | GPUColorDict;
1463314656
type GPUCopyExternalImageSource = ImageBitmap | ImageData | VideoFrame | OffscreenCanvas;

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,22 @@ interface FullscreenOptions {
802802
navigationUI?: FullscreenNavigationUI;
803803
}
804804

805+
interface GPUBindGroupDescriptor extends GPUObjectDescriptorBase {
806+
entries: GPUBindGroupEntry[];
807+
layout: GPUBindGroupLayout;
808+
}
809+
810+
interface GPUBindGroupEntry {
811+
binding: GPUIndex32;
812+
resource: GPUBindingResource;
813+
}
814+
815+
interface GPUBufferBinding {
816+
buffer: GPUBuffer;
817+
offset?: GPUSize64;
818+
size?: GPUSize64;
819+
}
820+
805821
interface GPUCanvasConfiguration {
806822
alphaMode?: GPUCanvasAlphaMode;
807823
colorSpace?: PredefinedColorSpace;
@@ -15320,6 +15336,12 @@ interface GPUDevice extends EventTarget, GPUObjectBase {
1532015336
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/queue)
1532115337
*/
1532215338
readonly queue: GPUQueue;
15339+
/**
15340+
* The **`createBindGroup()`** method of the GPUDevice interface creates a GPUBindGroup based on a GPUBindGroupLayout that defines a set of resources to be bound together in a group and how those resources are used in shader stages.
15341+
*
15342+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBindGroup)
15343+
*/
15344+
createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup;
1532315345
/**
1532415346
* The **`destroy()`** method of the GPUDevice interface destroys the device, preventing further operations on it.
1532515347
*
@@ -43760,6 +43782,7 @@ type GLsizei = number;
4376043782
type GLsizeiptr = number;
4376143783
type GLuint = number;
4376243784
type GLuint64 = number;
43785+
type GPUBindingResource = GPUSampler | GPUTexture | GPUTextureView | GPUBuffer | GPUBufferBinding | GPUExternalTexture;
4376343786
type GPUBufferDynamicOffset = number;
4376443787
type GPUColor = number[] | GPUColorDict;
4376543788
type GPUCopyExternalImageSource = ImageBitmap | ImageData | HTMLImageElement | HTMLVideoElement | VideoFrame | HTMLCanvasElement | OffscreenCanvas;

baselines/ts5.6/serviceworker.generated.d.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,22 @@ interface FontFaceSetLoadEventInit extends EventInit {
269269
fontfaces?: FontFace[];
270270
}
271271

272+
interface GPUBindGroupDescriptor extends GPUObjectDescriptorBase {
273+
entries: GPUBindGroupEntry[];
274+
layout: GPUBindGroupLayout;
275+
}
276+
277+
interface GPUBindGroupEntry {
278+
binding: GPUIndex32;
279+
resource: GPUBindingResource;
280+
}
281+
282+
interface GPUBufferBinding {
283+
buffer: GPUBuffer;
284+
offset?: GPUSize64;
285+
size?: GPUSize64;
286+
}
287+
272288
interface GPUCanvasConfiguration {
273289
alphaMode?: GPUCanvasAlphaMode;
274290
colorSpace?: PredefinedColorSpace;
@@ -4762,6 +4778,12 @@ interface GPUDevice extends EventTarget, GPUObjectBase {
47624778
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/queue)
47634779
*/
47644780
readonly queue: GPUQueue;
4781+
/**
4782+
* The **`createBindGroup()`** method of the GPUDevice interface creates a GPUBindGroup based on a GPUBindGroupLayout that defines a set of resources to be bound together in a group and how those resources are used in shader stages.
4783+
*
4784+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBindGroup)
4785+
*/
4786+
createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup;
47654787
/**
47664788
* The **`destroy()`** method of the GPUDevice interface destroys the device, preventing further operations on it.
47674789
*
@@ -12950,6 +12972,7 @@ type GLsizei = number;
1295012972
type GLsizeiptr = number;
1295112973
type GLuint = number;
1295212974
type GLuint64 = number;
12975+
type GPUBindingResource = GPUSampler | GPUTexture | GPUTextureView | GPUBuffer | GPUBufferBinding | GPUExternalTexture;
1295312976
type GPUBufferDynamicOffset = number;
1295412977
type GPUColor = number[] | GPUColorDict;
1295512978
type GPUCopyExternalImageSource = ImageBitmap | ImageData | OffscreenCanvas;

0 commit comments

Comments
 (0)