react-native-wgpu 0.1.23 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/cpp/dawn/dawn_proc_table.h +17 -25
  2. package/cpp/dawn/native/D3D11Backend.h +7 -0
  3. package/cpp/dawn/native/DawnNative.h +70 -26
  4. package/cpp/dawn/native/WebGPUBackend.h +35 -0
  5. package/cpp/dawn/platform/DawnPlatform.h +1 -0
  6. package/cpp/dawn/webgpu_cpp_print.h +338 -293
  7. package/cpp/dawn_logging.cpp +122 -0
  8. package/cpp/rnwgpu/SurfaceRegistry.h +3 -2
  9. package/cpp/rnwgpu/api/Convertors.h +38 -42
  10. package/cpp/rnwgpu/api/GPU.cpp +20 -18
  11. package/cpp/rnwgpu/api/GPU.h +6 -2
  12. package/cpp/rnwgpu/api/GPUAdapter.cpp +49 -40
  13. package/cpp/rnwgpu/api/GPUBuffer.cpp +21 -19
  14. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +1 -0
  15. package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +6 -6
  16. package/cpp/rnwgpu/api/GPUCompilationInfo.h +0 -9
  17. package/cpp/rnwgpu/api/GPUDevice.cpp +7 -10
  18. package/cpp/rnwgpu/api/GPUFeatures.h +5 -14
  19. package/cpp/rnwgpu/api/GPUQueue.cpp +4 -4
  20. package/cpp/rnwgpu/api/GPUShaderModule.cpp +0 -3
  21. package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +31 -35
  22. package/cpp/rnwgpu/api/GPUSupportedLimits.h +3 -7
  23. package/cpp/rnwgpu/api/descriptors/Unions.h +8 -28
  24. package/cpp/webgpu/webgpu.h +2197 -1863
  25. package/cpp/webgpu/webgpu_cpp.h +2800 -2479
  26. package/cpp/webgpu/webgpu_cpp_print.h +33 -0
  27. package/cpp/webgpu/webgpu_glfw.h +17 -0
  28. package/lib/typescript/src/__tests__/components/meshes/mesh.d.ts.map +1 -1
  29. package/lib/typescript/src/__tests__/setup.d.ts.map +1 -1
  30. package/lib/typescript/src/hooks.d.ts.map +1 -1
  31. package/libs/android/arm64-v8a/libwebgpu_dawn.so +0 -0
  32. package/libs/android/armeabi-v7a/libwebgpu_dawn.so +0 -0
  33. package/libs/android/x86/libwebgpu_dawn.so +0 -0
  34. package/libs/android/x86_64/libwebgpu_dawn.so +0 -0
  35. package/libs/apple/arm64_iphoneos/libwebgpu_dawn.a +0 -0
  36. package/libs/apple/arm64_iphonesimulator/libwebgpu_dawn.a +0 -0
  37. package/libs/apple/arm64_xros/libwebgpu_dawn.a +0 -0
  38. package/libs/apple/arm64_xrsimulator/libwebgpu_dawn.a +0 -0
  39. package/libs/apple/iphonesimulator/libwebgpu_dawn.a +0 -0
  40. package/libs/apple/libwebgpu_dawn.xcframework/Info.plist +11 -11
  41. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/libwebgpu_dawn.a +0 -0
  42. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/libwebgpu_dawn.a +0 -0
  43. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/libwebgpu_dawn.a +0 -0
  44. package/libs/apple/libwebgpu_dawn.xcframework/xros-arm64/libwebgpu_dawn.a +0 -0
  45. package/libs/apple/libwebgpu_dawn.xcframework/xros-arm64-simulator/libwebgpu_dawn.a +0 -0
  46. package/libs/apple/universal_macosx/libwebgpu_dawn.a +0 -0
  47. package/libs/apple/x86_64_iphonesimulator/libwebgpu_dawn.a +0 -0
  48. package/libs/dawn.json +659 -798
  49. package/package.json +4 -4
package/libs/dawn.json CHANGED
@@ -39,7 +39,7 @@
39
39
  "copyright_year": "2019"
40
40
  },
41
41
 
42
- "INTERNAL__HAVE_EMDAWNWEBGPU_HEADER": {
42
+ "INTERNAL_HAVE_EMDAWNWEBGPU_HEADER": {
43
43
  "category": "structure",
44
44
  "tags": ["emscripten"],
45
45
  "_comment": "TODO(issues.chromium.org/issues/366932309): The struct must have at least one field.",
@@ -73,23 +73,30 @@
73
73
  "category": "structure",
74
74
  "extensible": "in",
75
75
  "members": [
76
- {"name": "compatible surface", "type": "surface", "optional": true},
77
- {"name": "power preference", "type": "power preference", "default": "undefined"},
78
- {"name": "backend type", "type": "backend type", "default": "undefined"},
76
+ {"name": "feature level", "type": "feature level", "default": "core"},
77
+ {"name": "power preference", "type": "power preference"},
79
78
  {"name": "force fallback adapter", "type": "bool", "default": "false"},
80
- {"name": "compatibility mode", "type": "bool", "default": "false", "tags": ["dawn", "emscripten"]}
79
+ {"name": "backend type", "type": "backend type"},
80
+ {"name": "compatible surface", "type": "surface", "optional": true}
81
81
  ]
82
82
  },
83
- "request adapter callback": {
84
- "category": "function pointer",
85
- "args": [
86
- {"name": "status", "type": "request adapter status"},
87
- {"name": "adapter", "type": "adapter", "optional": true},
88
- {"name": "message", "type": "string view"},
89
- {"name": "userdata", "type": "void *"}
83
+ "request adapter WebXR options": {
84
+ "category": "structure",
85
+ "chained": "in",
86
+ "chain roots": ["request adapter options"],
87
+ "tags": ["upstream", "emscripten"],
88
+ "members": [
89
+ {"name": "xr compatible", "type": "bool"}
90
90
  ]
91
91
  },
92
- "request adapter callback 2": {
92
+ "request adapter WebGPU backend options": {
93
+ "category": "structure",
94
+ "chained": "in",
95
+ "chain roots": ["request adapter options"],
96
+ "tags": ["dawn", "native"],
97
+ "members": []
98
+ },
99
+ "request adapter callback": {
93
100
  "category": "callback function",
94
101
  "args": [
95
102
  {"name": "status", "type": "request adapter status"},
@@ -98,30 +105,20 @@
98
105
  ]
99
106
  },
100
107
  "request adapter callback info": {
101
- "category": "structure",
102
- "extensible": "in",
103
- "members": [
104
- {"name": "mode", "type": "callback mode"},
105
- {"name": "callback", "type": "request adapter callback"},
106
- {"name": "userdata", "type": "void *"}
107
- ]
108
- },
109
- "request adapter callback info 2": {
110
108
  "category": "callback info",
111
109
  "members": [
112
110
  {"name": "mode", "type": "callback mode"},
113
- {"name": "callback", "type": "request adapter callback 2"}
111
+ {"name": "callback", "type": "request adapter callback"}
114
112
  ]
115
- },
113
+ },
116
114
  "request adapter status": {
117
115
  "category": "enum",
118
116
  "emscripten_no_enum_table": true,
119
117
  "values": [
120
118
  {"value": 1, "name": "success"},
121
- {"value": 2, "name": "instance dropped"},
119
+ {"value": 2, "name": "callback cancelled"},
122
120
  {"value": 3, "name": "unavailable"},
123
- {"value": 4, "name": "error"},
124
- {"value": 5, "name": "unknown"}
121
+ {"value": 4, "name": "error"}
125
122
  ]
126
123
  },
127
124
  "adapter": {
@@ -137,7 +134,7 @@
137
134
  "name": "get limits",
138
135
  "returns": "status",
139
136
  "args": [
140
- {"name": "limits", "type": "supported limits", "annotation": "*"}
137
+ {"name": "limits", "type": "limits", "annotation": "*"}
141
138
  ]
142
139
  },
143
140
  {
@@ -155,40 +152,20 @@
155
152
  ]
156
153
  },
157
154
  {
158
- "name": "enumerate features",
159
- "returns": "size_t",
155
+ "name": "get features",
156
+ "returns": "void",
160
157
  "args": [
161
- {"name": "features", "type": "feature name", "annotation": "*"}
158
+ {"name": "features", "type": "supported features", "annotation": "*"}
162
159
  ]
163
160
  },
164
161
  {
165
162
  "name": "request device",
166
- "args": [
167
- {"name": "descriptor", "type": "device descriptor", "annotation": "const*", "optional": true, "no_default": true},
168
- {"name": "callback", "type": "request device callback"},
169
- {"name": "userdata", "type": "void *"}
170
- ]
171
- },
172
- {
173
- "name": "request device f",
174
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
175
- "tags": ["dawn", "emscripten"],
176
163
  "returns": "future",
177
164
  "args": [
178
165
  {"name": "options", "type": "device descriptor", "annotation": "const*", "optional": true, "no_default": true},
179
166
  {"name": "callback info", "type": "request device callback info"}
180
167
  ]
181
168
  },
182
- {
183
- "name": "request device 2",
184
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
185
- "tags": ["dawn", "emscripten"],
186
- "returns": "future",
187
- "args": [
188
- {"name": "options", "type": "device descriptor", "annotation": "const*", "optional": true, "no_default": true},
189
- {"name": "callback info", "type": "request device callback info 2"}
190
- ]
191
- },
192
169
  {
193
170
  "name": "create device",
194
171
  "tags": ["dawn"],
@@ -203,7 +180,7 @@
203
180
  "returns": "status",
204
181
  "args": [
205
182
  {"name": "format", "type": "texture format"},
206
- {"name": "capabilities", "type": "format capabilities", "annotation": "*"}
183
+ {"name": "capabilities", "type": "dawn format capabilities", "annotation": "*"}
207
184
  ]
208
185
  }
209
186
  ]
@@ -220,7 +197,8 @@
220
197
  {"name": "adapter type", "type": "adapter type"},
221
198
  {"name": "vendor ID", "type": "uint32_t"},
222
199
  {"name": "device ID", "type": "uint32_t"},
223
- {"name": "compatibility mode", "type": "bool", "default": "false", "tags": ["dawn", "emscripten"]}
200
+ {"name": "subgroup min size", "type": "uint32_t"},
201
+ {"name": "subgroup max size", "type": "uint32_t"}
224
202
  ]
225
203
  },
226
204
  "adapter type": {
@@ -240,14 +218,10 @@
240
218
  {"name": "label", "type": "string view", "optional": true},
241
219
  {"name": "required feature count", "type": "size_t", "default": 0},
242
220
  {"name": "required features", "type": "feature name", "annotation": "const*", "length": "required feature count", "default": "nullptr"},
243
- {"name": "required limits", "type": "required limits", "annotation": "const*", "optional": true},
221
+ {"name": "required limits", "type": "limits", "annotation": "const*", "optional": true},
244
222
  {"name": "default queue", "type": "queue descriptor"},
245
- {"name": "device lost callback", "type": "device lost callback", "default": "nullptr", "tags": ["deprecated"]},
246
- {"name": "device lost userdata", "type": "void *", "default": "nullptr", "tags": ["deprecated"]},
247
223
  {"name": "device lost callback info", "type": "device lost callback info"},
248
- {"name": "uncaptured error callback info", "type": "uncaptured error callback info"},
249
- {"name": "device lost callback info 2", "type": "device lost callback info 2"},
250
- {"name": "uncaptured error callback info 2", "type": "uncaptured error callback info 2"}
224
+ {"name": "uncaptured error callback info", "type": "uncaptured error callback info"}
251
225
  ]
252
226
  },
253
227
  "dawn toggles descriptor": {
@@ -297,6 +271,15 @@
297
271
  {"name": "function userdata", "type": "void *", "default": "nullptr"}
298
272
  ]
299
273
  },
274
+ "dawn device allocator control": {
275
+ "tags": ["dawn"],
276
+ "category": "structure",
277
+ "chained": "in",
278
+ "chain roots": ["device descriptor"],
279
+ "members": [
280
+ {"name": "allocator heap block size", "type": "size_t", "default": 0}
281
+ ]
282
+ },
300
283
  "dawn WGSL blocklist": {
301
284
  "tags": ["dawn", "native"],
302
285
  "category": "structure",
@@ -350,7 +333,7 @@
350
333
  {"name": "binding", "type": "uint32_t"},
351
334
  {"name": "buffer", "type": "buffer", "optional": true},
352
335
  {"name": "offset", "type": "uint64_t", "default": "0"},
353
- {"name": "size", "type": "uint64_t", "default": "WGPU_WHOLE_SIZE"},
336
+ {"name": "size", "type": "uint64_t", "default": "whole size"},
354
337
  {"name": "sampler", "type": "sampler", "optional": true},
355
338
  {"name": "texture view", "type": "texture view", "optional": true}
356
339
  ]
@@ -381,17 +364,18 @@
381
364
  "buffer binding type": {
382
365
  "category": "enum",
383
366
  "values": [
384
- {"value": 0, "name": "undefined", "jsrepr": "undefined", "valid": false},
385
- {"value": 1, "name": "uniform"},
386
- {"value": 2, "name": "storage"},
387
- {"value": 3, "name": "read only storage"}
367
+ {"value": 0, "name": "binding not used"},
368
+ {"value": 1, "name": "undefined", "jsrepr": "undefined", "valid": false},
369
+ {"value": 2, "name": "uniform"},
370
+ {"value": 3, "name": "storage"},
371
+ {"value": 4, "name": "read only storage"}
388
372
  ]
389
373
  },
390
374
  "buffer binding layout": {
391
375
  "category": "structure",
392
376
  "extensible": "in",
393
377
  "members": [
394
- {"name": "type", "type": "buffer binding type", "default": "undefined"},
378
+ {"name": "type", "type": "buffer binding type", "default": "uniform"},
395
379
  {"name": "has dynamic offset", "type": "bool", "default": "false"},
396
380
  {"name": "min binding size", "type": "uint64_t", "default": "0"}
397
381
  ]
@@ -400,17 +384,18 @@
400
384
  "sampler binding type": {
401
385
  "category": "enum",
402
386
  "values": [
403
- {"value": 0, "name": "undefined", "jsrepr": "undefined", "valid": false},
404
- {"value": 1, "name": "filtering"},
405
- {"value": 2, "name": "non filtering"},
406
- {"value": 3, "name": "comparison"}
387
+ {"value": 0, "name": "binding not used"},
388
+ {"value": 1, "name": "undefined", "jsrepr": "undefined", "valid": false},
389
+ {"value": 2, "name": "filtering"},
390
+ {"value": 3, "name": "non filtering"},
391
+ {"value": 4, "name": "comparison"}
407
392
  ]
408
393
  },
409
394
  "sampler binding layout": {
410
395
  "category": "structure",
411
396
  "extensible": "in",
412
397
  "members": [
413
- {"name": "type", "type": "sampler binding type", "default": "undefined"}
398
+ {"name": "type", "type": "sampler binding type", "default": "filtering"}
414
399
  ]
415
400
  },
416
401
  "static sampler binding layout": {
@@ -420,25 +405,26 @@
420
405
  "tags": ["dawn"],
421
406
  "members": [
422
407
  {"name": "sampler", "type": "sampler"},
423
- {"name": "sampled texture binding", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED" }
408
+ {"name": "sampled texture binding", "type": "uint32_t", "default": "limit u32 undefined" }
424
409
  ]
425
410
  },
426
411
  "texture sample type": {
427
412
  "category": "enum",
428
413
  "values": [
429
- {"value": 0, "name": "undefined", "jsrepr": "undefined", "valid": false},
430
- {"value": 1, "name": "float"},
431
- {"value": 2, "name": "unfilterable float"},
432
- {"value": 3, "name": "depth"},
433
- {"value": 4, "name": "sint"},
434
- {"value": 5, "name": "uint"}
414
+ {"value": 0, "name": "binding not used"},
415
+ {"value": 1, "name": "undefined", "jsrepr": "undefined", "valid": false},
416
+ {"value": 2, "name": "float"},
417
+ {"value": 3, "name": "unfilterable float"},
418
+ {"value": 4, "name": "depth"},
419
+ {"value": 5, "name": "sint"},
420
+ {"value": 6, "name": "uint"}
435
421
  ]
436
422
  },
437
423
  "texture binding layout": {
438
424
  "category": "structure",
439
425
  "extensible": "in",
440
426
  "members": [
441
- {"name": "sample type", "type": "texture sample type", "default": "undefined"},
427
+ {"name": "sample type", "type": "texture sample type", "default": "float"},
442
428
  {"name": "view dimension", "type": "texture view dimension", "default": "2D"},
443
429
  {"name": "multisampled", "type": "bool", "default": "false"}
444
430
  ]
@@ -470,11 +456,11 @@
470
456
  {"name": "device", "type": "device"},
471
457
  {"name": "format", "type": "texture format"},
472
458
  {"name": "usage", "type": "texture usage", "default": "render attachment"},
473
- {"name": "view format count", "type": "size_t", "default": 0},
474
- {"name": "view formats", "type": "texture format", "annotation": "const*", "length": "view format count"},
475
- {"name": "alpha mode", "type": "composite alpha mode", "default": "auto"},
476
459
  {"name": "width", "type": "uint32_t"},
477
460
  {"name": "height", "type": "uint32_t"},
461
+ {"name": "view format count", "type": "size_t", "default": 0},
462
+ {"name": "view formats", "type": "texture format", "annotation": "const*", "length": "view format count", "default": "nullptr"},
463
+ {"name": "alpha mode", "type": "composite alpha mode", "default": "auto"},
478
464
  {"name": "present mode", "type": "present mode", "default": "fifo"}
479
465
  ]
480
466
  },
@@ -499,18 +485,19 @@
499
485
  "storage texture access": {
500
486
  "category": "enum",
501
487
  "values": [
502
- {"value": 0, "name": "undefined", "jsrepr": "undefined", "valid": false},
503
- {"value": 1, "name": "write only"},
504
- {"value": 2, "name": "read only"},
505
- {"value": 3, "name": "read write"}
488
+ {"value": 0, "name": "binding not used"},
489
+ {"value": 1, "name": "undefined", "jsrepr": "undefined", "valid": false},
490
+ {"value": 2, "name": "write only"},
491
+ {"value": 3, "name": "read only"},
492
+ {"value": 4, "name": "read write"}
506
493
  ]
507
494
  },
508
495
  "storage texture binding layout": {
509
496
  "category": "structure",
510
497
  "extensible": "in",
511
498
  "members": [
512
- {"name": "access", "type": "storage texture access", "default": "undefined"},
513
- {"name": "format", "type": "texture format", "default": "undefined"},
499
+ {"name": "access", "type": "storage texture access", "default": "write only"},
500
+ {"name": "format", "type": "texture format"},
514
501
  {"name": "view dimension", "type": "texture view dimension", "default": "2D"}
515
502
  ]
516
503
  },
@@ -521,10 +508,11 @@
521
508
  "members": [
522
509
  {"name": "binding", "type": "uint32_t"},
523
510
  {"name": "visibility", "type": "shader stage"},
524
- {"name": "buffer", "type": "buffer binding layout"},
525
- {"name": "sampler", "type": "sampler binding layout"},
526
- {"name": "texture", "type": "texture binding layout"},
527
- {"name": "storage texture", "type": "storage texture binding layout"}
511
+ {"name": "binding array size", "type": "uint32_t", "default": 0},
512
+ {"name": "buffer", "type": "buffer binding layout", "default": "zero"},
513
+ {"name": "sampler", "type": "sampler binding layout", "default": "zero"},
514
+ {"name": "texture", "type": "texture binding layout", "default": "zero"},
515
+ {"name": "storage texture", "type": "storage texture binding layout", "default": "zero"}
528
516
  ]
529
517
  },
530
518
  "bind group layout descriptor": {
@@ -595,7 +583,7 @@
595
583
  "category": "structure",
596
584
  "members": [
597
585
  {"name": "data", "type": "char", "annotation": "const*", "optional": true},
598
- {"name": "length", "type": "size_t", "default": "WGPU_STRLEN"}
586
+ {"name": "length", "type": "size_t", "default": "strlen"}
599
587
  ]
600
588
  },
601
589
  "buffer": {
@@ -603,18 +591,6 @@
603
591
  "methods": [
604
592
  {
605
593
  "name": "map async",
606
- "args": [
607
- {"name": "mode", "type": "map mode"},
608
- {"name": "offset", "type": "size_t"},
609
- {"name": "size", "type": "size_t"},
610
- {"name": "callback", "type": "buffer map callback"},
611
- {"name": "userdata", "type": "void *"}
612
- ]
613
- },
614
- {
615
- "name": "map async f",
616
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
617
- "tags": ["dawn", "emscripten"],
618
594
  "returns": "future",
619
595
  "args": [
620
596
  {"name": "mode", "type": "map mode"},
@@ -623,24 +599,12 @@
623
599
  {"name": "callback info", "type": "buffer map callback info"}
624
600
  ]
625
601
  },
626
- {
627
- "name": "map async 2",
628
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
629
- "tags": ["dawn", "emscripten"],
630
- "returns": "future",
631
- "args": [
632
- {"name": "mode", "type": "map mode"},
633
- {"name": "offset", "type": "size_t"},
634
- {"name": "size", "type": "size_t"},
635
- {"name": "callback info", "type": "buffer map callback info 2"}
636
- ]
637
- },
638
602
  {
639
603
  "name": "get mapped range",
640
604
  "returns": "void *",
641
605
  "args": [
642
606
  {"name": "offset", "type": "size_t", "default": 0},
643
- {"name": "size", "type": "size_t", "default": "WGPU_WHOLE_MAP_SIZE"}
607
+ {"name": "size", "type": "size_t", "default": "whole map size"}
644
608
  ]
645
609
  },
646
610
  {
@@ -648,7 +612,25 @@
648
612
  "returns": "void const *",
649
613
  "args": [
650
614
  {"name": "offset", "type": "size_t", "default": 0},
651
- {"name": "size", "type": "size_t", "default": "WGPU_WHOLE_MAP_SIZE"}
615
+ {"name": "size", "type": "size_t", "default": "whole map size"}
616
+ ]
617
+ },
618
+ {
619
+ "name": "write mapped range",
620
+ "returns": "status",
621
+ "args": [
622
+ {"name": "offset", "type": "size_t"},
623
+ {"name": "data", "type": "void", "annotation": "const*", "length": "size"},
624
+ {"name": "size", "type": "size_t"}
625
+ ]
626
+ },
627
+ {
628
+ "name": "read mapped range",
629
+ "returns": "status",
630
+ "args": [
631
+ {"name": "offset", "type": "size_t"},
632
+ {"name": "data", "type": "void", "annotation": "*", "length": "size"},
633
+ {"name": "size", "type": "size_t"}
652
634
  ]
653
635
  },
654
636
  {
@@ -709,13 +691,6 @@
709
691
  ]
710
692
  },
711
693
  "buffer map callback": {
712
- "category": "function pointer",
713
- "args": [
714
- {"name": "status", "type": "buffer map async status"},
715
- {"name": "userdata", "type": "void *"}
716
- ]
717
- },
718
- "buffer map callback 2": {
719
694
  "category": "callback function",
720
695
  "args": [
721
696
  {"name": "status", "type": "map async status"},
@@ -723,35 +698,10 @@
723
698
  ]
724
699
  },
725
700
  "buffer map callback info": {
726
- "category": "structure",
727
- "extensible": "in",
728
- "members": [
729
- {"name": "mode", "type": "callback mode"},
730
- {"name": "callback", "type": "buffer map callback"},
731
- {"name": "userdata", "type": "void *"}
732
- ]
733
- },
734
- "buffer map callback info 2": {
735
701
  "category": "callback info",
736
702
  "members": [
737
703
  {"name": "mode", "type": "callback mode"},
738
- {"name": "callback", "type": "buffer map callback 2"}
739
- ]
740
- },
741
- "buffer map async status": {
742
- "category": "enum",
743
- "emscripten_no_enum_table": true,
744
- "values": [
745
- {"value": 1, "name": "success"},
746
- {"value": 2, "name": "instance dropped"},
747
- {"value": 3, "name": "validation error"},
748
- {"value": 4, "name": "unknown"},
749
- {"value": 5, "name": "device lost"},
750
- {"value": 6, "name": "destroyed before callback"},
751
- {"value": 7, "name": "unmapped before callback"},
752
- {"value": 8, "name": "mapping already pending"},
753
- {"value": 9, "name": "offset out of range"},
754
- {"value": 10, "name": "size out of range"}
704
+ {"name": "callback", "type": "buffer map callback"}
755
705
  ]
756
706
  },
757
707
  "map async status": {
@@ -759,10 +709,9 @@
759
709
  "emscripten_no_enum_table": true,
760
710
  "values": [
761
711
  {"value": 1, "name": "success"},
762
- {"value": 2, "name": "instance dropped"},
712
+ {"value": 2, "name": "callback cancelled"},
763
713
  {"value": 3, "name": "error"},
764
- {"value": 4, "name": "aborted"},
765
- {"value": 5, "name": "unknown"}
714
+ {"value": 4, "name": "aborted"}
766
715
  ]
767
716
  },
768
717
  "buffer map state": {
@@ -878,24 +827,24 @@
878
827
  {
879
828
  "name": "copy buffer to texture",
880
829
  "args": [
881
- {"name": "source", "type": "image copy buffer", "annotation": "const*"},
882
- {"name": "destination", "type": "image copy texture", "annotation": "const*"},
830
+ {"name": "source", "type": "texel copy buffer info", "annotation": "const*"},
831
+ {"name": "destination", "type": "texel copy texture info", "annotation": "const*"},
883
832
  {"name": "copy size", "type": "extent 3D", "annotation": "const*"}
884
833
  ]
885
834
  },
886
835
  {
887
836
  "name": "copy texture to buffer",
888
837
  "args": [
889
- {"name": "source", "type": "image copy texture", "annotation": "const*"},
890
- {"name": "destination", "type": "image copy buffer", "annotation": "const*"},
838
+ {"name": "source", "type": "texel copy texture info", "annotation": "const*"},
839
+ {"name": "destination", "type": "texel copy buffer info", "annotation": "const*"},
891
840
  {"name": "copy size", "type": "extent 3D", "annotation": "const*"}
892
841
  ]
893
842
  },
894
843
  {
895
844
  "name": "copy texture to texture",
896
845
  "args": [
897
- {"name": "source", "type": "image copy texture", "annotation": "const*"},
898
- {"name": "destination", "type": "image copy texture", "annotation": "const*"},
846
+ {"name": "source", "type": "texel copy texture info", "annotation": "const*"},
847
+ {"name": "destination", "type": "texel copy texture info", "annotation": "const*"},
899
848
  {"name": "copy size", "type": "extent 3D", "annotation": "const*"}
900
849
  ]
901
850
  },
@@ -904,7 +853,7 @@
904
853
  "args": [
905
854
  {"name": "buffer", "type": "buffer"},
906
855
  {"name": "offset", "type": "uint64_t", "default": 0},
907
- {"name": "size", "type": "uint64_t", "default": "WGPU_WHOLE_SIZE"}
856
+ {"name": "size", "type": "uint64_t", "default": "whole size"}
908
857
  ]
909
858
  },
910
859
  {
@@ -996,14 +945,6 @@
996
945
  ]
997
946
  },
998
947
  "compilation info callback": {
999
- "category": "function pointer",
1000
- "args": [
1001
- {"name": "status", "type": "compilation info request status"},
1002
- {"name": "compilation info", "type": "compilation info", "annotation": "const*"},
1003
- {"name": "userdata", "type": "void *"}
1004
- ]
1005
- },
1006
- "compilation info callback 2": {
1007
948
  "category": "callback function",
1008
949
  "args": [
1009
950
  {"name": "status", "type": "compilation info request status"},
@@ -1011,29 +952,17 @@
1011
952
  ]
1012
953
  },
1013
954
  "compilation info callback info": {
1014
- "category": "structure",
1015
- "extensible": "in",
1016
- "members": [
1017
- {"name": "mode", "type": "callback mode"},
1018
- {"name": "callback", "type": "compilation info callback"},
1019
- {"name": "userdata", "type": "void *", "default": "nullptr"}
1020
- ]
1021
- },
1022
- "compilation info callback info 2": {
1023
955
  "category": "callback info",
1024
956
  "members": [
1025
957
  {"name": "mode", "type": "callback mode"},
1026
- {"name": "callback", "type": "compilation info callback 2"}
958
+ {"name": "callback", "type": "compilation info callback"}
1027
959
  ]
1028
960
  },
1029
961
  "compilation info request status": {
1030
962
  "category": "enum",
1031
963
  "values": [
1032
964
  {"value": 1, "name": "success"},
1033
- {"value": 2, "name": "instance dropped"},
1034
- {"value": 3, "name": "error"},
1035
- {"value": 4, "name": "device lost"},
1036
- {"value": 5, "name": "unknown"}
965
+ {"value": 2, "name": "callback cancelled"}
1037
966
  ]
1038
967
  },
1039
968
  "compilation message": {
@@ -1045,10 +974,18 @@
1045
974
  {"name": "line num", "type": "uint64_t"},
1046
975
  {"name": "line pos", "type": "uint64_t"},
1047
976
  {"name": "offset", "type": "uint64_t"},
1048
- {"name": "length", "type": "uint64_t"},
1049
- {"name": "utf16 line pos", "type": "uint64_t"},
1050
- {"name": "utf16 offset", "type": "uint64_t"},
1051
- {"name": "utf16 length", "type": "uint64_t"}
977
+ {"name": "length", "type": "uint64_t"}
978
+ ]
979
+ },
980
+ "dawn compilation message utf16": {
981
+ "category": "structure",
982
+ "chained": "in",
983
+ "chain roots": ["compilation message"],
984
+ "tags": ["dawn", "emscripten"],
985
+ "members": [
986
+ {"name": "line pos", "type": "uint64_t"},
987
+ {"name": "offset", "type": "uint64_t"},
988
+ {"name": "length", "type": "uint64_t"}
1052
989
  ]
1053
990
  },
1054
991
  "compilation message type": {
@@ -1066,7 +1003,7 @@
1066
1003
  "extensible": "in",
1067
1004
  "members": [
1068
1005
  {"name": "label", "type": "string view", "optional": true},
1069
- {"name": "timestamp writes", "type": "compute pass timestamp writes", "annotation": "const*", "optional": true}
1006
+ {"name": "timestamp writes", "type": "pass timestamp writes", "annotation": "const*", "optional": true}
1070
1007
  ]
1071
1008
  },
1072
1009
  "compute pass encoder": {
@@ -1136,6 +1073,15 @@
1136
1073
  "args": [
1137
1074
  {"name": "label", "type": "string view"}
1138
1075
  ]
1076
+ },
1077
+ {
1078
+ "name": "set immediate data",
1079
+ "tags": ["dawn"],
1080
+ "args": [
1081
+ {"name": "offset", "type": "uint32_t"},
1082
+ {"name": "data", "type": "void", "annotation": "const*", "length": "size"},
1083
+ {"name": "size", "type": "size_t"}
1084
+ ]
1139
1085
  }
1140
1086
  ]
1141
1087
  },
@@ -1149,14 +1095,6 @@
1149
1095
  {"value": 4, "name": "inherit"}
1150
1096
  ]
1151
1097
  },
1152
- "compute pass timestamp writes": {
1153
- "category": "structure",
1154
- "members": [
1155
- {"name": "query set", "type": "query set"},
1156
- {"name": "beginning of pass write index", "type": "uint32_t", "default": "WGPU_QUERY_SET_INDEX_UNDEFINED"},
1157
- {"name": "end of pass write index", "type": "uint32_t", "default": "WGPU_QUERY_SET_INDEX_UNDEFINED"}
1158
- ]
1159
- },
1160
1098
  "compute pipeline": {
1161
1099
  "category": "object",
1162
1100
  "methods": [
@@ -1182,16 +1120,7 @@
1182
1120
  "members": [
1183
1121
  {"name": "label", "type": "string view", "optional": true},
1184
1122
  {"name": "layout", "type": "pipeline layout", "optional": true},
1185
- {"name": "compute", "type": "programmable stage descriptor"}
1186
- ]
1187
- },
1188
- "dawn compute pipeline full subgroups": {
1189
- "category": "structure",
1190
- "chained": "in",
1191
- "chain roots": ["compute pipeline descriptor"],
1192
- "tags": ["dawn"],
1193
- "members": [
1194
- {"name": "requires full subgroups", "type": "bool", "default": "false"}
1123
+ {"name": "compute", "type": "compute state"}
1195
1124
  ]
1196
1125
  },
1197
1126
  "alpha mode": {
@@ -1222,15 +1151,6 @@
1222
1151
  ]
1223
1152
  },
1224
1153
  "create compute pipeline async callback": {
1225
- "category": "function pointer",
1226
- "args": [
1227
- {"name": "status", "type": "create pipeline async status"},
1228
- {"name": "pipeline", "type": "compute pipeline", "optional": true},
1229
- {"name": "message", "type": "string view"},
1230
- {"name": "userdata", "type": "void *"}
1231
- ]
1232
- },
1233
- "create compute pipeline async callback 2": {
1234
1154
  "category": "callback function",
1235
1155
  "args": [
1236
1156
  {"name": "status", "type": "create pipeline async status"},
@@ -1239,19 +1159,10 @@
1239
1159
  ]
1240
1160
  },
1241
1161
  "create compute pipeline async callback info": {
1242
- "category": "structure",
1243
- "extensible": "in",
1244
- "members": [
1245
- {"name": "mode", "type": "callback mode"},
1246
- {"name": "callback", "type": "create compute pipeline async callback"},
1247
- {"name": "userdata", "type": "void *"}
1248
- ]
1249
- },
1250
- "create compute pipeline async callback info 2": {
1251
1162
  "category": "callback info",
1252
1163
  "members": [
1253
1164
  {"name": "mode", "type": "callback mode"},
1254
- {"name": "callback", "type": "create compute pipeline async callback 2"}
1165
+ {"name": "callback", "type": "create compute pipeline async callback"}
1255
1166
  ]
1256
1167
  },
1257
1168
  "create pipeline async status": {
@@ -1259,24 +1170,12 @@
1259
1170
  "emscripten_no_enum_table": true,
1260
1171
  "values": [
1261
1172
  {"value": 1, "name": "success"},
1262
- {"value": 2, "name": "instance dropped"},
1173
+ {"value": 2, "name": "callback cancelled"},
1263
1174
  {"value": 3, "name": "validation error"},
1264
- {"value": 4, "name": "internal error"},
1265
- {"value": 5, "name": "device lost"},
1266
- {"value": 6, "name": "device destroyed"},
1267
- {"value": 7, "name": "unknown"}
1175
+ {"value": 4, "name": "internal error"}
1268
1176
  ]
1269
1177
  },
1270
1178
  "create render pipeline async callback": {
1271
- "category": "function pointer",
1272
- "args": [
1273
- {"name": "status", "type": "create pipeline async status"},
1274
- {"name": "pipeline", "type": "render pipeline", "optional": true},
1275
- {"name": "message", "type": "string view"},
1276
- {"name": "userdata", "type": "void *"}
1277
- ]
1278
- },
1279
- "create render pipeline async callback 2": {
1280
1179
  "category": "callback function",
1281
1180
  "args": [
1282
1181
  {"name": "status", "type": "create pipeline async status"},
@@ -1285,19 +1184,10 @@
1285
1184
  ]
1286
1185
  },
1287
1186
  "create render pipeline async callback info": {
1288
- "category": "structure",
1289
- "extensible": "in",
1290
- "members": [
1291
- {"name": "mode", "type": "callback mode"},
1292
- {"name": "callback", "type": "create render pipeline async callback"},
1293
- {"name": "userdata", "type": "void *"}
1294
- ]
1295
- },
1296
- "create render pipeline async callback info 2": {
1297
1187
  "category": "callback info",
1298
1188
  "members": [
1299
1189
  {"name": "mode", "type": "callback mode"},
1300
- {"name": "callback", "type": "create render pipeline async callback 2"}
1190
+ {"name": "callback", "type": "create render pipeline async callback"}
1301
1191
  ]
1302
1192
  },
1303
1193
  "cull mode": {
@@ -1366,33 +1256,12 @@
1366
1256
  },
1367
1257
  {
1368
1258
  "name": "create compute pipeline async",
1369
- "returns": "void",
1370
- "args": [
1371
- {"name": "descriptor", "type": "compute pipeline descriptor", "annotation": "const*"},
1372
- {"name": "callback", "type": "create compute pipeline async callback"},
1373
- {"name": "userdata", "type": "void *"}
1374
- ]
1375
- },
1376
- {
1377
- "name": "create compute pipeline async f",
1378
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
1379
- "tags": ["dawn", "emscripten"],
1380
1259
  "returns": "future",
1381
1260
  "args": [
1382
1261
  {"name": "descriptor", "type": "compute pipeline descriptor", "annotation": "const*"},
1383
1262
  {"name": "callback info", "type": "create compute pipeline async callback info"}
1384
1263
  ]
1385
1264
  },
1386
- {
1387
- "name": "create compute pipeline async 2",
1388
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
1389
- "tags": ["dawn", "emscripten"],
1390
- "returns": "future",
1391
- "args": [
1392
- {"name": "descriptor", "type": "compute pipeline descriptor", "annotation": "const*"},
1393
- {"name": "callback info", "type": "create compute pipeline async callback info 2"}
1394
- ]
1395
- },
1396
1265
  {
1397
1266
  "name": "create external texture",
1398
1267
  "returns": "external texture",
@@ -1422,33 +1291,12 @@
1422
1291
  },
1423
1292
  {
1424
1293
  "name": "create render pipeline async",
1425
- "returns": "void",
1426
- "args": [
1427
- {"name": "descriptor", "type": "render pipeline descriptor", "annotation": "const*"},
1428
- {"name": "callback", "type": "create render pipeline async callback"},
1429
- {"name": "userdata", "type": "void *"}
1430
- ]
1431
- },
1432
- {
1433
- "name": "create render pipeline async f",
1434
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
1435
- "tags": ["dawn", "emscripten"],
1436
1294
  "returns": "future",
1437
1295
  "args": [
1438
1296
  {"name": "descriptor", "type": "render pipeline descriptor", "annotation": "const*"},
1439
1297
  {"name": "callback info", "type": "create render pipeline async callback info"}
1440
1298
  ]
1441
1299
  },
1442
- {
1443
- "name": "create render pipeline async 2",
1444
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
1445
- "tags": ["dawn", "emscripten"],
1446
- "returns": "future",
1447
- "args": [
1448
- {"name": "descriptor", "type": "render pipeline descriptor", "annotation": "const*"},
1449
- {"name": "callback info", "type": "create render pipeline async callback info 2"}
1450
- ]
1451
- },
1452
1300
  {
1453
1301
  "name": "create render bundle encoder",
1454
1302
  "returns": "render bundle encoder",
@@ -1543,9 +1391,13 @@
1543
1391
  "name": "get limits",
1544
1392
  "returns": "status",
1545
1393
  "args": [
1546
- {"name": "limits", "type": "supported limits", "annotation": "*"}
1394
+ {"name": "limits", "type": "limits", "annotation": "*"}
1547
1395
  ]
1548
1396
  },
1397
+ {
1398
+ "name": "get lost future",
1399
+ "returns": "future"
1400
+ },
1549
1401
  {
1550
1402
  "name": "has feature",
1551
1403
  "returns": "bool",
@@ -1554,10 +1406,17 @@
1554
1406
  ]
1555
1407
  },
1556
1408
  {
1557
- "name": "enumerate features",
1558
- "returns": "size_t",
1409
+ "name": "get features",
1410
+ "returns": "void",
1411
+ "args": [
1412
+ {"name": "features", "type": "supported features", "annotation": "*"}
1413
+ ]
1414
+ },
1415
+ {
1416
+ "name": "get adapter info",
1417
+ "returns": "status",
1559
1418
  "args": [
1560
- {"name": "features", "type": "feature name", "annotation": "*"}
1419
+ {"name": "adapter info", "type": "adapter info", "annotation": "*"}
1561
1420
  ]
1562
1421
  },
1563
1422
  {
@@ -1590,30 +1449,12 @@
1590
1449
  "no autolock": true,
1591
1450
  "tags": ["dawn"]
1592
1451
  },
1593
- {
1594
- "name": "set uncaptured error callback",
1595
- "no autolock": true,
1596
- "args": [
1597
- {"name": "callback", "type": "error callback"},
1598
- {"name": "userdata", "type": "void *"}
1599
- ]
1600
- },
1601
1452
  {
1602
1453
  "name": "set logging callback",
1603
1454
  "no autolock": true,
1604
1455
  "tags": ["dawn"],
1605
1456
  "args": [
1606
- {"name": "callback", "type": "logging callback"},
1607
- {"name": "userdata", "type": "void *"}
1608
- ]
1609
- },
1610
- {
1611
- "name": "set device lost callback",
1612
- "no autolock": true,
1613
- "tags": ["deprecated"],
1614
- "args": [
1615
- {"name": "callback", "type": "device lost callback"},
1616
- {"name": "userdata", "type": "void *"}
1457
+ {"name": "callback info", "type": "logging callback info"}
1617
1458
  ]
1618
1459
  },
1619
1460
  {
@@ -1625,29 +1466,11 @@
1625
1466
  {
1626
1467
  "name": "pop error scope",
1627
1468
  "no autolock": true,
1628
- "args": [
1629
- {"name": "old callback", "type": "error callback"},
1630
- {"name": "userdata", "type": "void *"}
1631
- ]
1632
- },
1633
- {
1634
- "name": "pop error scope f",
1635
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
1636
- "tags": ["dawn", "emscripten"],
1637
1469
  "returns": "future",
1638
1470
  "args": [
1639
1471
  {"name": "callback info", "type": "pop error scope callback info"}
1640
1472
  ]
1641
1473
  },
1642
- {
1643
- "name": "pop error scope 2",
1644
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
1645
- "tags": ["dawn", "emscripten"],
1646
- "returns": "future",
1647
- "args": [
1648
- {"name": "callback info", "type": "pop error scope callback info 2"}
1649
- ]
1650
- },
1651
1474
  {
1652
1475
  "name": "set label",
1653
1476
  "returns": "void",
@@ -1665,23 +1488,6 @@
1665
1488
  ]
1666
1489
  },
1667
1490
  "device lost callback": {
1668
- "category": "function pointer",
1669
- "args": [
1670
- {"name": "reason", "type": "device lost reason"},
1671
- {"name": "message", "type": "string view"},
1672
- {"name": "userdata", "type": "void *"}
1673
- ]
1674
- },
1675
- "device lost callback new": {
1676
- "category": "function pointer",
1677
- "args": [
1678
- {"name": "device", "type": "device", "annotation": "const*", "length": 1},
1679
- {"name": "reason", "type": "device lost reason"},
1680
- {"name": "message", "type": "string view"},
1681
- {"name": "userdata", "type": "void *"}
1682
- ]
1683
- },
1684
- "device lost callback 2": {
1685
1491
  "category": "callback function",
1686
1492
  "args": [
1687
1493
  {"name": "device", "type": "device", "annotation": "const*", "length": 1},
@@ -1690,19 +1496,10 @@
1690
1496
  ]
1691
1497
  },
1692
1498
  "device lost callback info": {
1693
- "category": "structure",
1694
- "extensible": "in",
1695
- "members": [
1696
- {"name": "mode", "type": "callback mode", "default": "wait any only", "_comment": "TODO(crbug.com/dawn/2458) Default should be removed."},
1697
- {"name": "callback", "type": "device lost callback new", "default": "nullptr"},
1698
- {"name": "userdata", "type": "void *", "default": "nullptr"}
1699
- ]
1700
- },
1701
- "device lost callback info 2": {
1702
1499
  "category": "callback info",
1703
1500
  "members": [
1704
1501
  {"name": "mode", "type": "callback mode"},
1705
- {"name": "callback", "type": "device lost callback 2", "default": "nullptr"}
1502
+ {"name": "callback", "type": "device lost callback", "default": "nullptr"}
1706
1503
  ]
1707
1504
  },
1708
1505
  "device lost reason": {
@@ -1712,7 +1509,7 @@
1712
1509
  "values": [
1713
1510
  {"value": 1, "name": "unknown"},
1714
1511
  {"value": 2, "name": "destroyed"},
1715
- {"value": 3, "name": "instance dropped", "emscripten_string_to_int": false},
1512
+ {"value": 3, "name": "callback cancelled", "emscripten_string_to_int": false},
1716
1513
  {"value": 4, "name": "failed creation", "emscripten_string_to_int": false}
1717
1514
  ]
1718
1515
  },
@@ -1720,14 +1517,6 @@
1720
1517
  "category": "native",
1721
1518
  "wasm type": "d"
1722
1519
  },
1723
- "error callback": {
1724
- "category": "function pointer",
1725
- "args": [
1726
- {"name": "type", "type": "error type"},
1727
- {"name": "message", "type": "string view"},
1728
- {"name": "userdata", "type": "void *"}
1729
- ]
1730
- },
1731
1520
  "uncaptured error callback": {
1732
1521
  "category": "callback function",
1733
1522
  "args": [
@@ -1737,14 +1526,6 @@
1737
1526
  ]
1738
1527
  },
1739
1528
  "uncaptured error callback info": {
1740
- "category": "structure",
1741
- "extensible": "in",
1742
- "members": [
1743
- {"name": "callback", "type": "error callback", "default": "nullptr"},
1744
- {"name": "userdata", "type": "void *", "default": "nullptr"}
1745
- ]
1746
- },
1747
- "uncaptured error callback info 2": {
1748
1529
  "category": "callback info",
1749
1530
  "members": [
1750
1531
  {"name": "callback", "type": "uncaptured error callback", "default": "nullptr"}
@@ -1755,19 +1536,11 @@
1755
1536
  "emscripten_no_enum_table": true,
1756
1537
  "values": [
1757
1538
  {"value": 1, "name": "success"},
1758
- {"value": 2, "name": "instance dropped"}
1539
+ {"value": 2, "name": "callback cancelled"},
1540
+ {"value": 3, "name": "error"}
1759
1541
  ]
1760
1542
  },
1761
1543
  "pop error scope callback": {
1762
- "category": "function pointer",
1763
- "args": [
1764
- {"name": "status", "type": "pop error scope status"},
1765
- {"name": "type", "type": "error type"},
1766
- {"name": "message", "type": "string view"},
1767
- {"name": "userdata", "type": "void *"}
1768
- ]
1769
- },
1770
- "pop error scope callback 2": {
1771
1544
  "category": "callback function",
1772
1545
  "args": [
1773
1546
  {"name": "status", "type": "pop error scope status"},
@@ -1776,99 +1549,111 @@
1776
1549
  ]
1777
1550
  },
1778
1551
  "pop error scope callback info": {
1779
- "category": "structure",
1780
- "extensible": "in",
1781
- "members": [
1782
- {"name": "mode", "type": "callback mode", "default": "wait any only"},
1783
- {"name": "callback", "type": "pop error scope callback"},
1784
- {"name": "old callback", "type": "error callback", "_comment": "TODO(crbug.com/dawn/2021) Deprecate this field once we have moved callers to use the new callback signature."},
1785
- {"name": "userdata", "type": "void *", "default": "nullptr"}
1786
- ]
1787
- },
1788
- "pop error scope callback info 2": {
1789
1552
  "category": "callback info",
1790
1553
  "members": [
1791
1554
  {"name": "mode", "type": "callback mode"},
1792
- {"name": "callback", "type": "pop error scope callback 2"}
1555
+ {"name": "callback", "type": "pop error scope callback"}
1793
1556
  ]
1794
1557
  },
1795
1558
  "limits": {
1796
1559
  "category": "structure",
1560
+ "extensible": "out",
1561
+ "_comment": "TODO(crbug.com/374263404): Using 'out' for extensible even though this can be in/out until C++ gen is updated.",
1562
+ "members": [
1563
+ {"name": "max texture dimension 1D", "type": "uint32_t", "default": "limit u32 undefined"},
1564
+ {"name": "max texture dimension 2D", "type": "uint32_t", "default": "limit u32 undefined"},
1565
+ {"name": "max texture dimension 3D", "type": "uint32_t", "default": "limit u32 undefined"},
1566
+ {"name": "max texture array layers", "type": "uint32_t", "default": "limit u32 undefined"},
1567
+ {"name": "max bind groups", "type": "uint32_t", "default": "limit u32 undefined"},
1568
+ {"name": "max bind groups plus vertex buffers", "type": "uint32_t", "default": "limit u32 undefined"},
1569
+ {"name": "max bindings per bind group", "type": "uint32_t", "default": "limit u32 undefined"},
1570
+ {"name": "max dynamic uniform buffers per pipeline layout", "type": "uint32_t", "default": "limit u32 undefined"},
1571
+ {"name": "max dynamic storage buffers per pipeline layout", "type": "uint32_t", "default": "limit u32 undefined"},
1572
+ {"name": "max sampled textures per shader stage", "type": "uint32_t", "default": "limit u32 undefined"},
1573
+ {"name": "max samplers per shader stage", "type": "uint32_t", "default": "limit u32 undefined"},
1574
+ {"name": "max storage buffers per shader stage", "type": "uint32_t", "default": "limit u32 undefined"},
1575
+ {"name": "max storage textures per shader stage", "type": "uint32_t", "default": "limit u32 undefined"},
1576
+ {"name": "max uniform buffers per shader stage", "type": "uint32_t", "default": "limit u32 undefined"},
1577
+ {"name": "max uniform buffer binding size", "type": "uint64_t", "default": "limit u64 undefined"},
1578
+ {"name": "max storage buffer binding size", "type": "uint64_t", "default": "limit u64 undefined"},
1579
+ {"name": "min uniform buffer offset alignment", "type": "uint32_t", "default": "limit u32 undefined"},
1580
+ {"name": "min storage buffer offset alignment", "type": "uint32_t", "default": "limit u32 undefined"},
1581
+ {"name": "max vertex buffers", "type": "uint32_t", "default": "limit u32 undefined"},
1582
+ {"name": "max buffer size", "type": "uint64_t", "default": "limit u64 undefined"},
1583
+ {"name": "max vertex attributes", "type": "uint32_t", "default": "limit u32 undefined"},
1584
+ {"name": "max vertex buffer array stride", "type": "uint32_t", "default": "limit u32 undefined"},
1585
+ {"name": "max inter stage shader variables", "type": "uint32_t", "default": "limit u32 undefined"},
1586
+ {"name": "max color attachments", "type": "uint32_t", "default": "limit u32 undefined"},
1587
+ {"name": "max color attachment bytes per sample", "type": "uint32_t", "default": "limit u32 undefined"},
1588
+ {"name": "max compute workgroup storage size", "type": "uint32_t", "default": "limit u32 undefined"},
1589
+ {"name": "max compute invocations per workgroup", "type": "uint32_t", "default": "limit u32 undefined"},
1590
+ {"name": "max compute workgroup size x", "type": "uint32_t", "default": "limit u32 undefined"},
1591
+ {"name": "max compute workgroup size y", "type": "uint32_t", "default": "limit u32 undefined"},
1592
+ {"name": "max compute workgroup size z", "type": "uint32_t", "default": "limit u32 undefined"},
1593
+ {"name": "max compute workgroups per dimension", "type": "uint32_t", "default": "limit u32 undefined"},
1594
+ {"name": "max immediate size", "type": "uint32_t", "default": "limit u32 undefined"},
1595
+ {"name": "max storage buffers in vertex stage", "type": "uint32_t", "default": "limit u32 undefined"},
1596
+ {"name": "max storage textures in vertex stage", "type": "uint32_t", "default": "limit u32 undefined"},
1597
+ {"name": "max storage buffers in fragment stage", "type": "uint32_t", "default": "limit u32 undefined"},
1598
+ {"name": "max storage textures in fragment stage", "type": "uint32_t", "default": "limit u32 undefined"}
1599
+ ]
1600
+ },
1601
+ "adapter properties subgroups": {
1602
+ "category": "structure",
1603
+ "chained": "out",
1604
+ "chain roots": ["adapter info"],
1797
1605
  "members": [
1798
- {"name": "max texture dimension 1D", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1799
- {"name": "max texture dimension 2D", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1800
- {"name": "max texture dimension 3D", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1801
- {"name": "max texture array layers", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1802
- {"name": "max bind groups", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1803
- {"name": "max bind groups plus vertex buffers", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1804
- {"name": "max bindings per bind group", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1805
- {"name": "max dynamic uniform buffers per pipeline layout", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1806
- {"name": "max dynamic storage buffers per pipeline layout", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1807
- {"name": "max sampled textures per shader stage", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1808
- {"name": "max samplers per shader stage", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1809
- {"name": "max storage buffers per shader stage", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1810
- {"name": "max storage textures per shader stage", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1811
- {"name": "max uniform buffers per shader stage", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1812
- {"name": "max uniform buffer binding size", "type": "uint64_t", "default": "WGPU_LIMIT_U64_UNDEFINED"},
1813
- {"name": "max storage buffer binding size", "type": "uint64_t", "default": "WGPU_LIMIT_U64_UNDEFINED"},
1814
- {"name": "min uniform buffer offset alignment", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1815
- {"name": "min storage buffer offset alignment", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1816
- {"name": "max vertex buffers", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1817
- {"name": "max buffer size", "type": "uint64_t", "default": "WGPU_LIMIT_U64_UNDEFINED"},
1818
- {"name": "max vertex attributes", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1819
- {"name": "max vertex buffer array stride", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1820
- {"name": "max inter stage shader components", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1821
- {"name": "max inter stage shader variables", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1822
- {"name": "max color attachments", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1823
- {"name": "max color attachment bytes per sample", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1824
- {"name": "max compute workgroup storage size", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1825
- {"name": "max compute invocations per workgroup", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1826
- {"name": "max compute workgroup size x", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1827
- {"name": "max compute workgroup size y", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1828
- {"name": "max compute workgroup size z", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1829
- {"name": "max compute workgroups per dimension", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"}
1830
- ]
1831
- },
1832
- "dawn experimental subgroup limits": {
1606
+ {"name": "subgroup min size", "type": "uint32_t", "default": "limit u32 undefined"},
1607
+ {"name": "subgroup max size", "type": "uint32_t", "default": "limit u32 undefined"}
1608
+ ]
1609
+ },
1610
+ "dawn texel copy buffer row alignment limits": {
1833
1611
  "category": "structure",
1834
1612
  "chained": "out",
1835
- "chain roots": ["supported limits"],
1613
+ "chain roots": ["limits"],
1836
1614
  "tags": ["dawn"],
1837
1615
  "members": [
1838
- {"name": "min subgroup size", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"},
1839
- {"name": "max subgroup size", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"}
1616
+ {"name": "min texel copy buffer row alignment", "type": "uint32_t", "default": "limit u32 undefined"}
1840
1617
  ]
1841
1618
  },
1842
- "dawn experimental immediate data limits": {
1619
+ "dawn host mapped pointer limits": {
1843
1620
  "category": "structure",
1844
1621
  "chained": "out",
1845
- "chain roots": ["supported limits"],
1622
+ "chain roots": ["limits"],
1846
1623
  "tags": ["dawn"],
1847
1624
  "members": [
1848
- {"name": "max immediate data range byte size", "type": "uint32_t", "default": "WGPU_LIMIT_U32_UNDEFINED"}
1625
+ {"name": "host mapped pointer alignment", "type": "uint32_t", "default": "limit u32 undefined"}
1849
1626
  ]
1850
1627
  },
1851
- "required limits": {
1628
+ "supported features": {
1852
1629
  "category": "structure",
1853
- "extensible": "in",
1630
+ "out": true,
1854
1631
  "members": [
1855
- {"name": "limits", "type": "limits"}
1632
+ {"name": "feature count", "type": "size_t"},
1633
+ {"name": "features", "type": "feature name", "annotation": "const*", "length": "feature count"}
1856
1634
  ]
1857
1635
  },
1858
- "supported limits": {
1636
+ "supported WGSL language features": {
1859
1637
  "category": "structure",
1860
- "extensible": "out",
1638
+ "out": true,
1861
1639
  "members": [
1862
- {"name": "limits", "type": "limits"}
1640
+ {"name": "feature count", "type": "size_t"},
1641
+ {"name": "features", "type": "WGSL language feature name", "annotation": "const*", "length": "feature count"}
1863
1642
  ]
1864
1643
  },
1865
1644
  "logging callback": {
1866
- "category": "function pointer",
1645
+ "category": "callback function",
1867
1646
  "tags": ["dawn"],
1868
1647
  "args": [
1869
1648
  {"name": "type", "type": "logging type"},
1870
- {"name": "message", "type": "string view"},
1871
- {"name": "userdata", "type": "void *"}
1649
+ {"name": "message", "type": "string view"}
1650
+ ]
1651
+ },
1652
+ "logging callback info": {
1653
+ "category": "callback info",
1654
+ "tags": ["dawn"],
1655
+ "members": [
1656
+ {"name": "callback", "type": "logging callback", "default": "nullptr"}
1872
1657
  ]
1873
1658
  },
1874
1659
  "error filter": {
@@ -1887,8 +1672,7 @@
1887
1672
  {"value": 2, "name": "validation"},
1888
1673
  {"value": 3, "name": "out of memory"},
1889
1674
  {"value": 4, "name": "internal"},
1890
- {"value": 5, "name": "unknown"},
1891
- {"value": 6, "name": "device lost"}
1675
+ {"value": 5, "name": "unknown"}
1892
1676
  ]
1893
1677
  },
1894
1678
  "logging type": {
@@ -1957,13 +1741,13 @@
1957
1741
  "category": "structure",
1958
1742
  "extensible": "in",
1959
1743
  "tags": ["dawn"],
1960
- "_comment": "TODO(crbug.com/1514732): deprecate flipY",
1961
1744
  "members": [
1962
1745
  {"name": "label", "type": "string view", "optional": true},
1963
1746
  {"name": "plane 0", "type": "texture view"},
1964
1747
  {"name": "plane 1", "type": "texture view", "optional": true},
1965
- {"name": "visible origin", "type": "origin 2D"},
1966
- {"name": "visible size", "type": "extent 2D"},
1748
+ {"name": "crop origin", "type": "origin 2D"},
1749
+ {"name": "crop size", "type": "extent 2D"},
1750
+ {"name": "apparent size", "type": "extent 2D"},
1967
1751
  {"name": "do yuv to rgb conversion only", "type": "bool", "default": "false"},
1968
1752
  {"name": "yuv to rgb conversion matrix", "type": "float", "annotation": "const*",
1969
1753
  "length": 12, "optional": true},
@@ -2228,7 +2012,8 @@
2228
2012
  "tags": ["dawn", "native"],
2229
2013
  "_comment": "TODO(crbug.com/dawn/1745): improve type safety",
2230
2014
  "members": [
2231
- {"name": "io surface", "type": "void *"}
2015
+ {"name": "io surface", "type": "void *"},
2016
+ {"name": "allow storage binding", "type": "bool", "default": "true"}
2232
2017
  ]
2233
2018
  },
2234
2019
  "shared texture memory EGL image descriptor": {
@@ -2325,7 +2110,7 @@
2325
2110
  {"name": "handle", "type": "int"}
2326
2111
  ]
2327
2112
  },
2328
- "shared fence vk semaphore sync FD descriptor": {
2113
+ "shared fence sync FD descriptor": {
2329
2114
  "category": "structure",
2330
2115
  "chained": "in",
2331
2116
  "chain roots": ["shared fence descriptor"],
@@ -2362,15 +2147,36 @@
2362
2147
  {"name": "shared event", "type": "void *"}
2363
2148
  ]
2364
2149
  },
2150
+ "shared fence EGL sync descriptor": {
2151
+ "category": "structure",
2152
+ "chained": "in",
2153
+ "chain roots": ["shared fence descriptor"],
2154
+ "tags": ["dawn", "native"],
2155
+ "members": [
2156
+ {"name": "sync", "type": "void *"}
2157
+ ]
2158
+ },
2159
+ "dawn fake buffer OOM for testing": {
2160
+ "category": "structure",
2161
+ "chained": "in",
2162
+ "chain roots": ["buffer descriptor"],
2163
+ "tags": ["dawn"],
2164
+ "members": [
2165
+ {"name": "fake OOM at wire client map", "type": "bool"},
2166
+ {"name": "fake OOM at native map", "type": "bool"},
2167
+ {"name": "fake OOM at device", "type": "bool"}
2168
+ ]
2169
+ },
2365
2170
  "shared fence type": {
2366
2171
  "category": "enum",
2367
2172
  "tags": ["dawn", "native"],
2368
2173
  "values": [
2369
2174
  {"value": 1, "name": "vk semaphore opaque FD"},
2370
- {"value": 2, "name": "vk semaphore sync FD"},
2175
+ {"value": 2, "name": "sync FD"},
2371
2176
  {"value": 3, "name": "vk semaphore zircon handle"},
2372
2177
  {"value": 4, "name": "DXGI shared handle"},
2373
- {"value": 5, "name": "MTL shared event"}
2178
+ {"value": 5, "name": "MTL shared event"},
2179
+ {"value": 6, "name": "EGL sync"}
2374
2180
  ]
2375
2181
  },
2376
2182
  "shared fence export info": {
@@ -2390,7 +2196,7 @@
2390
2196
  {"name": "handle", "type": "int"}
2391
2197
  ]
2392
2198
  },
2393
- "shared fence vk semaphore sync FD export info": {
2199
+ "shared fence sync FD export info": {
2394
2200
  "category": "structure",
2395
2201
  "chained": "out",
2396
2202
  "chain roots": ["shared fence export info"],
@@ -2427,6 +2233,23 @@
2427
2233
  {"name": "shared event", "type": "void *"}
2428
2234
  ]
2429
2235
  },
2236
+ "shared fence EGL sync export info": {
2237
+ "category": "structure",
2238
+ "chained": "out",
2239
+ "chain roots": ["shared fence export info"],
2240
+ "tags": ["dawn", "native"],
2241
+ "members": [
2242
+ {"name": "sync", "type": "void *"}
2243
+ ]
2244
+ },
2245
+ "feature level": {
2246
+ "category": "enum",
2247
+ "values": [
2248
+ {"value": 0, "name": "undefined", "jsrepr": "undefined"},
2249
+ {"value": 1, "name": "compatibility"},
2250
+ {"value": 2, "name": "core"}
2251
+ ]
2252
+ },
2430
2253
  "feature name": {
2431
2254
  "category": "enum",
2432
2255
  "values": [
@@ -2434,76 +2257,80 @@
2434
2257
  {"value": 2, "name": "depth32 float stencil8"},
2435
2258
  {"value": 3, "name": "timestamp query"},
2436
2259
  {"value": 4, "name": "texture compression BC"},
2437
- {"value": 5, "name": "texture compression ETC2"},
2438
- {"value": 6, "name": "texture compression ASTC"},
2439
- {"value": 7, "name": "indirect first instance"},
2440
- {"value": 8, "name": "shader f16"},
2441
- {"value": 9, "name": "RG11B10 ufloat renderable"},
2442
- {"value": 10, "name": "BGRA8 unorm storage"},
2443
- {"value": 11, "name": "float32 filterable", "jsrepr": "'float32-filterable'"},
2444
- {"value": 12, "name": "float32 blendable", "jsrepr": "'float32-blendable'"},
2445
- {"value": 13, "name": "subgroups"},
2446
- {"value": 14, "name": "subgroups f16"},
2260
+ {"value": 5, "name": "texture compression BC sliced 3D"},
2261
+ {"value": 6, "name": "texture compression ETC2"},
2262
+ {"value": 7, "name": "texture compression ASTC"},
2263
+ {"value": 8, "name": "texture compression ASTC sliced 3D"},
2264
+ {"value": 9, "name": "indirect first instance"},
2265
+ {"value": 10, "name": "shader f16"},
2266
+ {"value": 11, "name": "RG11B10 ufloat renderable"},
2267
+ {"value": 12, "name": "BGRA8 unorm storage"},
2268
+ {"value": 13, "name": "float32 filterable", "jsrepr": "'float32-filterable'"},
2269
+ {"value": 14, "name": "float32 blendable", "jsrepr": "'float32-blendable'"},
2270
+ {"value": 15, "name": "clip distances"},
2271
+ {"value": 16, "name": "dual source blending"},
2272
+ {"value": 17, "name": "subgroups"},
2273
+ {"value": 18, "name": "core features and limits", "jsrepr": "'core-features-and-limits'"},
2447
2274
 
2448
2275
  {"value": 0, "name": "dawn internal usages", "tags": ["dawn"]},
2449
2276
  {"value": 1, "name": "dawn multi planar formats", "tags": ["dawn"]},
2450
2277
  {"value": 2, "name": "dawn native", "tags": ["dawn", "native"]},
2451
2278
  {"value": 3, "name": "chromium experimental timestamp query inside passes", "tags": ["dawn"]},
2452
2279
  {"value": 4, "name": "implicit device synchronization", "tags": ["dawn", "native"]},
2453
- {"value": 5, "name": "chromium experimental immediate data", "tags": ["dawn"]},
2454
2280
  {"value": 6, "name": "transient attachments", "tags": ["dawn"]},
2455
2281
  {"value": 7, "name": "MSAA render to single sampled", "tags": ["dawn"]},
2456
- {"value": 8, "name": "dual source blending", "tags": ["dawn"]},
2457
- {"value": 9, "name": "D3D11 multithread protected", "tags": ["dawn", "native"]},
2458
- {"value": 10, "name": "ANGLE texture sharing", "tags": ["dawn", "native"]},
2459
- {"value": 11, "name": "chromium experimental subgroups", "tags": ["dawn"]},
2460
- {"value": 12, "name": "chromium experimental subgroup uniform control flow", "tags": ["dawn"]},
2461
- {"value": 13, "name": "pixel local storage coherent", "tags": ["dawn"]},
2462
- {"value": 14, "name": "pixel local storage non coherent", "tags": ["dawn"]},
2463
- {"value": 15, "name": "unorm16 texture formats", "tags": ["dawn"]},
2464
- {"value": 16, "name": "snorm16 texture formats", "tags": ["dawn"]},
2465
- {"value": 17, "name": "multi planar format extended usages", "tags": ["dawn"]},
2466
- {"value": 18, "name": "multi planar format p010", "tags": ["dawn"]},
2467
- {"value": 19, "name": "host mapped pointer", "tags": ["dawn"]},
2468
- {"value": 20, "name": "multi planar render targets", "tags": ["dawn"]},
2469
- {"value": 21, "name": "multi planar format nv12a", "tags": ["dawn"]},
2470
- {"value": 22, "name": "framebuffer fetch", "tags": ["dawn"]},
2471
- {"value": 23, "name": "buffer map extended usages", "tags": ["dawn"]},
2472
- {"value": 24, "name": "adapter properties memory heaps", "tags": ["dawn"]},
2473
- {"value": 25, "name": "adapter properties D3D", "tags": ["dawn"]},
2474
- {"value": 26, "name": "adapter properties vk", "tags": ["dawn"]},
2475
- {"value": 27, "name": "r8 unorm storage", "tags": ["dawn"]},
2476
- {"value": 28, "name": "format capabilities", "tags": ["dawn"]},
2477
- {"value": 29, "name": "drm format capabilities", "tags": ["dawn"]},
2478
- {"value": 30, "name": "norm16 texture formats", "tags": ["dawn"]},
2479
- {"value": 31, "name": "multi planar format nv16", "tags": ["dawn"]},
2480
- {"value": 32, "name": "multi planar format nv24", "tags": ["dawn"]},
2481
- {"value": 33, "name": "multi planar format p210", "tags": ["dawn"]},
2482
- {"value": 34, "name": "multi planar format p410", "tags": ["dawn"]},
2282
+ {"value": 8, "name": "D3D11 multithread protected", "tags": ["dawn", "native"]},
2283
+ {"value": 9, "name": "ANGLE texture sharing", "tags": ["dawn", "native"]},
2284
+ {"value": 10, "name": "pixel local storage coherent", "tags": ["dawn"]},
2285
+ {"value": 11, "name": "pixel local storage non coherent", "tags": ["dawn"]},
2286
+ {"value": 12, "name": "unorm16 texture formats", "tags": ["dawn", "emscripten"], "jsrepr": "'chromium-experimental-unorm16-texture-formats'"},
2287
+ {"value": 13, "name": "snorm16 texture formats", "tags": ["dawn", "emscripten"], "jsrepr": "'chromium-experimental-snorm16-texture-formats'"},
2288
+ {"value": 14, "name": "multi planar format extended usages", "tags": ["dawn"]},
2289
+ {"value": 15, "name": "multi planar format p010", "tags": ["dawn"]},
2290
+ {"value": 16, "name": "host mapped pointer", "tags": ["dawn"]},
2291
+ {"value": 17, "name": "multi planar render targets", "tags": ["dawn"]},
2292
+ {"value": 18, "name": "multi planar format nv12a", "tags": ["dawn"]},
2293
+ {"value": 19, "name": "framebuffer fetch", "tags": ["dawn"]},
2294
+ {"value": 20, "name": "buffer map extended usages", "tags": ["dawn"]},
2295
+ {"value": 21, "name": "adapter properties memory heaps", "tags": ["dawn"]},
2296
+ {"value": 22, "name": "adapter properties D3D", "tags": ["dawn"]},
2297
+ {"value": 23, "name": "adapter properties vk", "tags": ["dawn"]},
2298
+ {"value": 24, "name": "r8 unorm storage", "tags": ["dawn"]},
2299
+ {"value": 25, "name": "dawn format capabilities", "tags": ["dawn"]},
2300
+ {"value": 26, "name": "dawn drm format capabilities", "tags": ["dawn"]},
2301
+ {"value": 27, "name": "norm16 texture formats", "tags": ["dawn"]},
2302
+ {"value": 28, "name": "multi planar format nv16", "tags": ["dawn"]},
2303
+ {"value": 29, "name": "multi planar format nv24", "tags": ["dawn"]},
2304
+ {"value": 30, "name": "multi planar format p210", "tags": ["dawn"]},
2305
+ {"value": 31, "name": "multi planar format p410", "tags": ["dawn"]},
2483
2306
 
2484
- {"value": 35, "name": "shared texture memory vk dedicated allocation", "tags": ["dawn", "native"]},
2485
- {"value": 36, "name": "shared texture memory a hardware buffer", "tags": ["dawn", "native"]},
2486
- {"value": 37, "name": "shared texture memory dma buf", "tags": ["dawn", "native"]},
2487
- {"value": 38, "name": "shared texture memory opaque FD", "tags": ["dawn", "native"]},
2488
- {"value": 39, "name": "shared texture memory zircon handle", "tags": ["dawn", "native"]},
2489
- {"value": 40, "name": "shared texture memory DXGI shared handle", "tags": ["dawn", "native"]},
2490
- {"value": 41, "name": "shared texture memory D3D11 texture 2D", "tags": ["dawn", "native"]},
2491
- {"value": 42, "name": "shared texture memory IO surface", "tags": ["dawn", "native"]},
2492
- {"value": 43, "name": "shared texture memory EGL image", "tags": ["dawn", "native"]},
2493
- {"value": 44, "name": "shared fence vk semaphore opaque FD", "tags": ["dawn", "native"]},
2494
- {"value": 45, "name": "shared fence vk semaphore sync FD", "tags": ["dawn", "native"]},
2495
- {"value": 46, "name": "shared fence vk semaphore zircon handle", "tags": ["dawn", "native"]},
2496
- {"value": 47, "name": "shared fence DXGI shared handle", "tags": ["dawn", "native"]},
2497
- {"value": 48, "name": "shared fence MTL shared event", "tags": ["dawn", "native"]},
2498
- {"value": 49, "name": "shared buffer memory D3D12 resource", "tags": ["dawn", "native"]},
2499
- {"value": 50, "name": "static samplers", "tags": ["dawn"]},
2500
- {"value": 51, "name": "y cb cr vulkan samplers", "tags": ["dawn"]},
2501
- {"value": 52, "name": "shader module compilation options", "tags": ["dawn"]},
2307
+ {"value": 32, "name": "shared texture memory vk dedicated allocation", "tags": ["dawn", "native"]},
2308
+ {"value": 33, "name": "shared texture memory a hardware buffer", "tags": ["dawn", "native"]},
2309
+ {"value": 34, "name": "shared texture memory dma buf", "tags": ["dawn", "native"]},
2310
+ {"value": 35, "name": "shared texture memory opaque FD", "tags": ["dawn", "native"]},
2311
+ {"value": 36, "name": "shared texture memory zircon handle", "tags": ["dawn", "native"]},
2312
+ {"value": 37, "name": "shared texture memory DXGI shared handle", "tags": ["dawn", "native"]},
2313
+ {"value": 38, "name": "shared texture memory D3D11 texture 2D", "tags": ["dawn", "native"]},
2314
+ {"value": 39, "name": "shared texture memory IO surface", "tags": ["dawn", "native"]},
2315
+ {"value": 40, "name": "shared texture memory EGL image", "tags": ["dawn", "native"]},
2316
+ {"value": 41, "name": "shared fence vk semaphore opaque FD", "tags": ["dawn", "native"]},
2317
+ {"value": 42, "name": "shared fence sync FD", "tags": ["dawn", "native"]},
2318
+ {"value": 43, "name": "shared fence vk semaphore zircon handle", "tags": ["dawn", "native"]},
2319
+ {"value": 44, "name": "shared fence DXGI shared handle", "tags": ["dawn", "native"]},
2320
+ {"value": 45, "name": "shared fence MTL shared event", "tags": ["dawn", "native"]},
2321
+ {"value": 46, "name": "shared buffer memory D3D12 resource", "tags": ["dawn", "native"]},
2322
+ {"value": 47, "name": "static samplers", "tags": ["dawn"]},
2323
+ {"value": 48, "name": "y cb cr vulkan samplers", "tags": ["dawn"]},
2324
+ {"value": 49, "name": "shader module compilation options", "tags": ["dawn"]},
2502
2325
 
2503
- {"value": 53, "name": "dawn load resolve texture", "tags": ["dawn"]},
2504
- {"value": 54, "name": "dawn partial load resolve texture", "tags": ["dawn"]},
2505
- {"value": 55, "name": "multi draw indirect", "tags": ["dawn"]},
2506
- {"value": 56, "name": "clip distances", "tags": ["dawn"]}
2326
+ {"value": 50, "name": "dawn load resolve texture", "tags": ["dawn"]},
2327
+ {"value": 51, "name": "dawn partial load resolve texture", "tags": ["dawn"]},
2328
+ {"value": 52, "name": "multi draw indirect", "tags": ["dawn", "emscripten"], "jsrepr": "'chromium-experimental-multi-draw-indirect'"},
2329
+ {"value": 53, "name": "dawn texel copy buffer row alignment", "tags": ["dawn"]},
2330
+ {"value": 54, "name": "flexible texture views", "tags": ["dawn"]},
2331
+ {"value": 55, "name": "chromium experimental subgroup matrix", "tags": ["dawn"]},
2332
+ {"value": 56, "name": "shared fence EGL sync", "tags": ["dawn", "native"]},
2333
+ {"value": 57, "name": "dawn device allocator control", "tags": ["dawn"]}
2507
2334
  ]
2508
2335
  },
2509
2336
  "filter mode": {
@@ -2518,23 +2345,23 @@
2518
2345
  "category": "native",
2519
2346
  "wasm type": "f"
2520
2347
  },
2521
- "format capabilities": {
2348
+ "dawn format capabilities": {
2522
2349
  "category": "structure",
2523
2350
  "tags": ["dawn"],
2524
2351
  "extensible": "out",
2525
2352
  "members": []
2526
2353
  },
2527
- "drm format capabilities": {
2354
+ "dawn drm format capabilities": {
2528
2355
  "category": "structure",
2529
2356
  "tags": ["dawn"],
2530
2357
  "chained": "out",
2531
- "chain roots": ["format capabilities"],
2358
+ "chain roots": ["dawn format capabilities"],
2532
2359
  "members": [
2533
2360
  {"name": "properties count", "type": "size_t"},
2534
- {"name": "properties", "type": "drm format properties", "annotation": "const*", "length": "properties count"}
2361
+ {"name": "properties", "type": "dawn drm format properties", "annotation": "const*", "length": "properties count"}
2535
2362
  ]
2536
2363
  },
2537
- "drm format properties": {
2364
+ "dawn drm format properties": {
2538
2365
  "category": "structure",
2539
2366
  "tags": ["dawn"],
2540
2367
  "members": [
@@ -2550,14 +2377,22 @@
2550
2377
  {"value": 2, "name": "CW"}
2551
2378
  ]
2552
2379
  },
2553
- "image copy buffer": {
2380
+ "texel copy buffer info": {
2554
2381
  "category": "structure",
2555
2382
  "members": [
2556
- {"name": "layout", "type": "texture data layout"},
2383
+ {"name": "layout", "type": "texel copy buffer layout"},
2557
2384
  {"name": "buffer", "type": "buffer"}
2558
2385
  ]
2559
2386
  },
2560
- "image copy texture": {
2387
+ "texel copy buffer layout": {
2388
+ "category": "structure",
2389
+ "members": [
2390
+ {"name": "offset", "type": "uint64_t", "default": 0},
2391
+ {"name": "bytes per row", "type": "uint32_t", "default": "copy stride undefined"},
2392
+ {"name": "rows per image", "type": "uint32_t", "default": "copy stride undefined"}
2393
+ ]
2394
+ },
2395
+ "texel copy texture info": {
2561
2396
  "category": "structure",
2562
2397
  "members": [
2563
2398
  {"name": "texture", "type": "texture"},
@@ -2609,44 +2444,24 @@
2609
2444
  },
2610
2445
  {
2611
2446
  "name": "request adapter",
2612
- "args": [
2613
- {"name": "options", "type": "request adapter options", "annotation": "const*", "optional": true, "no_default": true},
2614
- {"name": "callback", "type": "request adapter callback"},
2615
- {"name": "userdata", "type": "void *"}
2616
- ]
2617
- },
2618
- {
2619
- "name": "request adapter f",
2620
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
2621
- "tags": ["dawn", "emscripten"],
2622
2447
  "returns": "future",
2623
2448
  "args": [
2624
2449
  {"name": "options", "type": "request adapter options", "annotation": "const*", "optional": true, "no_default": true},
2625
2450
  {"name": "callback info", "type": "request adapter callback info"}
2626
2451
  ]
2627
2452
  },
2628
- {
2629
- "name": "request adapter 2",
2630
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
2631
- "tags": ["dawn", "emscripten"],
2632
- "returns": "future",
2633
- "args": [
2634
- {"name": "options", "type": "request adapter options", "annotation": "const*", "optional": true, "no_default": true},
2635
- {"name": "callback info", "type": "request adapter callback info 2"}
2636
- ]
2637
- },
2638
2453
  {
2639
2454
  "name": "has WGSL language feature",
2640
2455
  "returns": "bool",
2641
2456
  "args": [
2642
- {"name": "feature", "type": "WGSL feature name"}
2457
+ {"name": "feature", "type": "WGSL language feature name"}
2643
2458
  ]
2644
2459
  },
2645
2460
  {
2646
- "name": "enumerate WGSL language features",
2647
- "returns": "size_t",
2461
+ "name": "get WGSL language features",
2462
+ "returns": "status",
2648
2463
  "args": [
2649
- {"name": "features", "type": "WGSL feature name", "annotation": "*"}
2464
+ {"name": "features", "type": "supported WGSL language features", "annotation": "*"}
2650
2465
  ]
2651
2466
  }
2652
2467
  ]
@@ -2673,10 +2488,7 @@
2673
2488
  "values": [
2674
2489
  {"value": 1, "name": "success"},
2675
2490
  {"value": 2, "name": "timed out"},
2676
- {"value": 3, "name": "unsupported timeout"},
2677
- {"value": 4, "name": "unsupported count"},
2678
- {"value": 5, "name": "unsupported mixed sources"},
2679
- {"value": 6, "name": "unknown"}
2491
+ {"value": 3, "name": "error"}
2680
2492
  ]
2681
2493
  },
2682
2494
  "future wait info": {
@@ -2686,9 +2498,10 @@
2686
2498
  {"name": "completed", "type": "bool", "default": "false"}
2687
2499
  ]
2688
2500
  },
2689
- "instance features": {
2501
+ "instance capabilities": {
2690
2502
  "category": "structure",
2691
- "extensible": "in",
2503
+ "extensible": "out",
2504
+ "_comment": "TODO(crbug.com/374263404): Using 'out' for extensible even though this can be in/out until C++ gen is updated.",
2692
2505
  "members": [
2693
2506
  {"name": "timed wait any enable", "type": "bool", "default": "false"},
2694
2507
  {"name": "timed wait any max count", "type": "size_t", "default": "0"}
@@ -2698,14 +2511,14 @@
2698
2511
  "category": "structure",
2699
2512
  "extensible": "in",
2700
2513
  "members": [
2701
- {"name": "features", "type": "instance features"}
2514
+ {"name": "capabilities", "type": "instance capabilities"}
2702
2515
  ]
2703
2516
  },
2704
- "get instance features": {
2517
+ "get instance capabilities": {
2705
2518
  "category": "function",
2706
2519
  "returns": "status",
2707
2520
  "args": [
2708
- {"name": "features", "type": "instance features", "annotation": "*"}
2521
+ {"name": "capabilities", "type": "instance capabilities", "annotation": "*"}
2709
2522
  ]
2710
2523
  },
2711
2524
  "dawn wire WGSL control": {
@@ -2719,9 +2532,18 @@
2719
2532
  {"name": "enable testing", "type": "bool", "default": "false"}
2720
2533
  ]
2721
2534
  },
2535
+ "dawn injected invalid s type": {
2536
+ "category": "structure",
2537
+ "tags": ["dawn"],
2538
+ "chained": "in",
2539
+ "chain roots": [],
2540
+ "members": [
2541
+ {"name": "invalid s type", "type": "s type"}
2542
+ ]
2543
+ },
2722
2544
  "vertex attribute": {
2723
2545
  "category": "structure",
2724
- "extensible": false,
2546
+ "extensible": "in",
2725
2547
  "members": [
2726
2548
  {"name": "format", "type": "vertex format"},
2727
2549
  {"name": "offset", "type": "uint64_t"},
@@ -2730,10 +2552,10 @@
2730
2552
  },
2731
2553
  "vertex buffer layout": {
2732
2554
  "category": "structure",
2733
- "extensible": false,
2555
+ "extensible": "in",
2734
2556
  "members": [
2557
+ {"name": "step mode", "type": "vertex step mode"},
2735
2558
  {"name": "array stride", "type": "uint64_t"},
2736
- {"name": "step mode", "type": "vertex step mode", "default": "vertex"},
2737
2559
  {"name": "attribute count", "type": "size_t"},
2738
2560
  {"name": "attributes", "type": "vertex attribute", "annotation": "const*", "length": "attribute count"}
2739
2561
  ]
@@ -2742,9 +2564,8 @@
2742
2564
  "category": "enum",
2743
2565
  "values": [
2744
2566
  {"value": 0, "name": "undefined", "jsrepr": "undefined"},
2745
- {"value": 1, "name": "vertex buffer not used"},
2746
- {"value": 2, "name": "vertex"},
2747
- {"value": 3, "name": "instance"}
2567
+ {"value": 1, "name": "vertex"},
2568
+ {"value": 2, "name": "instance"}
2748
2569
  ]
2749
2570
  },
2750
2571
  "load op": {
@@ -2796,6 +2617,15 @@
2796
2617
  {"name": "y", "type": "uint32_t", "default": "0"}
2797
2618
  ]
2798
2619
  },
2620
+ "pass timestamp writes": {
2621
+ "category": "structure",
2622
+ "extensible": "in",
2623
+ "members": [
2624
+ {"name": "query set", "type": "query set"},
2625
+ {"name": "beginning of pass write index", "type": "uint32_t", "default": "query set index undefined"},
2626
+ {"name": "end of pass write index", "type": "uint32_t", "default": "query set index undefined"}
2627
+ ]
2628
+ },
2799
2629
  "pipeline layout": {
2800
2630
  "category": "object",
2801
2631
  "methods": [
@@ -2814,8 +2644,8 @@
2814
2644
  "members": [
2815
2645
  {"name": "label", "type": "string view", "optional": true},
2816
2646
  {"name": "bind group layout count", "type": "size_t"},
2817
- {"name": "bind group layouts", "type": "bind group layout", "annotation": "const*", "length": "bind group layout count"},
2818
- {"name": "immediate data range byte size", "type": "uint32_t", "default": 0}
2647
+ {"name": "bind group layouts", "type": "bind group layout", "annotation": "const*", "length": "bind group layout count", "optional": true},
2648
+ {"name": "immediate size", "type": "uint32_t", "default": 0}
2819
2649
  ]
2820
2650
  },
2821
2651
  "pipeline layout pixel local storage": {
@@ -2850,13 +2680,14 @@
2850
2680
  "category": "enum",
2851
2681
  "emscripten_no_enum_table": true,
2852
2682
  "values": [
2683
+ {"value": 0, "name": "undefined"},
2853
2684
  {"value": 1, "name": "fifo"},
2854
2685
  {"value": 2, "name": "fifo relaxed"},
2855
2686
  {"value": 3, "name": "immediate"},
2856
2687
  {"value": 4, "name": "mailbox"}
2857
2688
  ]
2858
2689
  },
2859
- "programmable stage descriptor": {
2690
+ "compute state": {
2860
2691
  "category": "structure",
2861
2692
  "extensible": "in",
2862
2693
  "members": [
@@ -2928,30 +2759,11 @@
2928
2759
  },
2929
2760
  {
2930
2761
  "name": "on submitted work done",
2931
- "tags": ["dawn", "upstream"],
2932
- "args": [
2933
- {"name": "callback", "type": "queue work done callback"},
2934
- {"name": "userdata", "type": "void *"}
2935
- ]
2936
- },
2937
- {
2938
- "name": "on submitted work done f",
2939
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
2940
- "tags": ["dawn", "emscripten"],
2941
2762
  "returns": "future",
2942
2763
  "args": [
2943
2764
  {"name": "callback info", "type": "queue work done callback info"}
2944
2765
  ]
2945
2766
  },
2946
- {
2947
- "name": "on submitted work done 2",
2948
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
2949
- "tags": ["dawn", "emscripten"],
2950
- "returns": "future",
2951
- "args": [
2952
- {"name": "callback info", "type": "queue work done callback info 2"}
2953
- ]
2954
- },
2955
2767
  {
2956
2768
  "name": "write buffer",
2957
2769
  "args": [
@@ -2964,10 +2776,10 @@
2964
2776
  {
2965
2777
  "name": "write texture",
2966
2778
  "args": [
2967
- {"name": "destination", "type": "image copy texture", "annotation": "const*"},
2779
+ {"name": "destination", "type": "texel copy texture info", "annotation": "const*"},
2968
2780
  {"name": "data", "type": "void", "annotation": "const*", "length": "data size"},
2969
2781
  {"name": "data size", "type": "size_t"},
2970
- {"name": "data layout", "type": "texture data layout", "annotation": "const*"},
2782
+ {"name": "data layout", "type": "texel copy buffer layout", "annotation": "const*"},
2971
2783
  {"name": "write size", "type": "extent 3D", "annotation": "const*"}
2972
2784
  ]
2973
2785
  },
@@ -2976,8 +2788,8 @@
2976
2788
  "extensible": "in",
2977
2789
  "tags": ["dawn"],
2978
2790
  "args": [
2979
- {"name": "source", "type": "image copy texture", "annotation": "const*"},
2980
- {"name": "destination", "type": "image copy texture", "annotation": "const*"},
2791
+ {"name": "source", "type": "texel copy texture info", "annotation": "const*"},
2792
+ {"name": "destination", "type": "texel copy texture info", "annotation": "const*"},
2981
2793
  {"name": "copy size", "type": "extent 3D", "annotation": "const*"},
2982
2794
  {"name": "options", "type": "copy texture for browser options", "annotation": "const*"}
2983
2795
  ]
@@ -2988,7 +2800,7 @@
2988
2800
  "tags": ["dawn"],
2989
2801
  "args": [
2990
2802
  {"name": "source", "type": "image copy external texture", "annotation": "const*"},
2991
- {"name": "destination", "type": "image copy texture", "annotation": "const*"},
2803
+ {"name": "destination", "type": "texel copy texture info", "annotation": "const*"},
2992
2804
  {"name": "copy size", "type": "extent 3D", "annotation": "const*"},
2993
2805
  {"name": "options", "type": "copy texture for browser options", "annotation": "const*"}
2994
2806
  ]
@@ -3010,32 +2822,16 @@
3010
2822
  ]
3011
2823
  },
3012
2824
  "queue work done callback": {
3013
- "category": "function pointer",
3014
- "args": [
3015
- {"name": "status", "type": "queue work done status"},
3016
- {"name": "userdata", "type": "void *"}
3017
- ]
3018
- },
3019
- "queue work done callback 2": {
3020
2825
  "category": "callback function",
3021
2826
  "args": [
3022
2827
  {"name": "status", "type": "queue work done status"}
3023
2828
  ]
3024
2829
  },
3025
2830
  "queue work done callback info": {
3026
- "category": "structure",
3027
- "extensible": "in",
3028
- "members": [
3029
- {"name": "mode", "type": "callback mode"},
3030
- {"name": "callback", "type": "queue work done callback"},
3031
- {"name": "userdata", "type": "void *"}
3032
- ]
3033
- },
3034
- "queue work done callback info 2": {
3035
2831
  "category": "callback info",
3036
2832
  "members": [
3037
2833
  {"name": "mode", "type": "callback mode"},
3038
- {"name": "callback", "type": "queue work done callback 2"}
2834
+ {"name": "callback", "type": "queue work done callback"}
3039
2835
  ]
3040
2836
  },
3041
2837
  "queue work done status": {
@@ -3043,10 +2839,8 @@
3043
2839
  "emscripten_no_enum_table": true,
3044
2840
  "values": [
3045
2841
  {"value": 1, "name": "success"},
3046
- {"value": 2, "name": "instance dropped"},
3047
- {"value": 3, "name": "error"},
3048
- {"value": 4, "name": "unknown"},
3049
- {"value": 5, "name": "device lost"}
2842
+ {"value": 2, "name": "callback cancelled"},
2843
+ {"value": 3, "name": "error"}
3050
2844
  ]
3051
2845
  },
3052
2846
 
@@ -3137,7 +2931,7 @@
3137
2931
  {"name": "slot", "type": "uint32_t"},
3138
2932
  {"name": "buffer", "type": "buffer", "optional": true},
3139
2933
  {"name": "offset", "type": "uint64_t", "default": "0"},
3140
- {"name": "size", "type": "uint64_t", "default": "WGPU_WHOLE_SIZE"}
2934
+ {"name": "size", "type": "uint64_t", "default": "whole size"}
3141
2935
  ]
3142
2936
  },
3143
2937
  {
@@ -3146,7 +2940,7 @@
3146
2940
  {"name": "buffer", "type": "buffer"},
3147
2941
  {"name": "format", "type": "index format"},
3148
2942
  {"name": "offset", "type": "uint64_t", "default": "0"},
3149
- {"name": "size", "type": "uint64_t", "default": "WGPU_WHOLE_SIZE"}
2943
+ {"name": "size", "type": "uint64_t", "default": "whole size"}
3150
2944
  ]
3151
2945
  },
3152
2946
  {
@@ -3162,6 +2956,15 @@
3162
2956
  "args": [
3163
2957
  {"name": "label", "type": "string view"}
3164
2958
  ]
2959
+ },
2960
+ {
2961
+ "name": "set immediate data",
2962
+ "tags": ["dawn"],
2963
+ "args": [
2964
+ {"name": "offset", "type": "uint32_t"},
2965
+ {"name": "data", "type": "void", "annotation": "const*", "length": "size"},
2966
+ {"name": "size", "type": "size_t"}
2967
+ ]
3165
2968
  }
3166
2969
  ]
3167
2970
  },
@@ -3181,7 +2984,7 @@
3181
2984
  {"name": "label", "type": "string view", "optional": true},
3182
2985
  {"name": "color format count", "type": "size_t"},
3183
2986
  {"name": "color formats", "type": "texture format", "annotation": "const*", "length": "color format count"},
3184
- {"name": "depth stencil format", "type": "texture format", "default": "undefined"},
2987
+ {"name": "depth stencil format", "type": "texture format"},
3185
2988
  {"name": "sample count", "type": "uint32_t", "default": "1"},
3186
2989
  {"name": "depth read only", "type": "bool", "default": "false"},
3187
2990
  {"name": "stencil read only", "type": "bool", "default": "false"}
@@ -3193,7 +2996,7 @@
3193
2996
  "extensible": "in",
3194
2997
  "members": [
3195
2998
  {"name": "view", "type": "texture view", "optional": true},
3196
- {"name": "depth slice", "type": "uint32_t", "default": "WGPU_DEPTH_SLICE_UNDEFINED"},
2999
+ {"name": "depth slice", "type": "uint32_t", "default": "depth slice undefined"},
3197
3000
  {"name": "resolve target", "type": "texture view", "optional": true},
3198
3001
  {"name": "load op", "type": "load op"},
3199
3002
  {"name": "store op", "type": "store op"},
@@ -3211,14 +3014,15 @@
3211
3014
  },
3212
3015
  "render pass depth stencil attachment": {
3213
3016
  "category": "structure",
3017
+ "extensible": "in",
3214
3018
  "members": [
3215
3019
  {"name": "view", "type": "texture view"},
3216
- {"name": "depth load op", "type": "load op", "default": "undefined"},
3217
- {"name": "depth store op", "type": "store op", "default": "undefined"},
3218
- {"name": "depth clear value", "type": "float", "default": "NAN"},
3020
+ {"name": "depth load op", "type": "load op"},
3021
+ {"name": "depth store op", "type": "store op"},
3022
+ {"name": "depth clear value", "type": "float", "default": "depth clear value undefined"},
3219
3023
  {"name": "depth read only", "type": "bool", "default": "false"},
3220
- {"name": "stencil load op", "type": "load op", "default": "undefined"},
3221
- {"name": "stencil store op", "type": "store op", "default": "undefined"},
3024
+ {"name": "stencil load op", "type": "load op"},
3025
+ {"name": "stencil store op", "type": "store op"},
3222
3026
  {"name": "stencil clear value", "type": "uint32_t", "default": "0"},
3223
3027
  {"name": "stencil read only", "type": "bool", "default": "false"}
3224
3028
  ]
@@ -3233,7 +3037,7 @@
3233
3037
  {"name": "color attachments", "type": "render pass color attachment", "annotation": "const*", "length": "color attachment count"},
3234
3038
  {"name": "depth stencil attachment", "type": "render pass depth stencil attachment", "annotation": "const*", "optional": true},
3235
3039
  {"name": "occlusion query set", "type": "query set", "optional": true},
3236
- {"name": "timestamp writes", "type": "render pass timestamp writes", "annotation": "const*", "optional": true}
3040
+ {"name": "timestamp writes", "type": "pass timestamp writes", "annotation": "const*", "optional": true}
3237
3041
  ]
3238
3042
  },
3239
3043
  "render pass descriptor max draw count": {
@@ -3260,6 +3064,20 @@
3260
3064
  {"name": "height", "type": "uint32_t"}
3261
3065
  ]
3262
3066
  },
3067
+ "render pass descriptor resolve rect": {
3068
+ "category": "structure",
3069
+ "tags": ["dawn"],
3070
+ "chained": "in",
3071
+ "chain roots": ["render pass descriptor"],
3072
+ "members": [
3073
+ {"name": "colorOffsetX", "type": "uint32_t"},
3074
+ {"name": "colorOffsetY", "type": "uint32_t"},
3075
+ {"name": "resolveOffsetX", "type": "uint32_t"},
3076
+ {"name": "resolveOffsetY", "type": "uint32_t"},
3077
+ {"name": "width", "type": "uint32_t"},
3078
+ {"name": "height", "type": "uint32_t"}
3079
+ ]
3080
+ },
3263
3081
  "render pass pixel local storage": {
3264
3082
  "category": "structure",
3265
3083
  "tags": ["dawn"],
@@ -3417,7 +3235,7 @@
3417
3235
  {"name": "slot", "type": "uint32_t"},
3418
3236
  {"name": "buffer", "type": "buffer", "optional": true},
3419
3237
  {"name": "offset", "type": "uint64_t", "default": "0"},
3420
- {"name": "size", "type": "uint64_t", "default": "WGPU_WHOLE_SIZE"}
3238
+ {"name": "size", "type": "uint64_t", "default": "whole size"}
3421
3239
  ]
3422
3240
  },
3423
3241
  {
@@ -3426,7 +3244,7 @@
3426
3244
  {"name": "buffer", "type": "buffer"},
3427
3245
  {"name": "format", "type": "index format"},
3428
3246
  {"name": "offset", "type": "uint64_t", "default": "0"},
3429
- {"name": "size", "type": "uint64_t", "default": "WGPU_WHOLE_SIZE"}
3247
+ {"name": "size", "type": "uint64_t", "default": "whole size"}
3430
3248
  ]
3431
3249
  },
3432
3250
  {
@@ -3459,17 +3277,18 @@
3459
3277
  "args": [
3460
3278
  {"name": "label", "type": "string view"}
3461
3279
  ]
3280
+ },
3281
+ {
3282
+ "name": "set immediate data",
3283
+ "tags": ["dawn"],
3284
+ "args": [
3285
+ {"name": "offset", "type": "uint32_t"},
3286
+ {"name": "data", "type": "void", "annotation": "const*", "length": "size"},
3287
+ {"name": "size", "type": "size_t"}
3288
+ ]
3462
3289
  }
3463
3290
  ]
3464
3291
  },
3465
- "render pass timestamp writes": {
3466
- "category": "structure",
3467
- "members": [
3468
- {"name": "query set", "type": "query set"},
3469
- {"name": "beginning of pass write index", "type": "uint32_t", "default": "WGPU_QUERY_SET_INDEX_UNDEFINED"},
3470
- {"name": "end of pass write index", "type": "uint32_t", "default": "WGPU_QUERY_SET_INDEX_UNDEFINED"}
3471
- ]
3472
- },
3473
3292
  "render pipeline": {
3474
3293
  "category": "object",
3475
3294
  "methods": [
@@ -3491,16 +3310,6 @@
3491
3310
  },
3492
3311
 
3493
3312
  "request device callback": {
3494
- "category": "function pointer",
3495
- "_comment": "crbug.com/1234617: Revisit optional status of device once requestDevice can return lost devices",
3496
- "args": [
3497
- {"name": "status", "type": "request device status"},
3498
- {"name": "device", "type": "device", "optional": true},
3499
- {"name": "message", "type": "string view"},
3500
- {"name": "userdata", "type": "void *"}
3501
- ]
3502
- },
3503
- "request device callback 2": {
3504
3313
  "category": "callback function",
3505
3314
  "_comment": "crbug.com/1234617: Revisit optional status of device once requestDevice can return lost devices",
3506
3315
  "args": [
@@ -3510,19 +3319,10 @@
3510
3319
  ]
3511
3320
  },
3512
3321
  "request device callback info": {
3513
- "category": "structure",
3514
- "extensible": "in",
3515
- "members": [
3516
- {"name": "mode", "type": "callback mode"},
3517
- {"name": "callback", "type": "request device callback"},
3518
- {"name": "userdata", "type": "void *"}
3519
- ]
3520
- },
3521
- "request device callback info 2": {
3522
3322
  "category": "callback info",
3523
3323
  "members": [
3524
3324
  {"name": "mode", "type": "callback mode"},
3525
- {"name": "callback", "type": "request device callback 2"}
3325
+ {"name": "callback", "type": "request device callback"}
3526
3326
  ]
3527
3327
  },
3528
3328
 
@@ -3531,9 +3331,8 @@
3531
3331
  "emscripten_no_enum_table": true,
3532
3332
  "values": [
3533
3333
  {"value": 1, "name": "success"},
3534
- {"value": 2, "name": "instance dropped"},
3535
- {"value": 3, "name": "error"},
3536
- {"value": 4, "name": "unknown"}
3334
+ {"value": 2, "name": "callback cancelled"},
3335
+ {"value": 3, "name": "error"}
3537
3336
  ]
3538
3337
  },
3539
3338
 
@@ -3555,7 +3354,7 @@
3555
3354
  "extensible": "in",
3556
3355
  "members": [
3557
3356
  {"name": "topology", "type": "primitive topology", "default": "triangle list"},
3558
- {"name": "strip index format", "type": "index format", "default": "undefined"},
3357
+ {"name": "strip index format", "type": "index format"},
3559
3358
  {"name": "front face", "type": "front face", "default": "CCW"},
3560
3359
  {"name": "cull mode", "type": "cull mode", "default": "none"},
3561
3360
  {"name": "unclipped depth", "type": "bool", "default": "false"}
@@ -3567,8 +3366,8 @@
3567
3366
  "extensible": "in",
3568
3367
  "members": [
3569
3368
  {"name": "format", "type": "texture format"},
3570
- {"name": "depth write enabled", "type": "optional bool", "default": "undefined"},
3571
- {"name": "depth compare", "type": "compare function", "default": "undefined"},
3369
+ {"name": "depth write enabled", "type": "optional bool"},
3370
+ {"name": "depth compare", "type": "compare function"},
3572
3371
  {"name": "stencil front", "type": "stencil face state"},
3573
3372
  {"name": "stencil back", "type": "stencil face state"},
3574
3373
  {"name": "stencil read mask", "type": "uint32_t", "default": "0xFFFFFFFF"},
@@ -3667,7 +3466,7 @@
3667
3466
  {"name": "mipmap filter", "type": "mipmap filter mode", "default": "nearest"},
3668
3467
  {"name": "lod min clamp", "type": "float", "default": "0.0f"},
3669
3468
  {"name": "lod max clamp", "type": "float", "default": "32.0f"},
3670
- {"name": "compare", "type": "compare function", "default": "undefined"},
3469
+ {"name": "compare", "type": "compare function"},
3671
3470
  {"name": "max anisotropy", "type": "uint16_t", "default": "1"}
3672
3471
  ]
3673
3472
  },
@@ -3676,29 +3475,11 @@
3676
3475
  "methods": [
3677
3476
  {
3678
3477
  "name": "get compilation info",
3679
- "args": [
3680
- {"name": "callback", "type": "compilation info callback"},
3681
- {"name": "userdata", "type": "void *"}
3682
- ]
3683
- },
3684
- {
3685
- "name": "get compilation info f",
3686
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
3687
- "tags": ["dawn", "emscripten"],
3688
3478
  "returns": "future",
3689
3479
  "args": [
3690
3480
  {"name": "callback info", "type": "compilation info callback info"}
3691
3481
  ]
3692
3482
  },
3693
- {
3694
- "name": "get compilation info 2",
3695
- "_comment": "TODO(crbug.com/dawn/2021): This is dawn/emscripten-only until we rename it to replace the old API. See bug for details.",
3696
- "tags": ["dawn", "emscripten"],
3697
- "returns": "future",
3698
- "args": [
3699
- {"name": "callback info", "type": "compilation info callback info 2"}
3700
- ]
3701
- },
3702
3483
  {
3703
3484
  "name": "set label",
3704
3485
  "returns": "void",
@@ -3857,12 +3638,7 @@
3857
3638
  {"name": "window", "type": "void *"}
3858
3639
  ]
3859
3640
  },
3860
- "surface descriptor from canvas HTML selector": {
3861
- "category": "typedef",
3862
- "type": "surface source canvas HTML selector _Emscripten",
3863
- "tags": ["emscripten"]
3864
- },
3865
- "surface source canvas HTML selector _Emscripten": {
3641
+ "emscripten surface source canvas HTML selector": {
3866
3642
  "category": "structure",
3867
3643
  "chained": "in",
3868
3644
  "chain roots": ["surface descriptor"],
@@ -3954,7 +3730,16 @@
3954
3730
  {"name": "core window", "type": "void", "annotation": "*"}
3955
3731
  ]
3956
3732
  },
3957
- "surface descriptor from windows swap chain panel": {
3733
+ "surface descriptor from windows UWP swap chain panel": {
3734
+ "category": "structure",
3735
+ "chained": "in",
3736
+ "chain roots": ["surface descriptor"],
3737
+ "tags": ["dawn"],
3738
+ "members": [
3739
+ {"name": "swap chain panel", "type": "void", "annotation": "*"}
3740
+ ]
3741
+ },
3742
+ "surface descriptor from windows WinUI swap chain panel": {
3958
3743
  "category": "structure",
3959
3744
  "chained": "in",
3960
3745
  "chain roots": ["surface descriptor"],
@@ -3963,11 +3748,37 @@
3963
3748
  {"name": "swap chain panel", "type": "void", "annotation": "*"}
3964
3749
  ]
3965
3750
  },
3751
+ "surface color management": {
3752
+ "category": "structure",
3753
+ "chained": "in",
3754
+ "chain roots": ["surface descriptor"],
3755
+ "tags": ["upstream", "emscripten"],
3756
+ "members": [
3757
+ {"name": "color space", "type": "predefined color space"},
3758
+ {"name": "tone mapping mode", "type": "tone mapping mode"}
3759
+ ]
3760
+ },
3761
+ "predefined color space": {
3762
+ "category": "enum",
3763
+ "tags": ["upstream", "emscripten"],
3764
+ "values": [
3765
+ {"value": 1, "name": "sRGB"},
3766
+ {"value": 2, "name": "display p3"}
3767
+ ]
3768
+ },
3769
+ "tone mapping mode": {
3770
+ "category": "enum",
3771
+ "tags": ["upstream", "emscripten"],
3772
+ "values": [
3773
+ {"value": 1, "name": "standard"},
3774
+ {"value": 2, "name": "extended"}
3775
+ ]
3776
+ },
3966
3777
  "surface texture": {
3967
3778
  "category": "structure",
3779
+ "extensible": "out",
3968
3780
  "members": [
3969
3781
  {"name": "texture", "type": "texture"},
3970
- {"name": "suboptimal", "type": "bool"},
3971
3782
  {"name": "status", "type": "surface get current texture status"}
3972
3783
  ]
3973
3784
  },
@@ -3984,15 +3795,18 @@
3984
3795
  {"value": 7, "name": "surface source wayland surface"},
3985
3796
  {"value": 8, "name": "surface source android native window"},
3986
3797
  {"value": 9, "name": "surface source XCB window"},
3798
+ {"value": 10, "name": "surface color management", "tags": ["upstream", "emscripten"]},
3799
+ {"value": 11, "name": "request adapter WebXR options", "tags": ["upstream", "emscripten"]},
3800
+ {"value": 12, "name": "adapter properties subgroups"},
3987
3801
 
3988
3802
  {"value": 0, "name": "texture binding view dimension descriptor", "tags": ["compat"]},
3989
3803
 
3990
- {"value": 0, "name": "surface source canvas HTML selector _Emscripten", "tags": ["emscripten"]},
3804
+ {"value": 0, "name": "emscripten surface source canvas HTML selector", "tags": ["emscripten"]},
3991
3805
 
3992
3806
  {"value": 0, "name": "surface descriptor from windows core window", "tags": ["dawn"]},
3993
3807
  {"value": 1, "name": "external texture binding entry", "tags": ["dawn"]},
3994
3808
  {"value": 2, "name": "external texture binding layout", "tags": ["dawn"]},
3995
- {"value": 3, "name": "surface descriptor from windows swap chain panel", "tags": ["dawn"]},
3809
+ {"value": 3, "name": "surface descriptor from windows UWP swap chain panel", "tags": ["dawn"]},
3996
3810
  {"value": 4, "name": "dawn texture internal usage descriptor", "tags": ["dawn"]},
3997
3811
  {"value": 5, "name": "dawn encoder internal usage descriptor", "tags": ["dawn"]},
3998
3812
  {"value": 6, "name": "dawn instance descriptor", "tags": ["dawn", "native"]},
@@ -4008,49 +3822,57 @@
4008
3822
  {"value": 16, "name": "render pass pixel local storage", "tags": ["dawn"]},
4009
3823
  {"value": 17, "name": "pipeline layout pixel local storage", "tags": ["dawn"]},
4010
3824
  {"value": 18, "name": "buffer host mapped pointer", "tags": ["dawn"]},
4011
- {"value": 19, "name": "dawn experimental subgroup limits", "tags": ["dawn"]},
4012
- {"value": 20, "name": "adapter properties memory heaps", "tags": ["dawn"]},
4013
- {"value": 21, "name": "adapter properties D3D", "tags": ["dawn"]},
4014
- {"value": 22, "name": "adapter properties vk", "tags": ["dawn"]},
4015
- {"value": 23, "name": "dawn compute pipeline full subgroups", "tags": ["dawn"]},
4016
- {"value": 24, "name": "dawn wire WGSL control", "tags": ["dawn"]},
4017
- {"value": 25, "name": "dawn WGSL blocklist", "tags": ["dawn", "native"]},
4018
- {"value": 26, "name": "drm format capabilities", "tags": ["dawn"]},
4019
- {"value": 27, "name": "shader module compilation options", "tags": ["dawn"]},
4020
- {"value": 28, "name": "color target state expand resolve texture dawn", "tags": ["dawn"]},
4021
- {"value": 29, "name": "render pass descriptor expand resolve rect", "tags": ["dawn"]},
4022
-
4023
- {"value": 30, "name": "shared texture memory vk dedicated allocation descriptor", "tags": ["dawn", "native"]},
4024
- {"value": 31, "name": "shared texture memory a hardware buffer descriptor", "tags": ["dawn", "native"]},
4025
- {"value": 32, "name": "shared texture memory dma buf descriptor", "tags": ["dawn", "native"]},
4026
- {"value": 33, "name": "shared texture memory opaque FD descriptor", "tags": ["dawn", "native"]},
4027
- {"value": 34, "name": "shared texture memory zircon handle descriptor", "tags": ["dawn", "native"]},
4028
- {"value": 35, "name": "shared texture memory DXGI shared handle descriptor", "tags": ["dawn", "native"]},
4029
- {"value": 36, "name": "shared texture memory D3D11 texture 2D descriptor", "tags": ["dawn", "native"]},
4030
- {"value": 37, "name": "shared texture memory IO surface descriptor", "tags": ["dawn", "native"]},
4031
- {"value": 38, "name": "shared texture memory EGL image descriptor", "tags": ["dawn", "native"]},
4032
- {"value": 39, "name": "shared texture memory initialized begin state", "tags": ["dawn", "native"]},
4033
- {"value": 40, "name": "shared texture memory initialized end state", "tags": ["dawn", "native"]},
4034
- {"value": 41, "name": "shared texture memory vk image layout begin state", "tags": ["dawn", "native"]},
4035
- {"value": 42, "name": "shared texture memory vk image layout end state", "tags": ["dawn", "native"]},
4036
- {"value": 43, "name": "shared texture memory D3D swapchain begin state", "tags": ["dawn", "native"]},
4037
- {"value": 44, "name": "shared fence vk semaphore opaque FD descriptor", "tags": ["dawn", "native"]},
4038
- {"value": 45, "name": "shared fence vk semaphore opaque FD export info", "tags": ["dawn", "native"]},
4039
- {"value": 46, "name": "shared fence vk semaphore sync FD descriptor", "tags": ["dawn", "native"]},
4040
- {"value": 47, "name": "shared fence vk semaphore sync FD export info", "tags": ["dawn", "native"]},
4041
- {"value": 48, "name": "shared fence vk semaphore zircon handle descriptor", "tags": ["dawn", "native"]},
4042
- {"value": 49, "name": "shared fence vk semaphore zircon handle export info", "tags": ["dawn", "native"]},
4043
- {"value": 50, "name": "shared fence DXGI shared handle descriptor", "tags": ["dawn", "native"]},
4044
- {"value": 51, "name": "shared fence DXGI shared handle export info", "tags": ["dawn", "native"]},
4045
- {"value": 52, "name": "shared fence MTL shared event descriptor", "tags": ["dawn", "native"]},
4046
- {"value": 53, "name": "shared fence MTL shared event export info", "tags": ["dawn", "native"]},
4047
- {"value": 54, "name": "shared buffer memory D3D12 resource descriptor", "tags": ["dawn", "native"]},
4048
- {"value": 55, "name": "static sampler binding layout", "tags": ["dawn"]},
4049
- {"value": 56, "name": "y cb cr vk descriptor", "tags": ["dawn"]},
4050
- {"value": 57, "name": "shared texture memory a hardware buffer properties", "tags": ["dawn", "native"]},
4051
- {"value": 58, "name": "a hardware buffer properties", "tags": ["dawn", "native"]},
4052
- {"value": 59, "name": "dawn experimental immediate data limits", "tags": ["dawn"]}
3825
+ {"value": 19, "name": "adapter properties memory heaps", "tags": ["dawn"]},
3826
+ {"value": 20, "name": "adapter properties D3D", "tags": ["dawn"]},
3827
+ {"value": 21, "name": "adapter properties vk", "tags": ["dawn"]},
3828
+ {"value": 22, "name": "dawn wire WGSL control", "tags": ["dawn"]},
3829
+ {"value": 23, "name": "dawn WGSL blocklist", "tags": ["dawn", "native"]},
3830
+ {"value": 24, "name": "dawn drm format capabilities", "tags": ["dawn"]},
3831
+ {"value": 25, "name": "shader module compilation options", "tags": ["dawn"]},
3832
+ {"value": 26, "name": "color target state expand resolve texture dawn", "tags": ["dawn"]},
3833
+ {"value": 27, "name": "render pass descriptor expand resolve rect", "tags": ["dawn"]},
4053
3834
 
3835
+ {"value": 28, "name": "shared texture memory vk dedicated allocation descriptor", "tags": ["dawn", "native"]},
3836
+ {"value": 29, "name": "shared texture memory a hardware buffer descriptor", "tags": ["dawn", "native"]},
3837
+ {"value": 30, "name": "shared texture memory dma buf descriptor", "tags": ["dawn", "native"]},
3838
+ {"value": 31, "name": "shared texture memory opaque FD descriptor", "tags": ["dawn", "native"]},
3839
+ {"value": 32, "name": "shared texture memory zircon handle descriptor", "tags": ["dawn", "native"]},
3840
+ {"value": 33, "name": "shared texture memory DXGI shared handle descriptor", "tags": ["dawn", "native"]},
3841
+ {"value": 34, "name": "shared texture memory D3D11 texture 2D descriptor", "tags": ["dawn", "native"]},
3842
+ {"value": 35, "name": "shared texture memory IO surface descriptor", "tags": ["dawn", "native"]},
3843
+ {"value": 36, "name": "shared texture memory EGL image descriptor", "tags": ["dawn", "native"]},
3844
+ {"value": 37, "name": "shared texture memory initialized begin state", "tags": ["dawn", "native"]},
3845
+ {"value": 38, "name": "shared texture memory initialized end state", "tags": ["dawn", "native"]},
3846
+ {"value": 39, "name": "shared texture memory vk image layout begin state", "tags": ["dawn", "native"]},
3847
+ {"value": 40, "name": "shared texture memory vk image layout end state", "tags": ["dawn", "native"]},
3848
+ {"value": 41, "name": "shared texture memory D3D swapchain begin state", "tags": ["dawn", "native"]},
3849
+ {"value": 42, "name": "shared fence vk semaphore opaque FD descriptor", "tags": ["dawn", "native"]},
3850
+ {"value": 43, "name": "shared fence vk semaphore opaque FD export info", "tags": ["dawn", "native"]},
3851
+ {"value": 44, "name": "shared fence sync FD descriptor", "tags": ["dawn", "native"]},
3852
+ {"value": 45, "name": "shared fence sync FD export info", "tags": ["dawn", "native"]},
3853
+ {"value": 46, "name": "shared fence vk semaphore zircon handle descriptor", "tags": ["dawn", "native"]},
3854
+ {"value": 47, "name": "shared fence vk semaphore zircon handle export info", "tags": ["dawn", "native"]},
3855
+ {"value": 48, "name": "shared fence DXGI shared handle descriptor", "tags": ["dawn", "native"]},
3856
+ {"value": 49, "name": "shared fence DXGI shared handle export info", "tags": ["dawn", "native"]},
3857
+ {"value": 50, "name": "shared fence MTL shared event descriptor", "tags": ["dawn", "native"]},
3858
+ {"value": 51, "name": "shared fence MTL shared event export info", "tags": ["dawn", "native"]},
3859
+ {"value": 52, "name": "shared buffer memory D3D12 resource descriptor", "tags": ["dawn", "native"]},
3860
+ {"value": 53, "name": "static sampler binding layout", "tags": ["dawn"]},
3861
+ {"value": 54, "name": "y cb cr vk descriptor", "tags": ["dawn"]},
3862
+ {"value": 55, "name": "shared texture memory a hardware buffer properties", "tags": ["dawn", "native"]},
3863
+ {"value": 56, "name": "a hardware buffer properties", "tags": ["dawn", "native"]},
3864
+ {"value": 58, "name": "dawn texel copy buffer row alignment limits", "tags": ["dawn"]},
3865
+ {"value": 59, "name": "adapter properties subgroup matrix configs", "tags": ["dawn"]},
3866
+ {"value": 60, "name": "shared fence EGL sync descriptor", "tags": ["dawn", "native"]},
3867
+ {"value": 61, "name": "shared fence EGL sync export info", "tags": ["dawn", "native"]},
3868
+ {"value": 62, "name": "dawn injected invalid s type", "tags": ["dawn"]},
3869
+ {"value": 63, "name": "dawn compilation message utf16", "tags": ["dawn", "emscripten"]},
3870
+ {"value": 64, "name": "dawn fake buffer OOM for testing", "tags": ["dawn"]},
3871
+ {"value": 65, "name": "surface descriptor from windows WinUI swap chain panel", "tags": ["dawn"]},
3872
+ {"value": 66, "name": "dawn device allocator control", "tags": ["dawn"]},
3873
+ {"value": 67, "name": "dawn host mapped pointer limits", "tags": ["dawn"]},
3874
+ {"value": 68, "name": "render pass descriptor resolve rect", "tags": ["dawn"]},
3875
+ {"value": 69, "name": "request adapter WebGPU backend options", "tags": ["dawn", "native"]}
4054
3876
  ]
4055
3877
  },
4056
3878
  "texture": {
@@ -4118,13 +3940,12 @@
4118
3940
  "surface get current texture status": {
4119
3941
  "category": "enum",
4120
3942
  "values": [
4121
- {"value": 1, "name": "success"},
4122
- {"value": 2, "name": "timeout"},
4123
- {"value": 3, "name": "outdated"},
4124
- {"value": 4, "name": "lost"},
4125
- {"value": 5, "name": "out of memory"},
4126
- {"value": 6, "name": "device lost"},
4127
- {"value": 7, "name": "error"}
3943
+ {"value": 1, "name": "success optimal"},
3944
+ {"value": 2, "name": "success suboptimal"},
3945
+ {"value": 3, "name": "timeout"},
3946
+ {"value": 4, "name": "outdated"},
3947
+ {"value": 5, "name": "lost"},
3948
+ {"value": 6, "name": "error"}
4128
3949
  ]
4129
3950
  },
4130
3951
  "texture aspect": {
@@ -4139,15 +3960,6 @@
4139
3960
  {"value": 2, "name": "plane 2 only", "tags": ["dawn"]}
4140
3961
  ]
4141
3962
  },
4142
- "texture data layout": {
4143
- "category": "structure",
4144
- "extensible": "in",
4145
- "members": [
4146
- {"name": "offset", "type": "uint64_t", "default": 0},
4147
- {"name": "bytes per row", "type": "uint32_t", "default": "WGPU_COPY_STRIDE_UNDEFINED"},
4148
- {"name": "rows per image", "type": "uint32_t", "default": "WGPU_COPY_STRIDE_UNDEFINED"}
4149
- ]
4150
- },
4151
3963
  "texture descriptor": {
4152
3964
  "category": "structure",
4153
3965
  "extensible": "in",
@@ -4160,7 +3972,7 @@
4160
3972
  {"name": "mip level count", "type": "uint32_t", "default": 1},
4161
3973
  {"name": "sample count", "type": "uint32_t", "default": 1},
4162
3974
  {"name": "view format count", "type": "size_t", "default": 0},
4163
- {"name": "view formats", "type": "texture format", "annotation": "const*", "length": "view format count"}
3975
+ {"name": "view formats", "type": "texture format", "annotation": "const*", "length": "view format count", "default": "nullptr"}
4164
3976
  ]
4165
3977
  },
4166
3978
  "texture binding view dimension descriptor": {
@@ -4168,7 +3980,7 @@
4168
3980
  "chained": "in",
4169
3981
  "chain roots": ["texture descriptor"],
4170
3982
  "members": [
4171
- {"name": "texture binding view dimension", "type": "texture view dimension", "default": "undefined"}
3983
+ {"name": "texture binding view dimension", "type": "texture view dimension"}
4172
3984
  ]
4173
3985
  },
4174
3986
  "texture dimension": {
@@ -4324,14 +4136,14 @@
4324
4136
  "extensible": "in",
4325
4137
  "members": [
4326
4138
  {"name": "label", "type": "string view", "optional": true},
4327
- {"name": "format", "type": "texture format", "default": "undefined"},
4328
- {"name": "dimension", "type": "texture view dimension", "default": "undefined"},
4139
+ {"name": "format", "type": "texture format"},
4140
+ {"name": "dimension", "type": "texture view dimension"},
4329
4141
  {"name": "base mip level", "type": "uint32_t", "default": "0"},
4330
- {"name": "mip level count", "type": "uint32_t", "default": "WGPU_MIP_LEVEL_COUNT_UNDEFINED"},
4142
+ {"name": "mip level count", "type": "uint32_t", "default": "mip level count undefined"},
4331
4143
  {"name": "base array layer", "type": "uint32_t", "default": "0"},
4332
- {"name": "array layer count", "type": "uint32_t", "default": "WGPU_ARRAY_LAYER_COUNT_UNDEFINED"},
4144
+ {"name": "array layer count", "type": "uint32_t", "default": "array layer count undefined"},
4333
4145
  {"name": "aspect", "type": "texture aspect", "default": "all"},
4334
- {"name": "usage", "type": "texture usage", "default": "none"}
4146
+ {"name": "usage", "type": "texture usage"}
4335
4147
  ]
4336
4148
  },
4337
4149
  "texture view": {
@@ -4381,46 +4193,57 @@
4381
4193
  "vertex format": {
4382
4194
  "category": "enum",
4383
4195
  "values": [
4384
- {"value": 1, "name": "uint8x2"},
4385
- {"value": 2, "name": "uint8x4"},
4386
- {"value": 3, "name": "sint8x2"},
4387
- {"value": 4, "name": "sint8x4"},
4388
- {"value": 5, "name": "unorm8x2"},
4389
- {"value": 6, "name": "unorm8x4"},
4390
- {"value": 7, "name": "snorm8x2"},
4391
- {"value": 8, "name": "snorm8x4"},
4392
- {"value": 9, "name": "uint16x2"},
4393
- {"value": 10, "name": "uint16x4"},
4394
- {"value": 11, "name": "sint16x2"},
4395
- {"value": 12, "name": "sint16x4"},
4396
- {"value": 13, "name": "unorm16x2"},
4397
- {"value": 14, "name": "unorm16x4"},
4398
- {"value": 15, "name": "snorm16x2"},
4399
- {"value": 16, "name": "snorm16x4"},
4400
- {"value": 17, "name": "float16x2"},
4401
- {"value": 18, "name": "float16x4"},
4402
- {"value": 19, "name": "float32"},
4403
- {"value": 20, "name": "float32x2"},
4404
- {"value": 21, "name": "float32x3"},
4405
- {"value": 22, "name": "float32x4"},
4406
- {"value": 23, "name": "uint32"},
4407
- {"value": 24, "name": "uint32x2"},
4408
- {"value": 25, "name": "uint32x3"},
4409
- {"value": 26, "name": "uint32x4"},
4410
- {"value": 27, "name": "sint32"},
4411
- {"value": 28, "name": "sint32x2"},
4412
- {"value": 29, "name": "sint32x3"},
4413
- {"value": 30, "name": "sint32x4"},
4414
- {"value": 31, "name": "unorm 10_10_10_2", "jsrepr": "'unorm10-10-10-2'"}
4415
- ]
4416
- },
4417
- "WGSL feature name": {
4196
+ {"value": 1, "name": "uint8"},
4197
+ {"value": 2, "name": "uint8x2"},
4198
+ {"value": 3, "name": "uint8x4"},
4199
+ {"value": 4, "name": "sint8"},
4200
+ {"value": 5, "name": "sint8x2"},
4201
+ {"value": 6, "name": "sint8x4"},
4202
+ {"value": 7, "name": "unorm8"},
4203
+ {"value": 8, "name": "unorm8x2"},
4204
+ {"value": 9, "name": "unorm8x4"},
4205
+ {"value": 10, "name": "snorm8"},
4206
+ {"value": 11, "name": "snorm8x2"},
4207
+ {"value": 12, "name": "snorm8x4"},
4208
+ {"value": 13, "name": "uint16"},
4209
+ {"value": 14, "name": "uint16x2"},
4210
+ {"value": 15, "name": "uint16x4"},
4211
+ {"value": 16, "name": "sint16"},
4212
+ {"value": 17, "name": "sint16x2"},
4213
+ {"value": 18, "name": "sint16x4"},
4214
+ {"value": 19, "name": "unorm16"},
4215
+ {"value": 20, "name": "unorm16x2"},
4216
+ {"value": 21, "name": "unorm16x4"},
4217
+ {"value": 22, "name": "snorm16"},
4218
+ {"value": 23, "name": "snorm16x2"},
4219
+ {"value": 24, "name": "snorm16x4"},
4220
+ {"value": 25, "name": "float16"},
4221
+ {"value": 26, "name": "float16x2"},
4222
+ {"value": 27, "name": "float16x4"},
4223
+ {"value": 28, "name": "float32"},
4224
+ {"value": 29, "name": "float32x2"},
4225
+ {"value": 30, "name": "float32x3"},
4226
+ {"value": 31, "name": "float32x4"},
4227
+ {"value": 32, "name": "uint32"},
4228
+ {"value": 33, "name": "uint32x2"},
4229
+ {"value": 34, "name": "uint32x3"},
4230
+ {"value": 35, "name": "uint32x4"},
4231
+ {"value": 36, "name": "sint32"},
4232
+ {"value": 37, "name": "sint32x2"},
4233
+ {"value": 38, "name": "sint32x3"},
4234
+ {"value": 39, "name": "sint32x4"},
4235
+ {"value": 40, "name": "unorm 10_10_10_2", "jsrepr": "'unorm10-10-10-2'"},
4236
+ {"value": 41, "name": "unorm8x4 BGRA", "jsrepr": "'unorm8x4-bgra'"}
4237
+ ]
4238
+ },
4239
+ "WGSL language feature name": {
4418
4240
  "category": "enum",
4419
4241
  "values": [
4420
4242
  {"value": 1, "name": "readonly and readwrite storage textures", "jsrepr": "'readonly_and_readwrite_storage_textures'"},
4421
4243
  {"value": 2, "name": "packed 4x8 integer dot product", "jsrepr": "'packed_4x8_integer_dot_product'"},
4422
4244
  {"value": 3, "name": "unrestricted pointer parameters", "jsrepr": "'unrestricted_pointer_parameters'"},
4423
4245
  {"value": 4, "name": "pointer composite access", "jsrepr": "'pointer_composite_access'"},
4246
+ {"value": 5, "name": "sized binding array", "jsrepr": "'sized_binding_array'"},
4424
4247
 
4425
4248
  {"value": 0, "name": "chromium testing unimplemented", "jsrepr": "'chromium_testing_unimplemented'", "tags": ["dawn"]},
4426
4249
  {"value": 1, "name": "chromium testing unsafe experimental", "jsrepr": "'chromium_testing_unsafe_experimental'", "tags": ["dawn"]},
@@ -4432,52 +4255,58 @@
4432
4255
  "whole size" : {
4433
4256
  "category": "constant",
4434
4257
  "type": "uint64_t",
4435
- "value": "UINT64_MAX"
4258
+ "value": "UINT64_MAX"
4436
4259
  },
4437
4260
  "whole map size" : {
4438
4261
  "category": "constant",
4439
4262
  "type": "size_t",
4440
- "value": "SIZE_MAX"
4263
+ "value": "SIZE_MAX"
4441
4264
  },
4442
4265
  "copy stride undefined" : {
4443
4266
  "category": "constant",
4444
4267
  "type": "uint32_t",
4445
- "value": "UINT32_MAX"
4268
+ "value": "UINT32_MAX"
4446
4269
  },
4447
4270
  "limit u32 undefined" : {
4448
4271
  "category": "constant",
4449
4272
  "type": "uint32_t",
4450
- "value": "UINT32_MAX"
4273
+ "value": "UINT32_MAX"
4451
4274
  },
4452
4275
  "limit u64 undefined" : {
4453
4276
  "category": "constant",
4454
4277
  "type": "uint64_t",
4455
- "value": "UINT64_MAX"
4278
+ "value": "UINT64_MAX"
4456
4279
  },
4457
4280
  "array layer count undefined" : {
4458
4281
  "category": "constant",
4459
4282
  "type": "uint32_t",
4460
- "value": "UINT32_MAX"
4283
+ "value": "UINT32_MAX"
4461
4284
  },
4462
4285
  "mip level count undefined" : {
4463
4286
  "category": "constant",
4464
4287
  "type": "uint32_t",
4465
- "value": "UINT32_MAX"
4288
+ "value": "UINT32_MAX"
4289
+ },
4290
+ "depth clear value undefined" : {
4291
+ "category": "constant",
4292
+ "type": "float",
4293
+ "value": "NAN",
4294
+ "cpp_value": "std::numeric_limits<float>::quiet_NaN()"
4466
4295
  },
4467
4296
  "depth slice undefined" : {
4468
4297
  "category": "constant",
4469
4298
  "type": "uint32_t",
4470
- "value": "UINT32_MAX"
4299
+ "value": "UINT32_MAX"
4471
4300
  },
4472
4301
  "query set index undefined" : {
4473
4302
  "category": "constant",
4474
4303
  "type": "uint32_t",
4475
- "value": "UINT32_MAX"
4304
+ "value": "UINT32_MAX"
4476
4305
  },
4477
4306
  "strlen" : {
4478
4307
  "category": "constant",
4479
4308
  "type": "size_t",
4480
- "value": "SIZE_MAX"
4309
+ "value": "SIZE_MAX"
4481
4310
  },
4482
4311
  "ObjectType": {
4483
4312
  "_comment": "Only used for the wire",
@@ -4536,7 +4365,7 @@
4536
4365
  "chain roots": ["texture descriptor"],
4537
4366
  "tags": ["dawn"],
4538
4367
  "members": [
4539
- {"name": "internal usage", "type": "texture usage", "default": "none"}
4368
+ {"name": "internal usage", "type": "texture usage"}
4540
4369
  ]
4541
4370
  },
4542
4371
  "dawn encoder internal usage descriptor": {
@@ -4554,13 +4383,14 @@
4554
4383
  "chain roots": ["adapter info"],
4555
4384
  "tags": ["dawn"],
4556
4385
  "members": [
4557
- {"name": "power preference", "type": "power preference", "default": "undefined"}
4386
+ {"name": "power preference", "type": "power preference"}
4558
4387
  ]
4559
4388
  },
4560
4389
  "heap property": {
4561
4390
  "category": "bitmask",
4562
4391
  "tags": ["dawn"],
4563
4392
  "values": [
4393
+ {"value": 0, "name": "none"},
4564
4394
  {"value": 1, "name": "device local"},
4565
4395
  {"value": 2, "name": "host visible"},
4566
4396
  {"value": 4, "name": "host coherent"},
@@ -4612,5 +4442,36 @@
4612
4442
  "members": [
4613
4443
  {"name": "out of memory", "type": "bool", "default": "false"}
4614
4444
  ]
4445
+ },
4446
+ "subgroup matrix component type": {
4447
+ "category": "enum",
4448
+ "emscripten_no_enum_table": true,
4449
+ "values": [
4450
+ {"value": 1, "name": "f32"},
4451
+ {"value": 2, "name": "f16"},
4452
+ {"value": 3, "name": "u32"},
4453
+ {"value": 4, "name": "i32"}
4454
+ ]
4455
+ },
4456
+ "subgroup matrix config": {
4457
+ "category": "structure",
4458
+ "tags": ["dawn"],
4459
+ "members": [
4460
+ {"name": "component type", "type": "subgroup matrix component type"},
4461
+ {"name": "result component type", "type": "subgroup matrix component type"},
4462
+ {"name": "M", "type": "uint32_t"},
4463
+ {"name": "N", "type": "uint32_t"},
4464
+ {"name": "K", "type": "uint32_t"}
4465
+ ]
4466
+ },
4467
+ "adapter properties subgroup matrix configs": {
4468
+ "category": "structure",
4469
+ "chained": "out",
4470
+ "chain roots": ["adapter info"],
4471
+ "tags": ["dawn"],
4472
+ "members": [
4473
+ {"name": "config count", "type": "size_t"},
4474
+ {"name": "configs", "type": "subgroup matrix config", "annotation": "const*", "length": "config count"}
4475
+ ]
4615
4476
  }
4616
4477
  }