react-native-webgpu 0.8.5 → 0.10.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 (140) hide show
  1. package/Package.swift +191 -0
  2. package/android/CMakeLists.txt +1 -2
  3. package/android/src/main/java/com/webgpu/WebGPUSurfaceView.java +10 -1
  4. package/android/src/main/java/com/webgpu/WebGPUTextureView.java +2 -2
  5. package/android/src/main/java/com/webgpu/WebGPUView.java +48 -16
  6. package/android/src/main/java/com/webgpu/WebGPUViewManager.java +21 -4
  7. package/cpp/jsi/JSICache.cpp +97 -0
  8. package/cpp/jsi/JSICache.h +90 -0
  9. package/cpp/jsi/NativeObject.h +24 -81
  10. package/cpp/rnwgpu/RNWebGPUManager.cpp +0 -3
  11. package/cpp/rnwgpu/SurfaceRegistry.h +153 -3
  12. package/cpp/rnwgpu/api/GPUAdapter.cpp +43 -1
  13. package/cpp/rnwgpu/api/GPUDevice.cpp +6 -1
  14. package/cpp/rnwgpu/api/GPUExternalTexture.cpp +3 -3
  15. package/cpp/rnwgpu/api/GPUFeatures.h +2 -1
  16. package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +2 -2
  17. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +11 -0
  18. package/cpp/webgpu/webgpu.h +63 -29
  19. package/cpp/webgpu/webgpu_cpp.h +415 -367
  20. package/cpp/webgpu/webgpu_cpp_print.h +21 -9
  21. package/cpp/webgpu/webgpu_enum_class_bitmasks.h +2 -1
  22. package/lib/commonjs/Canvas.js +8 -2
  23. package/lib/commonjs/Canvas.js.map +1 -1
  24. package/lib/commonjs/WebGPUViewNativeComponent.js.map +1 -1
  25. package/lib/commonjs/WebGPUViewNativeComponent.web.js +4 -2
  26. package/lib/commonjs/WebGPUViewNativeComponent.web.js.map +1 -1
  27. package/lib/commonjs/mock.js +3 -1
  28. package/lib/commonjs/mock.js.map +1 -1
  29. package/lib/module/Canvas.js +8 -2
  30. package/lib/module/Canvas.js.map +1 -1
  31. package/lib/module/WebGPUViewNativeComponent.js.map +1 -1
  32. package/lib/module/WebGPUViewNativeComponent.web.js +4 -2
  33. package/lib/module/WebGPUViewNativeComponent.web.js.map +1 -1
  34. package/lib/module/mock.js +3 -1
  35. package/lib/module/mock.js.map +1 -1
  36. package/lib/typescript/lib/commonjs/Canvas.d.ts +3 -2
  37. package/lib/typescript/lib/commonjs/Canvas.d.ts.map +1 -1
  38. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts.map +1 -1
  39. package/lib/typescript/lib/commonjs/mock.d.ts +3 -2
  40. package/lib/typescript/lib/commonjs/mock.d.ts.map +1 -1
  41. package/lib/typescript/lib/module/Canvas.d.ts +3 -2
  42. package/lib/typescript/lib/module/Canvas.d.ts.map +1 -1
  43. package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts.map +1 -1
  44. package/lib/typescript/lib/module/mock.d.ts +3 -2
  45. package/lib/typescript/lib/module/mock.d.ts.map +1 -1
  46. package/lib/typescript/src/Canvas.d.ts +24 -3
  47. package/lib/typescript/src/Canvas.d.ts.map +1 -1
  48. package/lib/typescript/src/WebGPUViewNativeComponent.d.ts +4 -2
  49. package/lib/typescript/src/WebGPUViewNativeComponent.d.ts.map +1 -1
  50. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts +3 -1
  51. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts.map +1 -1
  52. package/lib/typescript/src/index.d.ts +1 -0
  53. package/lib/typescript/src/index.d.ts.map +1 -1
  54. package/lib/typescript/src/mock.d.ts +3 -7
  55. package/lib/typescript/src/mock.d.ts.map +1 -1
  56. package/libs/android/arm64-v8a/libwebgpu_dawn.so +0 -0
  57. package/libs/android/armeabi-v7a/libwebgpu_dawn.so +0 -0
  58. package/libs/android/x86/libwebgpu_dawn.so +0 -0
  59. package/libs/android/x86_64/libwebgpu_dawn.so +0 -0
  60. package/libs/apple/libwebgpu_dawn.xcframework/Info.plist +12 -6
  61. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/dawn/dawn_proc_table.h +329 -0
  62. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/dawn/native/DawnNative.h +367 -0
  63. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/dawn/native/NullBackend.h +39 -0
  64. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/dawn/native/OpenGLBackend.h +89 -0
  65. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/dawn/native/VulkanBackend.h +183 -0
  66. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/dawn/native/dawn_native_export.h +49 -0
  67. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/dawn/webgpu.h +5063 -0
  68. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/dawn/webgpu.ixx +358 -0
  69. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/dawn/webgpu_cpp.h +10401 -0
  70. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/dawn/webgpu_cpp_print.h +2868 -0
  71. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/dawn/wire/client/webgpu.h +369 -0
  72. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/dawn/wire/client/webgpu_cpp.h +10584 -0
  73. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/dawn/wire/client/webgpu_cpp_print.h +2868 -0
  74. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/webgpu/webgpu.h +33 -0
  75. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/webgpu/webgpu_cpp.h +33 -0
  76. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/webgpu/webgpu_cpp_chained_struct.h +57 -0
  77. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/webgpu/webgpu_cpp_print.h +33 -0
  78. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/webgpu/webgpu_enum_class_bitmasks.h +163 -0
  79. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/webgpu_upstream/webgpu/webgpu_cpp.h +5932 -0
  80. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/webgpu_upstream/webgpu/webgpu_cpp_chained_struct.h +54 -0
  81. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/webgpu_upstream/webgpu/webgpu_cpp_print.h +2059 -0
  82. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/Headers/webgpu_upstream/webgpu/webgpu_enum_class_bitmasks.h +163 -0
  83. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/libwebgpu_dawn.a +0 -0
  84. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/dawn/dawn_proc_table.h +329 -0
  85. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/dawn/native/DawnNative.h +367 -0
  86. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/dawn/native/NullBackend.h +39 -0
  87. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/dawn/native/OpenGLBackend.h +89 -0
  88. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/dawn/native/VulkanBackend.h +183 -0
  89. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/dawn/native/dawn_native_export.h +49 -0
  90. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/dawn/webgpu.h +5063 -0
  91. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/dawn/webgpu.ixx +358 -0
  92. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/dawn/webgpu_cpp.h +10401 -0
  93. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/dawn/webgpu_cpp_print.h +2868 -0
  94. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/dawn/wire/client/webgpu.h +369 -0
  95. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/dawn/wire/client/webgpu_cpp.h +10584 -0
  96. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/dawn/wire/client/webgpu_cpp_print.h +2868 -0
  97. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/webgpu/webgpu.h +33 -0
  98. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/webgpu/webgpu_cpp.h +33 -0
  99. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/webgpu/webgpu_cpp_chained_struct.h +57 -0
  100. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/webgpu/webgpu_cpp_print.h +33 -0
  101. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/webgpu/webgpu_enum_class_bitmasks.h +163 -0
  102. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/webgpu_upstream/webgpu/webgpu_cpp.h +5932 -0
  103. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/webgpu_upstream/webgpu/webgpu_cpp_chained_struct.h +54 -0
  104. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/webgpu_upstream/webgpu/webgpu_cpp_print.h +2059 -0
  105. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/Headers/webgpu_upstream/webgpu/webgpu_enum_class_bitmasks.h +163 -0
  106. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/libwebgpu_dawn.a +0 -0
  107. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/dawn/dawn_proc_table.h +329 -0
  108. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/dawn/native/DawnNative.h +367 -0
  109. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/dawn/native/NullBackend.h +39 -0
  110. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/dawn/native/OpenGLBackend.h +89 -0
  111. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/dawn/native/VulkanBackend.h +183 -0
  112. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/dawn/native/dawn_native_export.h +49 -0
  113. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/dawn/webgpu.h +5063 -0
  114. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/dawn/webgpu.ixx +358 -0
  115. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/dawn/webgpu_cpp.h +10401 -0
  116. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/dawn/webgpu_cpp_print.h +2868 -0
  117. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/dawn/wire/client/webgpu.h +369 -0
  118. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/dawn/wire/client/webgpu_cpp.h +10584 -0
  119. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/dawn/wire/client/webgpu_cpp_print.h +2868 -0
  120. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/webgpu/webgpu.h +33 -0
  121. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/webgpu/webgpu_cpp.h +33 -0
  122. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/webgpu/webgpu_cpp_chained_struct.h +57 -0
  123. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/webgpu/webgpu_cpp_print.h +33 -0
  124. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/webgpu/webgpu_enum_class_bitmasks.h +163 -0
  125. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/webgpu_upstream/webgpu/webgpu_cpp.h +5932 -0
  126. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/webgpu_upstream/webgpu/webgpu_cpp_chained_struct.h +54 -0
  127. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/webgpu_upstream/webgpu/webgpu_cpp_print.h +2059 -0
  128. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/Headers/webgpu_upstream/webgpu/webgpu_enum_class_bitmasks.h +163 -0
  129. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/libwebgpu_dawn.a +0 -0
  130. package/package.json +11 -9
  131. package/react-native-webgpu.podspec +33 -9
  132. package/src/Canvas.tsx +43 -4
  133. package/src/WebGPUViewNativeComponent.ts +10 -2
  134. package/src/WebGPUViewNativeComponent.web.ts +12 -3
  135. package/src/index.tsx +7 -0
  136. package/src/mock.ts +12 -9
  137. package/cpp/jsi/RuntimeAwareCache.cpp +0 -7
  138. package/cpp/jsi/RuntimeAwareCache.h +0 -119
  139. package/cpp/jsi/RuntimeLifecycleMonitor.cpp +0 -72
  140. package/cpp/jsi/RuntimeLifecycleMonitor.h +0 -32
@@ -181,6 +181,7 @@ enum class ColorSpaceTransferDawn : uint32_t {
181
181
  SMPTE_170M = WGPUColorSpaceTransferDawn_SMPTE_170M,
182
182
  HLG = WGPUColorSpaceTransferDawn_HLG,
183
183
  PQ = WGPUColorSpaceTransferDawn_PQ,
184
+ BT_1886 = WGPUColorSpaceTransferDawn_BT_1886,
184
185
  };
185
186
  static_assert(sizeof(ColorSpaceTransferDawn) == sizeof(WGPUColorSpaceTransferDawn), "sizeof mismatch for ColorSpaceTransferDawn");
186
187
  static_assert(alignof(ColorSpaceTransferDawn) == alignof(WGPUColorSpaceTransferDawn), "alignof mismatch for ColorSpaceTransferDawn");
@@ -405,6 +406,7 @@ enum class FeatureName : uint32_t {
405
406
  AdapterPropertiesDrm = WGPUFeatureName_AdapterPropertiesDrm,
406
407
  TextureCompressionUnaligned = WGPUFeatureName_TextureCompressionUnaligned,
407
408
  DawnAllowUndefinedLoadStoreOp = WGPUFeatureName_DawnAllowUndefinedLoadStoreOp,
409
+ BufferMapWriteExtendedUsages = WGPUFeatureName_BufferMapWriteExtendedUsages,
408
410
  };
409
411
  static_assert(sizeof(FeatureName) == sizeof(WGPUFeatureName), "sizeof mismatch for FeatureName");
410
412
  static_assert(alignof(FeatureName) == alignof(WGPUFeatureName), "alignof mismatch for FeatureName");
@@ -712,6 +714,8 @@ enum class SType : uint32_t {
712
714
  RequestAdapterOptionsAngleVirtualizationGroup = WGPUSType_RequestAdapterOptionsAngleVirtualizationGroup,
713
715
  PipelineLayoutResourceTable = WGPUSType_PipelineLayoutResourceTable,
714
716
  AdapterPropertiesDrm = WGPUSType_AdapterPropertiesDrm,
717
+ RenderBundleEncoderResourceTable = WGPUSType_RenderBundleEncoderResourceTable,
718
+ DawnShaderSourceSPIRV = WGPUSType_DawnShaderSourceSPIRV,
715
719
  };
716
720
  static_assert(sizeof(SType) == sizeof(WGPUSType), "sizeof mismatch for SType");
717
721
  static_assert(alignof(SType) == alignof(WGPUSType), "alignof mismatch for SType");
@@ -988,6 +992,9 @@ enum class WGSLLanguageFeatureName : uint32_t {
988
992
  TextureFormatsTier1 = WGPUWGSLLanguageFeatureName_TextureFormatsTier1,
989
993
  LinearIndexing = WGPUWGSLLanguageFeatureName_LinearIndexing,
990
994
  ImmediateAddressSpace = WGPUWGSLLanguageFeatureName_ImmediateAddressSpace,
995
+ BufferView = WGPUWGSLLanguageFeatureName_BufferView,
996
+ SwizzleAssignment = WGPUWGSLLanguageFeatureName_SwizzleAssignment,
997
+ FragmentDepth = WGPUWGSLLanguageFeatureName_FragmentDepth,
991
998
  ChromiumTestingUnimplemented = WGPUWGSLLanguageFeatureName_ChromiumTestingUnimplemented,
992
999
  ChromiumTestingUnsafeExperimental = WGPUWGSLLanguageFeatureName_ChromiumTestingUnsafeExperimental,
993
1000
  ChromiumTestingExperimental = WGPUWGSLLanguageFeatureName_ChromiumTestingExperimental,
@@ -996,9 +1003,6 @@ enum class WGSLLanguageFeatureName : uint32_t {
996
1003
  SizedBindingArray = WGPUWGSLLanguageFeatureName_SizedBindingArray,
997
1004
  TexelBuffers = WGPUWGSLLanguageFeatureName_TexelBuffers,
998
1005
  ChromiumPrint = WGPUWGSLLanguageFeatureName_ChromiumPrint,
999
- FragmentDepth = WGPUWGSLLanguageFeatureName_FragmentDepth,
1000
- BufferView = WGPUWGSLLanguageFeatureName_BufferView,
1001
- SwizzleAssignment = WGPUWGSLLanguageFeatureName_SwizzleAssignment,
1002
1006
  };
1003
1007
  static_assert(sizeof(WGSLLanguageFeatureName) == sizeof(WGPUWGSLLanguageFeatureName), "sizeof mismatch for WGSLLanguageFeatureName");
1004
1008
  static_assert(alignof(WGSLLanguageFeatureName) == alignof(WGPUWGSLLanguageFeatureName), "alignof mismatch for WGSLLanguageFeatureName");
@@ -1155,22 +1159,6 @@ inline const OptionalBool OptionalBool::False = OptionalBool(WGPUOptionalBool_Fa
1155
1159
  inline const OptionalBool OptionalBool::True = OptionalBool(WGPUOptionalBool_True);
1156
1160
  inline const OptionalBool OptionalBool::Undefined = OptionalBool(WGPUOptionalBool_Undefined);
1157
1161
 
1158
- // Helper class to wrap Status which allows implicit conversion to bool.
1159
- // Used while callers switch to checking the Status enum instead of booleans.
1160
- // TODO(crbug.com/42241199): Remove when all callers check the enum.
1161
- struct ConvertibleStatus {
1162
- explicit(false) constexpr ConvertibleStatus(Status status) : status(status) {}
1163
- // NOLINTNEXTLINE(google-explicit-constructor)
1164
- constexpr operator bool() const {
1165
- return status == Status::Success;
1166
- }
1167
- // NOLINTNEXTLINE(google-explicit-constructor)
1168
- constexpr operator Status() const {
1169
- return status;
1170
- }
1171
- Status status;
1172
- };
1173
-
1174
1162
  template<typename Derived, typename CType>
1175
1163
  class ObjectBase {
1176
1164
  public:
@@ -1305,6 +1293,7 @@ struct DawnHostMappedPointerLimits;
1305
1293
  struct DawnInjectedInvalidSType;
1306
1294
  struct DawnRenderPassSampleCount;
1307
1295
  struct DawnShaderModuleSPIRVOptionsDescriptor;
1296
+ struct DawnShaderSourceSPIRV;
1308
1297
  struct DawnTexelCopyBufferRowAlignmentLimits;
1309
1298
  struct DawnTextureInternalUsageDescriptor;
1310
1299
  struct DawnTogglesDescriptor;
@@ -1329,7 +1318,7 @@ struct PrimitiveState;
1329
1318
  struct QuerySetDescriptor;
1330
1319
  struct QueueDescriptor;
1331
1320
  struct RenderBundleDescriptor;
1332
- struct RenderBundleEncoderDescriptor;
1321
+ struct RenderBundleEncoderResourceTable;
1333
1322
  struct RenderPassDepthStencilAttachment;
1334
1323
  struct RenderPassDescriptorResolveRect;
1335
1324
  struct RenderPassMaxDrawCount;
@@ -1416,6 +1405,7 @@ struct ImageCopyExternalTexture;
1416
1405
  struct InstanceDescriptor;
1417
1406
  struct Limits;
1418
1407
  struct PipelineLayoutPixelLocalStorage;
1408
+ struct RenderBundleEncoderDescriptor;
1419
1409
  struct RenderPassColorAttachment;
1420
1410
  struct RenderPassRenderAreaRect;
1421
1411
  struct RenderPassStorageAttachment;
@@ -1459,32 +1449,26 @@ struct StringView {
1459
1449
  size_t length = WGPU_STRLEN;
1460
1450
 
1461
1451
  inline constexpr StringView() noexcept = default;
1462
-
1463
1452
  explicit(false) inline constexpr StringView(const std::string_view& sv) noexcept {
1464
1453
  this->data = sv.data();
1465
1454
  this->length = sv.length();
1466
1455
  }
1467
-
1468
1456
  explicit(false) inline constexpr StringView(const char* s) {
1469
1457
  this->data = s;
1470
1458
  this->length = WGPU_STRLEN; // use strlen
1471
1459
  }
1472
-
1473
1460
  explicit(false) inline constexpr StringView(WGPUStringView s) {
1474
1461
  this->data = s.data;
1475
1462
  this->length = s.length;
1476
1463
  }
1477
-
1478
1464
  inline constexpr StringView(const char* data, size_t length) {
1479
1465
  this->data = data;
1480
1466
  this->length = length;
1481
1467
  }
1482
-
1483
1468
  explicit(false) inline constexpr StringView(std::nullptr_t) {
1484
1469
  this->data = nullptr;
1485
1470
  this->length = WGPU_STRLEN;
1486
1471
  }
1487
-
1488
1472
  explicit(false) inline constexpr StringView(std::nullopt_t) {
1489
1473
  this->data = nullptr;
1490
1474
  this->length = WGPU_STRLEN;
@@ -1504,7 +1488,6 @@ struct StringView {
1504
1488
  }
1505
1489
  return {this->data, this->length};
1506
1490
  }
1507
-
1508
1491
  template <typename View,
1509
1492
  typename = std::enable_if_t<std::is_constructible_v<View, const char*, size_t>>>
1510
1493
  explicit operator View() const {
@@ -1619,10 +1602,10 @@ class Adapter : public ObjectBase<Adapter, WGPUAdapter> {
1619
1602
 
1620
1603
  inline Device CreateDevice(DeviceDescriptor const * descriptor = nullptr) const;
1621
1604
  inline void GetFeatures(SupportedFeatures * features) const;
1622
- inline ConvertibleStatus GetFormatCapabilities(TextureFormat format, DawnFormatCapabilities * capabilities) const;
1623
- inline ConvertibleStatus GetInfo(AdapterInfo * info) const;
1605
+ inline Status GetFormatCapabilities(TextureFormat format, DawnFormatCapabilities * capabilities) const;
1606
+ inline Status GetInfo(AdapterInfo * info) const;
1624
1607
  inline Instance GetInstance() const;
1625
- inline ConvertibleStatus GetLimits(Limits * limits) const;
1608
+ inline Status GetLimits(Limits * limits) const;
1626
1609
  inline Bool HasFeature(FeatureName feature) const;
1627
1610
  template <typename F, typename T>
1628
1611
  Future RequestDevice(DeviceDescriptor const * descriptor, CallbackMode callbackMode, F callback, T userdata) const;
@@ -1680,10 +1663,10 @@ class Buffer : public ObjectBase<Buffer, WGPUBuffer> {
1680
1663
  Future MapAsync(MapMode mode, size_t offset, size_t size, CallbackMode callbackMode, F callback, T userdata) const;
1681
1664
  template <typename F>
1682
1665
  Future MapAsync(MapMode mode, size_t offset, size_t size, CallbackMode callbackMode, F callback) const;
1683
- inline ConvertibleStatus ReadMappedRange(size_t offset, void * data, size_t size) const;
1666
+ inline Status ReadMappedRange(size_t offset, void * data, size_t size) const;
1684
1667
  inline void SetLabel(StringView label) const;
1685
1668
  inline void Unmap() const;
1686
- inline ConvertibleStatus WriteMappedRange(size_t offset, void const * data, size_t size) const;
1669
+ inline Status WriteMappedRange(size_t offset, void const * data, size_t size) const;
1687
1670
 
1688
1671
 
1689
1672
  private:
@@ -1725,7 +1708,7 @@ class CommandEncoder : public ObjectBase<CommandEncoder, WGPUCommandEncoder> {
1725
1708
  inline void PushDebugGroup(StringView groupLabel) const;
1726
1709
  inline void ResolveQuerySet(QuerySet const& querySet, uint32_t firstQuery, uint32_t queryCount, Buffer const& destination, uint64_t destinationOffset) const;
1727
1710
  inline void SetLabel(StringView label) const;
1728
- inline void WriteBuffer(Buffer const& buffer, uint64_t bufferOffset, uint8_t const * data, uint64_t size) const;
1711
+ inline void WriteBuffer(Buffer const& buffer, uint64_t bufferOffset, void const * data, size_t size) const;
1729
1712
  inline void WriteTimestamp(QuerySet const& querySet, uint32_t queryIndex) const;
1730
1713
 
1731
1714
 
@@ -1786,10 +1769,10 @@ class Device : public ObjectBase<Device, WGPUDevice> {
1786
1769
  inline void Destroy() const;
1787
1770
  inline void ForceLoss(DeviceLostReason type, StringView message) const;
1788
1771
  inline Adapter GetAdapter() const;
1789
- inline ConvertibleStatus GetAdapterInfo(AdapterInfo * adapterInfo) const;
1790
- inline ConvertibleStatus GetAHardwareBufferProperties(void * handle, AHardwareBufferProperties * properties) const;
1772
+ inline Status GetAdapterInfo(AdapterInfo * adapterInfo) const;
1773
+ inline Status GetAHardwareBufferProperties(void * handle, AHardwareBufferProperties * properties) const;
1791
1774
  inline void GetFeatures(SupportedFeatures * features) const;
1792
- inline ConvertibleStatus GetLimits(Limits * limits) const;
1775
+ inline Status GetLimits(Limits * limits) const;
1793
1776
  inline Future GetLostFuture() const;
1794
1777
  inline Queue GetQueue() const;
1795
1778
  inline Bool HasFeature(FeatureName feature) const;
@@ -1948,9 +1931,9 @@ class ResourceTable : public ObjectBase<ResourceTable, WGPUResourceTable> {
1948
1931
  inline void Destroy() const;
1949
1932
  inline uint32_t GetSize() const;
1950
1933
  inline uint32_t Insert(BindingResource const * resource) const;
1951
- inline ConvertibleStatus Remove(uint32_t slot) const;
1934
+ inline Status Remove(uint32_t slot) const;
1952
1935
  inline void SetLabel(StringView label) const;
1953
- inline ConvertibleStatus Update(uint32_t slot, BindingResource const * resource) const;
1936
+ inline Status Update(uint32_t slot, BindingResource const * resource) const;
1954
1937
 
1955
1938
 
1956
1939
  private:
@@ -1996,10 +1979,10 @@ class SharedBufferMemory : public ObjectBase<SharedBufferMemory, WGPUSharedBuffe
1996
1979
  using ObjectBase::ObjectBase;
1997
1980
  using ObjectBase::operator=;
1998
1981
 
1999
- inline ConvertibleStatus BeginAccess(Buffer const& buffer, SharedBufferMemoryBeginAccessDescriptor const * descriptor) const;
1982
+ inline Status BeginAccess(Buffer const& buffer, SharedBufferMemoryBeginAccessDescriptor const * descriptor) const;
2000
1983
  inline Buffer CreateBuffer(BufferDescriptor const * descriptor = nullptr) const;
2001
- inline ConvertibleStatus EndAccess(Buffer const& buffer, SharedBufferMemoryEndAccessState * descriptor) const;
2002
- inline ConvertibleStatus GetProperties(SharedBufferMemoryProperties * properties) const;
1984
+ inline Status EndAccess(Buffer const& buffer, SharedBufferMemoryEndAccessState * descriptor) const;
1985
+ inline Status GetProperties(SharedBufferMemoryProperties * properties) const;
2003
1986
  inline Bool IsDeviceLost() const;
2004
1987
  inline void SetLabel(StringView label) const;
2005
1988
 
@@ -2030,10 +2013,10 @@ class SharedTextureMemory : public ObjectBase<SharedTextureMemory, WGPUSharedTex
2030
2013
  using ObjectBase::ObjectBase;
2031
2014
  using ObjectBase::operator=;
2032
2015
 
2033
- inline ConvertibleStatus BeginAccess(Texture const& texture, SharedTextureMemoryBeginAccessDescriptor const * descriptor) const;
2016
+ inline Status BeginAccess(Texture const& texture, SharedTextureMemoryBeginAccessDescriptor const * descriptor) const;
2034
2017
  inline Texture CreateTexture(TextureDescriptor const * descriptor = nullptr) const;
2035
- inline ConvertibleStatus EndAccess(Texture const& texture, SharedTextureMemoryEndAccessState * descriptor) const;
2036
- inline ConvertibleStatus GetProperties(SharedTextureMemoryProperties * properties) const;
2018
+ inline Status EndAccess(Texture const& texture, SharedTextureMemoryEndAccessState * descriptor) const;
2019
+ inline Status GetProperties(SharedTextureMemoryProperties * properties) const;
2037
2020
  inline Bool IsDeviceLost() const;
2038
2021
  inline void SetLabel(StringView label) const;
2039
2022
 
@@ -2050,9 +2033,9 @@ class Surface : public ObjectBase<Surface, WGPUSurface> {
2050
2033
  using ObjectBase::operator=;
2051
2034
 
2052
2035
  inline void Configure(SurfaceConfiguration const * config) const;
2053
- inline ConvertibleStatus GetCapabilities(Adapter const& adapter, SurfaceCapabilities * capabilities) const;
2036
+ inline Status GetCapabilities(Adapter const& adapter, SurfaceCapabilities * capabilities) const;
2054
2037
  inline void GetCurrentTexture(SurfaceTexture * surfaceTexture) const;
2055
- inline ConvertibleStatus Present() const;
2038
+ inline Status Present() const;
2056
2039
  inline void SetLabel(StringView label) const;
2057
2040
  inline void Unconfigure() const;
2058
2041
 
@@ -2161,7 +2144,6 @@ class RenderBundleEncoder : public ObjectBase<RenderBundleEncoder, WGPURenderBun
2161
2144
  inline void SetIndexBuffer(Buffer const& buffer, IndexFormat format, uint64_t offset = 0, uint64_t size = kWholeSize) const;
2162
2145
  inline void SetLabel(StringView label) const;
2163
2146
  inline void SetPipeline(RenderPipeline const& pipeline) const;
2164
- inline void SetResourceTable(ResourceTable const& table = nullptr) const;
2165
2147
  inline void SetVertexBuffer(uint32_t slot, Buffer const& buffer = nullptr, uint64_t offset = 0, uint64_t size = kWholeSize) const;
2166
2148
 
2167
2149
 
@@ -2196,7 +2178,7 @@ class RenderPassEncoder : public ObjectBase<RenderPassEncoder, WGPURenderPassEnc
2196
2178
  inline void SetIndexBuffer(Buffer const& buffer, IndexFormat format, uint64_t offset = 0, uint64_t size = kWholeSize) const;
2197
2179
  inline void SetLabel(StringView label) const;
2198
2180
  inline void SetPipeline(RenderPipeline const& pipeline) const;
2199
- inline void SetResourceTable(ResourceTable const& table = nullptr) const;
2181
+ inline void SetResourceTable(ResourceTable const& table) const;
2200
2182
  inline void SetScissorRect(uint32_t x, uint32_t y, uint32_t width, uint32_t height) const;
2201
2183
  inline void SetStencilReference(uint32_t reference) const;
2202
2184
  inline void SetVertexBuffer(uint32_t slot, Buffer const& buffer = nullptr, uint64_t offset = 0, uint64_t size = kWholeSize) const;
@@ -2232,7 +2214,7 @@ struct AdapterPropertiesD3D : ChainedStructOut {
2232
2214
  inline operator const WGPUAdapterPropertiesD3D&() const noexcept;
2233
2215
 
2234
2216
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(uint32_t));
2235
- alignas(kFirstMemberAlignment) uint32_t shaderModel;
2217
+ alignas(kFirstMemberAlignment) uint32_t shaderModel = 0;
2236
2218
  };
2237
2219
 
2238
2220
  // Can be chained in AdapterInfo
@@ -2261,7 +2243,7 @@ struct AdapterPropertiesVk : ChainedStructOut {
2261
2243
  inline operator const WGPUAdapterPropertiesVk&() const noexcept;
2262
2244
 
2263
2245
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(uint32_t));
2264
- alignas(kFirstMemberAlignment) uint32_t driverVersion;
2246
+ alignas(kFirstMemberAlignment) uint32_t driverVersion = 0;
2265
2247
  };
2266
2248
 
2267
2249
  // Can be chained in AdapterInfo
@@ -2316,19 +2298,19 @@ struct BufferHostMappedPointer : ChainedStruct {
2316
2298
  inline operator const WGPUBufferHostMappedPointer&() const noexcept;
2317
2299
 
2318
2300
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
2319
- alignas(kFirstMemberAlignment) void * pointer;
2320
- Callback disposeCallback;
2321
- void * userdata;
2301
+ alignas(kFirstMemberAlignment) void * pointer = nullptr;
2302
+ Callback disposeCallback = {};
2303
+ void * userdata = nullptr;
2322
2304
  };
2323
2305
 
2324
2306
  struct Color {
2325
2307
  // NOLINTNEXTLINE(google-explicit-constructor)
2326
2308
  inline operator const WGPUColor&() const noexcept;
2327
2309
 
2328
- double r;
2329
- double g;
2330
- double b;
2331
- double a;
2310
+ double r = 0;
2311
+ double g = 0;
2312
+ double b = 0;
2313
+ double a = 0;
2332
2314
  };
2333
2315
 
2334
2316
  struct ColorSpaceDawn {
@@ -2384,7 +2366,7 @@ struct ConstantEntry {
2384
2366
 
2385
2367
  ChainedStruct const * nextInChain = nullptr;
2386
2368
  StringView key = {};
2387
- double value;
2369
+ double value = 0;
2388
2370
  };
2389
2371
 
2390
2372
  struct CopyTextureForBrowserOptions {
@@ -2464,9 +2446,9 @@ struct DawnCompilationMessageUtf16 : ChainedStruct {
2464
2446
  inline operator const WGPUDawnCompilationMessageUtf16&() const noexcept;
2465
2447
 
2466
2448
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint64_t));
2467
- alignas(kFirstMemberAlignment) uint64_t linePos;
2468
- uint64_t offset;
2469
- uint64_t length;
2449
+ alignas(kFirstMemberAlignment) uint64_t linePos = 0;
2450
+ uint64_t offset = 0;
2451
+ uint64_t length = 0;
2470
2452
  };
2471
2453
 
2472
2454
  // Can be chained in DeviceDescriptor
@@ -2497,8 +2479,8 @@ struct DawnDrmFormatProperties {
2497
2479
  // NOLINTNEXTLINE(google-explicit-constructor)
2498
2480
  inline operator const WGPUDawnDrmFormatProperties&() const noexcept;
2499
2481
 
2500
- uint64_t modifier;
2501
- uint32_t modifierPlaneCount;
2482
+ uint64_t modifier = 0;
2483
+ uint32_t modifierPlaneCount = 0;
2502
2484
  };
2503
2485
 
2504
2486
  // Can be chained in CommandEncoderDescriptor
@@ -2522,9 +2504,9 @@ struct DawnFakeBufferOOMForTesting : ChainedStruct {
2522
2504
  inline operator const WGPUDawnFakeBufferOOMForTesting&() const noexcept;
2523
2505
 
2524
2506
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
2525
- alignas(kFirstMemberAlignment) Bool fakeOOMAtWireClientMap;
2526
- Bool fakeOOMAtNativeMap;
2527
- Bool fakeOOMAtDevice;
2507
+ alignas(kFirstMemberAlignment) Bool fakeOOMAtWireClientMap = false;
2508
+ Bool fakeOOMAtNativeMap = false;
2509
+ Bool fakeOOMAtDevice = false;
2528
2510
  };
2529
2511
 
2530
2512
  // Can be chained in DeviceDescriptor
@@ -2584,6 +2566,19 @@ struct DawnShaderModuleSPIRVOptionsDescriptor : ChainedStruct {
2584
2566
  alignas(kFirstMemberAlignment) Bool allowNonUniformDerivatives = false;
2585
2567
  };
2586
2568
 
2569
+ // Can be chained in ShaderModuleDescriptor
2570
+ struct DawnShaderSourceSPIRV : ChainedStruct {
2571
+ inline DawnShaderSourceSPIRV();
2572
+ struct Init;
2573
+ explicit(false) inline DawnShaderSourceSPIRV(Init&& init);
2574
+ // NOLINTNEXTLINE(google-explicit-constructor)
2575
+ inline operator const WGPUDawnShaderSourceSPIRV&() const noexcept;
2576
+
2577
+ static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(size_t));
2578
+ alignas(kFirstMemberAlignment) size_t codeSize = 0;
2579
+ uint32_t const * code = nullptr;
2580
+ };
2581
+
2587
2582
  // Can be chained in Limits
2588
2583
  struct DawnTexelCopyBufferRowAlignmentLimits : ChainedStructOut {
2589
2584
  inline DawnTexelCopyBufferRowAlignmentLimits();
@@ -2668,15 +2663,15 @@ struct Extent2D {
2668
2663
  // NOLINTNEXTLINE(google-explicit-constructor)
2669
2664
  inline operator const WGPUExtent2D&() const noexcept;
2670
2665
 
2671
- uint32_t width;
2672
- uint32_t height;
2666
+ uint32_t width = 0;
2667
+ uint32_t height = 0;
2673
2668
  };
2674
2669
 
2675
2670
  struct Extent3D {
2676
2671
  // NOLINTNEXTLINE(google-explicit-constructor)
2677
2672
  inline operator const WGPUExtent3D&() const noexcept;
2678
2673
 
2679
- uint32_t width;
2674
+ uint32_t width = 0;
2680
2675
  uint32_t height = 1;
2681
2676
  uint32_t depthOrArrayLayers = 1;
2682
2677
  };
@@ -2707,7 +2702,7 @@ struct Future {
2707
2702
  // NOLINTNEXTLINE(google-explicit-constructor)
2708
2703
  inline operator const WGPUFuture&() const noexcept;
2709
2704
 
2710
- uint64_t id;
2705
+ uint64_t id = 0;
2711
2706
  };
2712
2707
 
2713
2708
  struct InstanceLimits {
@@ -2730,7 +2725,7 @@ struct MemoryHeapInfo {
2730
2725
  inline operator const WGPUMemoryHeapInfo&() const noexcept;
2731
2726
 
2732
2727
  HeapProperty properties = HeapProperty::None;
2733
- uint64_t size;
2728
+ uint64_t size = 0;
2734
2729
  };
2735
2730
 
2736
2731
  struct MultisampleState {
@@ -2810,7 +2805,7 @@ struct QuerySetDescriptor {
2810
2805
  ChainedStruct const * nextInChain = nullptr;
2811
2806
  StringView label = {};
2812
2807
  QueryType type = {};
2813
- uint32_t count;
2808
+ uint32_t count = 0;
2814
2809
  };
2815
2810
 
2816
2811
  struct QueueDescriptor {
@@ -2829,18 +2824,16 @@ struct RenderBundleDescriptor {
2829
2824
  StringView label = {};
2830
2825
  };
2831
2826
 
2832
- struct RenderBundleEncoderDescriptor {
2827
+ // Can be chained in RenderBundleEncoderDescriptor
2828
+ struct RenderBundleEncoderResourceTable : ChainedStruct {
2829
+ inline RenderBundleEncoderResourceTable();
2830
+ struct Init;
2831
+ explicit(false) inline RenderBundleEncoderResourceTable(Init&& init);
2833
2832
  // NOLINTNEXTLINE(google-explicit-constructor)
2834
- inline operator const WGPURenderBundleEncoderDescriptor&() const noexcept;
2833
+ inline operator const WGPURenderBundleEncoderResourceTable&() const noexcept;
2835
2834
 
2836
- ChainedStruct const * nextInChain = nullptr;
2837
- StringView label = {};
2838
- size_t colorFormatCount;
2839
- TextureFormat const * colorFormats = nullptr;
2840
- TextureFormat depthStencilFormat = TextureFormat::Undefined;
2841
- uint32_t sampleCount = 1;
2842
- Bool depthReadOnly = false;
2843
- Bool stencilReadOnly = false;
2835
+ static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
2836
+ alignas(kFirstMemberAlignment) Bool usesResourceTable = false;
2844
2837
  };
2845
2838
 
2846
2839
  struct RenderPassDepthStencilAttachment {
@@ -2868,12 +2861,12 @@ struct RenderPassDescriptorResolveRect : ChainedStruct {
2868
2861
  inline operator const WGPURenderPassDescriptorResolveRect&() const noexcept;
2869
2862
 
2870
2863
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint32_t));
2871
- alignas(kFirstMemberAlignment) uint32_t colorOffsetX;
2872
- uint32_t colorOffsetY;
2873
- uint32_t resolveOffsetX;
2874
- uint32_t resolveOffsetY;
2875
- uint32_t width;
2876
- uint32_t height;
2864
+ alignas(kFirstMemberAlignment) uint32_t colorOffsetX = 0;
2865
+ uint32_t colorOffsetY = 0;
2866
+ uint32_t resolveOffsetX = 0;
2867
+ uint32_t resolveOffsetY = 0;
2868
+ uint32_t width = 0;
2869
+ uint32_t height = 0;
2877
2870
  };
2878
2871
 
2879
2872
  // Can be chained in RenderPassDescriptor
@@ -2907,7 +2900,7 @@ struct RequestAdapterWebXROptions : ChainedStruct {
2907
2900
  inline operator const WGPURequestAdapterWebXROptions&() const noexcept;
2908
2901
 
2909
2902
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
2910
- alignas(kFirstMemberAlignment) Bool xrCompatible;
2903
+ alignas(kFirstMemberAlignment) Bool xrCompatible = false;
2911
2904
  };
2912
2905
 
2913
2906
  struct ResourceTableDescriptor {
@@ -2916,7 +2909,7 @@ struct ResourceTableDescriptor {
2916
2909
 
2917
2910
  ChainedStruct const * nextInChain = nullptr;
2918
2911
  StringView label = {};
2919
- uint32_t size;
2912
+ uint32_t size = 0;
2920
2913
  };
2921
2914
 
2922
2915
  struct SamplerBindingLayout {
@@ -2936,7 +2929,7 @@ struct ShaderModuleCompilationOptions : ChainedStruct {
2936
2929
  inline operator const WGPUShaderModuleCompilationOptions&() const noexcept;
2937
2930
 
2938
2931
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
2939
- alignas(kFirstMemberAlignment) Bool strictMath;
2932
+ alignas(kFirstMemberAlignment) Bool strictMath = false;
2940
2933
  };
2941
2934
 
2942
2935
  // Can be chained in ShaderModuleDescriptor
@@ -2948,7 +2941,7 @@ struct ShaderSourceSPIRV : ChainedStruct {
2948
2941
  inline operator const WGPUShaderSourceSPIRV&() const noexcept;
2949
2942
 
2950
2943
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint32_t));
2951
- alignas(kFirstMemberAlignment) uint32_t codeSize;
2944
+ alignas(kFirstMemberAlignment) uint32_t codeSize = 0;
2952
2945
  uint32_t const * code = nullptr;
2953
2946
  };
2954
2947
 
@@ -2969,7 +2962,7 @@ struct SharedBufferMemoryBeginAccessDescriptor {
2969
2962
  inline operator const WGPUSharedBufferMemoryBeginAccessDescriptor&() const noexcept;
2970
2963
 
2971
2964
  ChainedStruct const * nextInChain = nullptr;
2972
- Bool initialized;
2965
+ Bool initialized = false;
2973
2966
  size_t fenceCount = 0;
2974
2967
  SharedFence const * fences = nullptr;
2975
2968
  size_t signaledValueCount = 0;
@@ -2987,7 +2980,7 @@ struct SharedBufferMemoryEndAccessState {
2987
2980
  inline operator const WGPUSharedBufferMemoryEndAccessState&() const noexcept;
2988
2981
 
2989
2982
  ChainedStructOut * nextInChain = nullptr;
2990
- Bool const initialized = {};
2983
+ Bool const initialized = false;
2991
2984
  size_t const fenceCount = 0;
2992
2985
  SharedFence const * const fences = nullptr;
2993
2986
  size_t const signaledValueCount = 0;
@@ -3007,8 +3000,8 @@ struct SharedBufferMemoryFromWindowsHandleDescriptor : ChainedStruct {
3007
3000
  inline operator const WGPUSharedBufferMemoryFromWindowsHandleDescriptor&() const noexcept;
3008
3001
 
3009
3002
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
3010
- alignas(kFirstMemberAlignment) void * handle;
3011
- uint64_t size;
3003
+ alignas(kFirstMemberAlignment) void * handle = nullptr;
3004
+ uint64_t size = 0;
3012
3005
  };
3013
3006
 
3014
3007
  struct SharedBufferMemoryProperties {
@@ -3017,7 +3010,7 @@ struct SharedBufferMemoryProperties {
3017
3010
 
3018
3011
  ChainedStructOut * nextInChain = nullptr;
3019
3012
  BufferUsage usage = BufferUsage::None;
3020
- uint64_t size;
3013
+ uint64_t size = 0;
3021
3014
  };
3022
3015
 
3023
3016
  // Can be chained in SharedFenceDescriptor
@@ -3029,7 +3022,7 @@ struct SharedFenceDXGISharedHandleDescriptor : ChainedStruct {
3029
3022
  inline operator const WGPUSharedFenceDXGISharedHandleDescriptor&() const noexcept;
3030
3023
 
3031
3024
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
3032
- alignas(kFirstMemberAlignment) void * handle;
3025
+ alignas(kFirstMemberAlignment) void * handle = nullptr;
3033
3026
  };
3034
3027
 
3035
3028
  // Can be chained in SharedFenceExportInfo
@@ -3041,7 +3034,7 @@ struct SharedFenceDXGISharedHandleExportInfo : ChainedStructOut {
3041
3034
  inline operator const WGPUSharedFenceDXGISharedHandleExportInfo&() const noexcept;
3042
3035
 
3043
3036
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(void *));
3044
- alignas(kFirstMemberAlignment) void * handle;
3037
+ alignas(kFirstMemberAlignment) void * handle = nullptr;
3045
3038
  };
3046
3039
 
3047
3040
  // Can be chained in SharedFenceDescriptor
@@ -3053,7 +3046,7 @@ struct SharedFenceEGLSyncDescriptor : ChainedStruct {
3053
3046
  inline operator const WGPUSharedFenceEGLSyncDescriptor&() const noexcept;
3054
3047
 
3055
3048
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
3056
- alignas(kFirstMemberAlignment) void * sync;
3049
+ alignas(kFirstMemberAlignment) void * sync = nullptr;
3057
3050
  };
3058
3051
 
3059
3052
  // Can be chained in SharedFenceExportInfo
@@ -3065,7 +3058,7 @@ struct SharedFenceEGLSyncExportInfo : ChainedStructOut {
3065
3058
  inline operator const WGPUSharedFenceEGLSyncExportInfo&() const noexcept;
3066
3059
 
3067
3060
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(void *));
3068
- alignas(kFirstMemberAlignment) void * sync;
3061
+ alignas(kFirstMemberAlignment) void * sync = nullptr;
3069
3062
  };
3070
3063
 
3071
3064
  // Can be chained in SharedFenceDescriptor
@@ -3077,7 +3070,7 @@ struct SharedFenceMTLSharedEventDescriptor : ChainedStruct {
3077
3070
  inline operator const WGPUSharedFenceMTLSharedEventDescriptor&() const noexcept;
3078
3071
 
3079
3072
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
3080
- alignas(kFirstMemberAlignment) void * sharedEvent;
3073
+ alignas(kFirstMemberAlignment) void * sharedEvent = nullptr;
3081
3074
  };
3082
3075
 
3083
3076
  // Can be chained in SharedFenceExportInfo
@@ -3089,7 +3082,7 @@ struct SharedFenceMTLSharedEventExportInfo : ChainedStructOut {
3089
3082
  inline operator const WGPUSharedFenceMTLSharedEventExportInfo&() const noexcept;
3090
3083
 
3091
3084
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(void *));
3092
- alignas(kFirstMemberAlignment) void * sharedEvent;
3085
+ alignas(kFirstMemberAlignment) void * sharedEvent = nullptr;
3093
3086
  };
3094
3087
 
3095
3088
  // Can be chained in SharedFenceDescriptor
@@ -3101,7 +3094,7 @@ struct SharedFenceSyncFDDescriptor : ChainedStruct {
3101
3094
  inline operator const WGPUSharedFenceSyncFDDescriptor&() const noexcept;
3102
3095
 
3103
3096
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(int));
3104
- alignas(kFirstMemberAlignment) int handle;
3097
+ alignas(kFirstMemberAlignment) int handle = 0;
3105
3098
  };
3106
3099
 
3107
3100
  // Can be chained in SharedFenceExportInfo
@@ -3113,7 +3106,7 @@ struct SharedFenceSyncFDExportInfo : ChainedStructOut {
3113
3106
  inline operator const WGPUSharedFenceSyncFDExportInfo&() const noexcept;
3114
3107
 
3115
3108
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(int));
3116
- alignas(kFirstMemberAlignment) int handle;
3109
+ alignas(kFirstMemberAlignment) int handle = 0;
3117
3110
  };
3118
3111
 
3119
3112
  // Can be chained in SharedFenceDescriptor
@@ -3125,7 +3118,7 @@ struct SharedFenceVkSemaphoreOpaqueFDDescriptor : ChainedStruct {
3125
3118
  inline operator const WGPUSharedFenceVkSemaphoreOpaqueFDDescriptor&() const noexcept;
3126
3119
 
3127
3120
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(int));
3128
- alignas(kFirstMemberAlignment) int handle;
3121
+ alignas(kFirstMemberAlignment) int handle = 0;
3129
3122
  };
3130
3123
 
3131
3124
  // Can be chained in SharedFenceExportInfo
@@ -3137,7 +3130,7 @@ struct SharedFenceVkSemaphoreOpaqueFDExportInfo : ChainedStructOut {
3137
3130
  inline operator const WGPUSharedFenceVkSemaphoreOpaqueFDExportInfo&() const noexcept;
3138
3131
 
3139
3132
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(int));
3140
- alignas(kFirstMemberAlignment) int handle;
3133
+ alignas(kFirstMemberAlignment) int handle = 0;
3141
3134
  };
3142
3135
 
3143
3136
  // Can be chained in SharedFenceDescriptor
@@ -3149,7 +3142,7 @@ struct SharedFenceVkSemaphoreZirconHandleDescriptor : ChainedStruct {
3149
3142
  inline operator const WGPUSharedFenceVkSemaphoreZirconHandleDescriptor&() const noexcept;
3150
3143
 
3151
3144
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint32_t));
3152
- alignas(kFirstMemberAlignment) uint32_t handle;
3145
+ alignas(kFirstMemberAlignment) uint32_t handle = 0;
3153
3146
  };
3154
3147
 
3155
3148
  // Can be chained in SharedFenceExportInfo
@@ -3161,7 +3154,7 @@ struct SharedFenceVkSemaphoreZirconHandleExportInfo : ChainedStructOut {
3161
3154
  inline operator const WGPUSharedFenceVkSemaphoreZirconHandleExportInfo&() const noexcept;
3162
3155
 
3163
3156
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(uint32_t));
3164
- alignas(kFirstMemberAlignment) uint32_t handle;
3157
+ alignas(kFirstMemberAlignment) uint32_t handle = 0;
3165
3158
  };
3166
3159
 
3167
3160
  // Can be chained in SharedTextureMemoryDescriptor
@@ -3173,7 +3166,7 @@ struct SharedTextureMemoryAHardwareBufferDescriptor : ChainedStruct {
3173
3166
  inline operator const WGPUSharedTextureMemoryAHardwareBufferDescriptor&() const noexcept;
3174
3167
 
3175
3168
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
3176
- alignas(kFirstMemberAlignment) void * handle;
3169
+ alignas(kFirstMemberAlignment) void * handle = nullptr;
3177
3170
  };
3178
3171
 
3179
3172
  // Can be chained in SharedTextureMemoryBeginAccessDescriptor
@@ -3204,9 +3197,9 @@ struct SharedTextureMemoryDmaBufPlane {
3204
3197
  // NOLINTNEXTLINE(google-explicit-constructor)
3205
3198
  inline operator const WGPUSharedTextureMemoryDmaBufPlane&() const noexcept;
3206
3199
 
3207
- int fd;
3208
- uint64_t offset;
3209
- uint32_t stride;
3200
+ int fd = 0;
3201
+ uint64_t offset = 0;
3202
+ uint32_t stride = 0;
3210
3203
  };
3211
3204
 
3212
3205
  // Can be chained in SharedTextureMemoryDescriptor
@@ -3218,8 +3211,8 @@ struct SharedTextureMemoryDXGISharedHandleDescriptor : ChainedStruct {
3218
3211
  inline operator const WGPUSharedTextureMemoryDXGISharedHandleDescriptor&() const noexcept;
3219
3212
 
3220
3213
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
3221
- alignas(kFirstMemberAlignment) void * handle;
3222
- Bool useKeyedMutex;
3214
+ alignas(kFirstMemberAlignment) void * handle = nullptr;
3215
+ Bool useKeyedMutex = false;
3223
3216
  };
3224
3217
 
3225
3218
  // Can be chained in SharedTextureMemoryDescriptor
@@ -3231,7 +3224,7 @@ struct SharedTextureMemoryEGLImageDescriptor : ChainedStruct {
3231
3224
  inline operator const WGPUSharedTextureMemoryEGLImageDescriptor&() const noexcept;
3232
3225
 
3233
3226
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
3234
- alignas(kFirstMemberAlignment) void * image;
3227
+ alignas(kFirstMemberAlignment) void * image = nullptr;
3235
3228
  };
3236
3229
 
3237
3230
  // Can be chained in SharedTextureMemoryDescriptor
@@ -3243,7 +3236,7 @@ struct SharedTextureMemoryIOSurfaceDescriptor : ChainedStruct {
3243
3236
  inline operator const WGPUSharedTextureMemoryIOSurfaceDescriptor&() const noexcept;
3244
3237
 
3245
3238
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
3246
- alignas(kFirstMemberAlignment) void * ioSurface;
3239
+ alignas(kFirstMemberAlignment) void * ioSurface = nullptr;
3247
3240
  Bool allowStorageBinding = true;
3248
3241
  };
3249
3242
 
@@ -3256,11 +3249,11 @@ struct SharedTextureMemoryOpaqueFDDescriptor : ChainedStruct {
3256
3249
  inline operator const WGPUSharedTextureMemoryOpaqueFDDescriptor&() const noexcept;
3257
3250
 
3258
3251
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void const *));
3259
- alignas(kFirstMemberAlignment) void const * vkImageCreateInfo;
3260
- int memoryFD;
3261
- uint32_t memoryTypeIndex;
3262
- uint64_t allocationSize;
3263
- Bool dedicatedAllocation;
3252
+ alignas(kFirstMemberAlignment) void const * vkImageCreateInfo = nullptr;
3253
+ int memoryFD = 0;
3254
+ uint32_t memoryTypeIndex = 0;
3255
+ uint64_t allocationSize = 0;
3256
+ Bool dedicatedAllocation = false;
3264
3257
  };
3265
3258
 
3266
3259
  // Can be chained in SharedTextureMemoryDescriptor
@@ -3272,7 +3265,7 @@ struct SharedTextureMemoryVkDedicatedAllocationDescriptor : ChainedStruct {
3272
3265
  inline operator const WGPUSharedTextureMemoryVkDedicatedAllocationDescriptor&() const noexcept;
3273
3266
 
3274
3267
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
3275
- alignas(kFirstMemberAlignment) Bool dedicatedAllocation;
3268
+ alignas(kFirstMemberAlignment) Bool dedicatedAllocation = false;
3276
3269
  };
3277
3270
 
3278
3271
  // Can be chained in SharedTextureMemoryBeginAccessDescriptor
@@ -3284,8 +3277,8 @@ struct SharedTextureMemoryVkImageLayoutBeginState : ChainedStruct {
3284
3277
  inline operator const WGPUSharedTextureMemoryVkImageLayoutBeginState&() const noexcept;
3285
3278
 
3286
3279
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(int32_t));
3287
- alignas(kFirstMemberAlignment) int32_t oldLayout;
3288
- int32_t newLayout;
3280
+ alignas(kFirstMemberAlignment) int32_t oldLayout = 0;
3281
+ int32_t newLayout = 0;
3289
3282
  };
3290
3283
 
3291
3284
  // Can be chained in SharedTextureMemoryEndAccessState
@@ -3297,8 +3290,8 @@ struct SharedTextureMemoryVkImageLayoutEndState : ChainedStructOut {
3297
3290
  inline operator const WGPUSharedTextureMemoryVkImageLayoutEndState&() const noexcept;
3298
3291
 
3299
3292
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(int32_t));
3300
- alignas(kFirstMemberAlignment) int32_t oldLayout;
3301
- int32_t newLayout;
3293
+ alignas(kFirstMemberAlignment) int32_t oldLayout = 0;
3294
+ int32_t newLayout = 0;
3302
3295
  };
3303
3296
 
3304
3297
  // Can be chained in SharedTextureMemoryDescriptor
@@ -3310,8 +3303,8 @@ struct SharedTextureMemoryZirconHandleDescriptor : ChainedStruct {
3310
3303
  inline operator const WGPUSharedTextureMemoryZirconHandleDescriptor&() const noexcept;
3311
3304
 
3312
3305
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint32_t));
3313
- alignas(kFirstMemberAlignment) uint32_t memoryFD;
3314
- uint64_t allocationSize;
3306
+ alignas(kFirstMemberAlignment) uint32_t memoryFD = 0;
3307
+ uint64_t allocationSize = 0;
3315
3308
  };
3316
3309
 
3317
3310
  // Can be chained in BindGroupLayoutEntry
@@ -3353,9 +3346,9 @@ struct SubgroupMatrixConfig {
3353
3346
 
3354
3347
  SubgroupMatrixComponentType componentType = {};
3355
3348
  SubgroupMatrixComponentType resultComponentType = {};
3356
- uint32_t M;
3357
- uint32_t N;
3358
- uint32_t K;
3349
+ uint32_t M = 0;
3350
+ uint32_t N = 0;
3351
+ uint32_t K = 0;
3359
3352
  };
3360
3353
 
3361
3354
  struct SupportedFeatures {
@@ -3368,7 +3361,7 @@ struct SupportedFeatures {
3368
3361
  // NOLINTNEXTLINE(google-explicit-constructor)
3369
3362
  inline operator const WGPUSupportedFeatures&() const noexcept;
3370
3363
 
3371
- size_t const featureCount = {};
3364
+ size_t const featureCount = 0;
3372
3365
  FeatureName const * const features = nullptr;
3373
3366
 
3374
3367
  private:
@@ -3386,7 +3379,7 @@ struct SupportedInstanceFeatures {
3386
3379
  // NOLINTNEXTLINE(google-explicit-constructor)
3387
3380
  inline operator const WGPUSupportedInstanceFeatures&() const noexcept;
3388
3381
 
3389
- size_t const featureCount = {};
3382
+ size_t const featureCount = 0;
3390
3383
  InstanceFeatureName const * const features = nullptr;
3391
3384
 
3392
3385
  private:
@@ -3404,7 +3397,7 @@ struct SupportedWGSLLanguageFeatures {
3404
3397
  // NOLINTNEXTLINE(google-explicit-constructor)
3405
3398
  inline operator const WGPUSupportedWGSLLanguageFeatures&() const noexcept;
3406
3399
 
3407
- size_t const featureCount = {};
3400
+ size_t const featureCount = 0;
3408
3401
  WGSLLanguageFeatureName const * const features = nullptr;
3409
3402
 
3410
3403
  private:
@@ -3424,11 +3417,11 @@ struct SurfaceCapabilities {
3424
3417
 
3425
3418
  ChainedStructOut * nextInChain = nullptr;
3426
3419
  TextureUsage const usages = TextureUsage::None;
3427
- size_t const formatCount = {};
3420
+ size_t const formatCount = 0;
3428
3421
  TextureFormat const * const formats = nullptr;
3429
- size_t const presentModeCount = {};
3422
+ size_t const presentModeCount = 0;
3430
3423
  PresentMode const * const presentModes = nullptr;
3431
- size_t const alphaModeCount = {};
3424
+ size_t const alphaModeCount = 0;
3432
3425
  CompositeAlphaMode const * const alphaModes = nullptr;
3433
3426
 
3434
3427
  private:
@@ -3457,8 +3450,8 @@ struct SurfaceConfiguration {
3457
3450
  Device device = nullptr;
3458
3451
  TextureFormat format = TextureFormat::Undefined;
3459
3452
  TextureUsage usage = TextureUsage::RenderAttachment;
3460
- uint32_t width;
3461
- uint32_t height;
3453
+ uint32_t width = 0;
3454
+ uint32_t height = 0;
3462
3455
  size_t viewFormatCount = 0;
3463
3456
  TextureFormat const * viewFormats = nullptr;
3464
3457
  CompositeAlphaMode alphaMode = CompositeAlphaMode::Auto;
@@ -3510,7 +3503,7 @@ struct SurfaceSourceAndroidNativeWindow : ChainedStruct {
3510
3503
  inline operator const WGPUSurfaceSourceAndroidNativeWindow&() const noexcept;
3511
3504
 
3512
3505
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
3513
- alignas(kFirstMemberAlignment) void * window;
3506
+ alignas(kFirstMemberAlignment) void * window = nullptr;
3514
3507
  };
3515
3508
 
3516
3509
  // Can be chained in SurfaceDescriptor
@@ -3561,7 +3554,7 @@ struct SurfaceSourceXCBWindow : ChainedStruct {
3561
3554
 
3562
3555
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
3563
3556
  alignas(kFirstMemberAlignment) void * connection = nullptr;
3564
- uint32_t window;
3557
+ uint32_t window = 0;
3565
3558
  };
3566
3559
 
3567
3560
  // Can be chained in SurfaceDescriptor
@@ -3574,7 +3567,7 @@ struct SurfaceSourceXlibWindow : ChainedStruct {
3574
3567
 
3575
3568
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
3576
3569
  alignas(kFirstMemberAlignment) void * display = nullptr;
3577
- uint64_t window;
3570
+ uint64_t window = 0;
3578
3571
  };
3579
3572
 
3580
3573
  struct SurfaceTexture {
@@ -3669,8 +3662,8 @@ struct VertexAttribute {
3669
3662
 
3670
3663
  ChainedStruct const * nextInChain = nullptr;
3671
3664
  VertexFormat format = {};
3672
- uint64_t offset;
3673
- uint32_t shaderLocation;
3665
+ uint64_t offset = 0;
3666
+ uint32_t shaderLocation = 0;
3674
3667
  };
3675
3668
 
3676
3669
  // Can be chained in SamplerDescriptor
@@ -3711,7 +3704,7 @@ struct AdapterPropertiesMemoryHeaps : ChainedStructOut {
3711
3704
  inline operator const WGPUAdapterPropertiesMemoryHeaps&() const noexcept;
3712
3705
 
3713
3706
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(size_t));
3714
- alignas(kFirstMemberAlignment) size_t const heapCount = {};
3707
+ alignas(kFirstMemberAlignment) size_t const heapCount = 0;
3715
3708
  MemoryHeapInfo const * const heapInfo = nullptr;
3716
3709
 
3717
3710
  private:
@@ -3733,7 +3726,7 @@ struct AdapterPropertiesSubgroupMatrixConfigs : ChainedStructOut {
3733
3726
  inline operator const WGPUAdapterPropertiesSubgroupMatrixConfigs&() const noexcept;
3734
3727
 
3735
3728
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(size_t));
3736
- alignas(kFirstMemberAlignment) size_t const configCount = {};
3729
+ alignas(kFirstMemberAlignment) size_t const configCount = 0;
3737
3730
  SubgroupMatrixConfig const * const configs = nullptr;
3738
3731
 
3739
3732
  private:
@@ -3753,7 +3746,7 @@ struct BindGroupEntry {
3753
3746
  inline operator const WGPUBindGroupEntry&() const noexcept;
3754
3747
 
3755
3748
  ChainedStruct const * nextInChain = nullptr;
3756
- uint32_t binding;
3749
+ uint32_t binding = 0;
3757
3750
  Buffer buffer = nullptr;
3758
3751
  uint64_t offset = 0;
3759
3752
  uint64_t size = kWholeSize;
@@ -3766,7 +3759,7 @@ struct BindGroupLayoutEntry {
3766
3759
  inline operator const WGPUBindGroupLayoutEntry&() const noexcept;
3767
3760
 
3768
3761
  ChainedStruct const * nextInChain = nullptr;
3769
- uint32_t binding;
3762
+ uint32_t binding = 0;
3770
3763
  ShaderStage visibility = ShaderStage::None;
3771
3764
  uint32_t bindingArraySize = 0;
3772
3765
  BufferBindingLayout buffer = { nullptr, BufferBindingType::BindingNotUsed, false, 0 };
@@ -3790,7 +3783,7 @@ struct BufferDescriptor {
3790
3783
  ChainedStruct const * nextInChain = nullptr;
3791
3784
  StringView label = {};
3792
3785
  BufferUsage usage = BufferUsage::None;
3793
- uint64_t size;
3786
+ uint64_t size = 0;
3794
3787
  Bool mappedAtCreation = false;
3795
3788
  };
3796
3789
 
@@ -3809,10 +3802,10 @@ struct CompilationMessage {
3809
3802
  ChainedStruct const * nextInChain = nullptr;
3810
3803
  StringView message = {};
3811
3804
  CompilationMessageType type = {};
3812
- uint64_t lineNum;
3813
- uint64_t linePos;
3814
- uint64_t offset;
3815
- uint64_t length;
3805
+ uint64_t lineNum = 0;
3806
+ uint64_t linePos = 0;
3807
+ uint64_t offset = 0;
3808
+ uint64_t length = 0;
3816
3809
  };
3817
3810
 
3818
3811
  struct ComputePassDescriptor {
@@ -3849,7 +3842,7 @@ struct DawnDrmFormatCapabilities : ChainedStructOut {
3849
3842
  inline operator const WGPUDawnDrmFormatCapabilities&() const noexcept;
3850
3843
 
3851
3844
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(size_t));
3852
- alignas(kFirstMemberAlignment) size_t const propertiesCount = {};
3845
+ alignas(kFirstMemberAlignment) size_t const propertiesCount = 0;
3853
3846
  DawnDrmFormatProperties const * const properties = nullptr;
3854
3847
 
3855
3848
  private:
@@ -3970,11 +3963,25 @@ struct PipelineLayoutPixelLocalStorage : ChainedStruct {
3970
3963
  inline operator const WGPUPipelineLayoutPixelLocalStorage&() const noexcept;
3971
3964
 
3972
3965
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint64_t));
3973
- alignas(kFirstMemberAlignment) uint64_t totalPixelLocalStorageSize;
3966
+ alignas(kFirstMemberAlignment) uint64_t totalPixelLocalStorageSize = 0;
3974
3967
  size_t storageAttachmentCount = 0;
3975
3968
  PipelineLayoutStorageAttachment const * storageAttachments = nullptr;
3976
3969
  };
3977
3970
 
3971
+ struct RenderBundleEncoderDescriptor {
3972
+ // NOLINTNEXTLINE(google-explicit-constructor)
3973
+ inline operator const WGPURenderBundleEncoderDescriptor&() const noexcept;
3974
+
3975
+ ChainedStruct const * nextInChain = nullptr;
3976
+ StringView label = {};
3977
+ size_t colorFormatCount = 0;
3978
+ TextureFormat const * colorFormats = nullptr;
3979
+ TextureFormat depthStencilFormat = TextureFormat::Undefined;
3980
+ uint32_t sampleCount = 1;
3981
+ Bool depthReadOnly = false;
3982
+ Bool stencilReadOnly = false;
3983
+ };
3984
+
3978
3985
  struct RenderPassColorAttachment {
3979
3986
  // NOLINTNEXTLINE(google-explicit-constructor)
3980
3987
  inline operator const WGPURenderPassColorAttachment&() const noexcept;
@@ -4092,9 +4099,9 @@ struct SharedTextureMemoryBeginAccessDescriptor {
4092
4099
  inline operator const WGPUSharedTextureMemoryBeginAccessDescriptor&() const noexcept;
4093
4100
 
4094
4101
  ChainedStruct const * nextInChain = nullptr;
4095
- Bool concurrentRead;
4096
- Bool initialized;
4097
- size_t fenceCount;
4102
+ Bool concurrentRead = false;
4103
+ Bool initialized = false;
4104
+ size_t fenceCount = 0;
4098
4105
  SharedFence const * fences = nullptr;
4099
4106
  size_t signaledValueCount = 0;
4100
4107
  uint64_t const * signaledValues = nullptr;
@@ -4110,9 +4117,9 @@ struct SharedTextureMemoryDmaBufDescriptor : ChainedStruct {
4110
4117
 
4111
4118
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Extent3D));
4112
4119
  alignas(kFirstMemberAlignment) Extent3D size = {};
4113
- uint32_t drmFormat;
4114
- uint64_t drmModifier;
4115
- size_t planeCount;
4120
+ uint32_t drmFormat = 0;
4121
+ uint64_t drmModifier = 0;
4122
+ size_t planeCount = 0;
4116
4123
  SharedTextureMemoryDmaBufPlane const * planes = nullptr;
4117
4124
  };
4118
4125
 
@@ -4188,8 +4195,8 @@ struct VertexBufferLayout {
4188
4195
 
4189
4196
  ChainedStruct const * nextInChain = nullptr;
4190
4197
  VertexStepMode stepMode = VertexStepMode::Undefined;
4191
- uint64_t arrayStride;
4192
- size_t attributeCount;
4198
+ uint64_t arrayStride = 0;
4199
+ size_t attributeCount = 0;
4193
4200
  VertexAttribute const * attributes = nullptr;
4194
4201
  };
4195
4202
 
@@ -4210,10 +4217,10 @@ struct AdapterInfo {
4210
4217
  StringView const description = {};
4211
4218
  BackendType const backendType = BackendType::Undefined;
4212
4219
  AdapterType const adapterType = {};
4213
- uint32_t const vendorID = {};
4214
- uint32_t const deviceID = {};
4215
- uint32_t const subgroupMinSize = {};
4216
- uint32_t const subgroupMaxSize = {};
4220
+ uint32_t const vendorID = 0;
4221
+ uint32_t const deviceID = 0;
4222
+ uint32_t const subgroupMinSize = 0;
4223
+ uint32_t const subgroupMaxSize = 0;
4217
4224
 
4218
4225
  private:
4219
4226
  inline void FreeMembers();
@@ -4256,7 +4263,7 @@ struct CompilationInfo {
4256
4263
  inline operator const WGPUCompilationInfo&() const noexcept;
4257
4264
 
4258
4265
  ChainedStruct const * nextInChain = nullptr;
4259
- size_t messageCount;
4266
+ size_t messageCount = 0;
4260
4267
  CompilationMessage const * messages = nullptr;
4261
4268
  };
4262
4269
 
@@ -4319,7 +4326,7 @@ struct PipelineLayoutDescriptor {
4319
4326
 
4320
4327
  ChainedStruct const * nextInChain = nullptr;
4321
4328
  StringView label = {};
4322
- size_t bindGroupLayoutCount;
4329
+ size_t bindGroupLayoutCount = 0;
4323
4330
  BindGroupLayout const * bindGroupLayouts = nullptr;
4324
4331
  uint32_t immediateSize = 0;
4325
4332
  };
@@ -4333,7 +4340,7 @@ struct RenderPassPixelLocalStorage : ChainedStruct {
4333
4340
  inline operator const WGPURenderPassPixelLocalStorage&() const noexcept;
4334
4341
 
4335
4342
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint64_t));
4336
- alignas(kFirstMemberAlignment) uint64_t totalPixelLocalStorageSize;
4343
+ alignas(kFirstMemberAlignment) uint64_t totalPixelLocalStorageSize = 0;
4337
4344
  size_t storageAttachmentCount = 0;
4338
4345
  RenderPassStorageAttachment const * storageAttachments = nullptr;
4339
4346
  };
@@ -4357,8 +4364,8 @@ struct SharedTextureMemoryEndAccessState {
4357
4364
  inline operator const WGPUSharedTextureMemoryEndAccessState&() const noexcept;
4358
4365
 
4359
4366
  ChainedStructOut * nextInChain = nullptr;
4360
- Bool const initialized = {};
4361
- size_t const fenceCount = {};
4367
+ Bool const initialized = false;
4368
+ size_t const fenceCount = 0;
4362
4369
  SharedFence const * const fences = nullptr;
4363
4370
  size_t const signaledValueCount = 0;
4364
4371
  uint64_t const * const signaledValues = nullptr;
@@ -4416,7 +4423,7 @@ struct FragmentState {
4416
4423
  StringView entryPoint = {};
4417
4424
  size_t constantCount = 0;
4418
4425
  ConstantEntry const * constants = nullptr;
4419
- size_t targetCount;
4426
+ size_t targetCount = 0;
4420
4427
  ColorTargetState const * targets = nullptr;
4421
4428
  };
4422
4429
 
@@ -4426,7 +4433,7 @@ struct RenderPassDescriptor {
4426
4433
 
4427
4434
  ChainedStruct const * nextInChain = nullptr;
4428
4435
  StringView label = {};
4429
- size_t colorAttachmentCount;
4436
+ size_t colorAttachmentCount = 0;
4430
4437
  RenderPassColorAttachment const * colorAttachments = nullptr;
4431
4438
  RenderPassDepthStencilAttachment const * depthStencilAttachment = nullptr;
4432
4439
  QuerySet occlusionQuerySet = nullptr;
@@ -4784,8 +4791,8 @@ struct CallbackInfoHelper {
4784
4791
  AdapterPropertiesD3D::AdapterPropertiesD3D()
4785
4792
  : ChainedStructOut { nullptr, SType::AdapterPropertiesD3D } {}
4786
4793
  struct AdapterPropertiesD3D::Init {
4787
- ChainedStructOut * nextInChain;
4788
- uint32_t shaderModel;
4794
+ ChainedStructOut * nextInChain = nullptr;
4795
+ uint32_t shaderModel = 0;
4789
4796
  };
4790
4797
  AdapterPropertiesD3D::AdapterPropertiesD3D(AdapterPropertiesD3D::Init&& init) :
4791
4798
  ChainedStructOut { init.nextInChain, SType::AdapterPropertiesD3D },
@@ -4804,7 +4811,7 @@ static_assert(offsetof(AdapterPropertiesD3D, shaderModel) == offsetof(WGPUAdapte
4804
4811
  AdapterPropertiesDrm::AdapterPropertiesDrm()
4805
4812
  : ChainedStructOut { nullptr, SType::AdapterPropertiesDrm } {}
4806
4813
  struct AdapterPropertiesDrm::Init {
4807
- ChainedStructOut * nextInChain;
4814
+ ChainedStructOut * nextInChain = nullptr;
4808
4815
  Bool hasPrimary = false;
4809
4816
  Bool hasRender = false;
4810
4817
  uint64_t primaryMajor = 0;
@@ -4844,8 +4851,8 @@ static_assert(offsetof(AdapterPropertiesDrm, renderMinor) == offsetof(WGPUAdapte
4844
4851
  AdapterPropertiesVk::AdapterPropertiesVk()
4845
4852
  : ChainedStructOut { nullptr, SType::AdapterPropertiesVk } {}
4846
4853
  struct AdapterPropertiesVk::Init {
4847
- ChainedStructOut * nextInChain;
4848
- uint32_t driverVersion;
4854
+ ChainedStructOut * nextInChain = nullptr;
4855
+ uint32_t driverVersion = 0;
4849
4856
  };
4850
4857
  AdapterPropertiesVk::AdapterPropertiesVk(AdapterPropertiesVk::Init&& init) :
4851
4858
  ChainedStructOut { init.nextInChain, SType::AdapterPropertiesVk },
@@ -4864,7 +4871,7 @@ static_assert(offsetof(AdapterPropertiesVk, driverVersion) == offsetof(WGPUAdapt
4864
4871
  AdapterPropertiesWGPU::AdapterPropertiesWGPU()
4865
4872
  : ChainedStructOut { nullptr, SType::AdapterPropertiesWGPU } {}
4866
4873
  struct AdapterPropertiesWGPU::Init {
4867
- ChainedStructOut * nextInChain;
4874
+ ChainedStructOut * nextInChain = nullptr;
4868
4875
  BackendType backendType = BackendType::Undefined;
4869
4876
  };
4870
4877
  AdapterPropertiesWGPU::AdapterPropertiesWGPU(AdapterPropertiesWGPU::Init&& init) :
@@ -4937,10 +4944,10 @@ static_assert(offsetof(BufferBindingLayout, minBindingSize) == offsetof(WGPUBuff
4937
4944
  BufferHostMappedPointer::BufferHostMappedPointer()
4938
4945
  : ChainedStruct { nullptr, SType::BufferHostMappedPointer } {}
4939
4946
  struct BufferHostMappedPointer::Init {
4940
- ChainedStruct * const nextInChain;
4941
- void * pointer;
4942
- Callback disposeCallback;
4943
- void * userdata;
4947
+ ChainedStruct * const nextInChain = nullptr;
4948
+ void * pointer = nullptr;
4949
+ Callback disposeCallback = {};
4950
+ void * userdata = nullptr;
4944
4951
  };
4945
4952
  BufferHostMappedPointer::BufferHostMappedPointer(BufferHostMappedPointer::Init&& init) :
4946
4953
  ChainedStruct { init.nextInChain, SType::BufferHostMappedPointer },
@@ -5003,7 +5010,7 @@ static_assert(offsetof(ColorSpaceDawn, hdrReferenceWhiteLuminance) == offsetof(W
5003
5010
  ColorTargetStateExpandResolveTextureDawn::ColorTargetStateExpandResolveTextureDawn()
5004
5011
  : ChainedStruct { nullptr, SType::ColorTargetStateExpandResolveTextureDawn } {}
5005
5012
  struct ColorTargetStateExpandResolveTextureDawn::Init {
5006
- ChainedStruct * const nextInChain;
5013
+ ChainedStruct * const nextInChain = nullptr;
5007
5014
  Bool enabled = false;
5008
5015
  };
5009
5016
  ColorTargetStateExpandResolveTextureDawn::ColorTargetStateExpandResolveTextureDawn(ColorTargetStateExpandResolveTextureDawn::Init&& init) :
@@ -5036,7 +5043,7 @@ static_assert(offsetof(CommandBufferDescriptor, label) == offsetof(WGPUCommandBu
5036
5043
  CompatibilityModeLimits::CompatibilityModeLimits()
5037
5044
  : ChainedStructOut { nullptr, SType::CompatibilityModeLimits } {}
5038
5045
  struct CompatibilityModeLimits::Init {
5039
- ChainedStructOut * nextInChain;
5046
+ ChainedStructOut * nextInChain = nullptr;
5040
5047
  uint32_t maxStorageBuffersInVertexStage = kLimitU32Undefined;
5041
5048
  uint32_t maxStorageTexturesInVertexStage = kLimitU32Undefined;
5042
5049
  uint32_t maxStorageBuffersInFragmentStage = kLimitU32Undefined;
@@ -5110,7 +5117,7 @@ static_assert(offsetof(CopyTextureForBrowserOptions, internalUsage) == offsetof(
5110
5117
  DawnAdapterPropertiesPowerPreference::DawnAdapterPropertiesPowerPreference()
5111
5118
  : ChainedStructOut { nullptr, SType::DawnAdapterPropertiesPowerPreference } {}
5112
5119
  struct DawnAdapterPropertiesPowerPreference::Init {
5113
- ChainedStructOut * nextInChain;
5120
+ ChainedStructOut * nextInChain = nullptr;
5114
5121
  PowerPreference powerPreference = PowerPreference::Undefined;
5115
5122
  };
5116
5123
  DawnAdapterPropertiesPowerPreference::DawnAdapterPropertiesPowerPreference(DawnAdapterPropertiesPowerPreference::Init&& init) :
@@ -5130,7 +5137,7 @@ static_assert(offsetof(DawnAdapterPropertiesPowerPreference, powerPreference) ==
5130
5137
  DawnBufferDescriptorErrorInfoFromWireClient::DawnBufferDescriptorErrorInfoFromWireClient()
5131
5138
  : ChainedStruct { nullptr, SType::DawnBufferDescriptorErrorInfoFromWireClient } {}
5132
5139
  struct DawnBufferDescriptorErrorInfoFromWireClient::Init {
5133
- ChainedStruct * const nextInChain;
5140
+ ChainedStruct * const nextInChain = nullptr;
5134
5141
  Bool outOfMemory = false;
5135
5142
  };
5136
5143
  DawnBufferDescriptorErrorInfoFromWireClient::DawnBufferDescriptorErrorInfoFromWireClient(DawnBufferDescriptorErrorInfoFromWireClient::Init&& init) :
@@ -5150,7 +5157,7 @@ static_assert(offsetof(DawnBufferDescriptorErrorInfoFromWireClient, outOfMemory)
5150
5157
  DawnCacheDeviceDescriptor::DawnCacheDeviceDescriptor()
5151
5158
  : ChainedStruct { nullptr, SType::DawnCacheDeviceDescriptor } {}
5152
5159
  struct DawnCacheDeviceDescriptor::Init {
5153
- ChainedStruct * const nextInChain;
5160
+ ChainedStruct * const nextInChain = nullptr;
5154
5161
  StringView isolationKey = {};
5155
5162
  };
5156
5163
  DawnCacheDeviceDescriptor::DawnCacheDeviceDescriptor(DawnCacheDeviceDescriptor::Init&& init) :
@@ -5198,10 +5205,10 @@ static_assert(offsetof(DawnCacheDeviceDescriptor, isolationKey) == offsetof(WGPU
5198
5205
  DawnCompilationMessageUtf16::DawnCompilationMessageUtf16()
5199
5206
  : ChainedStruct { nullptr, SType::DawnCompilationMessageUtf16 } {}
5200
5207
  struct DawnCompilationMessageUtf16::Init {
5201
- ChainedStruct * const nextInChain;
5202
- uint64_t linePos;
5203
- uint64_t offset;
5204
- uint64_t length;
5208
+ ChainedStruct * const nextInChain = nullptr;
5209
+ uint64_t linePos = 0;
5210
+ uint64_t offset = 0;
5211
+ uint64_t length = 0;
5205
5212
  };
5206
5213
  DawnCompilationMessageUtf16::DawnCompilationMessageUtf16(DawnCompilationMessageUtf16::Init&& init) :
5207
5214
  ChainedStruct { init.nextInChain, SType::DawnCompilationMessageUtf16 },
@@ -5226,7 +5233,7 @@ static_assert(offsetof(DawnCompilationMessageUtf16, length) == offsetof(WGPUDawn
5226
5233
  DawnConsumeAdapterDescriptor::DawnConsumeAdapterDescriptor()
5227
5234
  : ChainedStruct { nullptr, SType::DawnConsumeAdapterDescriptor } {}
5228
5235
  struct DawnConsumeAdapterDescriptor::Init {
5229
- ChainedStruct * const nextInChain;
5236
+ ChainedStruct * const nextInChain = nullptr;
5230
5237
  Bool consumeAdapter = false;
5231
5238
  };
5232
5239
  DawnConsumeAdapterDescriptor::DawnConsumeAdapterDescriptor(DawnConsumeAdapterDescriptor::Init&& init) :
@@ -5246,7 +5253,7 @@ static_assert(offsetof(DawnConsumeAdapterDescriptor, consumeAdapter) == offsetof
5246
5253
  DawnDeviceAllocatorControl::DawnDeviceAllocatorControl()
5247
5254
  : ChainedStruct { nullptr, SType::DawnDeviceAllocatorControl } {}
5248
5255
  struct DawnDeviceAllocatorControl::Init {
5249
- ChainedStruct * const nextInChain;
5256
+ ChainedStruct * const nextInChain = nullptr;
5250
5257
  size_t allocatorHeapBlockSize = 0;
5251
5258
  };
5252
5259
  DawnDeviceAllocatorControl::DawnDeviceAllocatorControl(DawnDeviceAllocatorControl::Init&& init) :
@@ -5279,7 +5286,7 @@ static_assert(offsetof(DawnDrmFormatProperties, modifierPlaneCount) == offsetof(
5279
5286
  DawnEncoderInternalUsageDescriptor::DawnEncoderInternalUsageDescriptor()
5280
5287
  : ChainedStruct { nullptr, SType::DawnEncoderInternalUsageDescriptor } {}
5281
5288
  struct DawnEncoderInternalUsageDescriptor::Init {
5282
- ChainedStruct * const nextInChain;
5289
+ ChainedStruct * const nextInChain = nullptr;
5283
5290
  Bool useInternalUsages = false;
5284
5291
  };
5285
5292
  DawnEncoderInternalUsageDescriptor::DawnEncoderInternalUsageDescriptor(DawnEncoderInternalUsageDescriptor::Init&& init) :
@@ -5299,10 +5306,10 @@ static_assert(offsetof(DawnEncoderInternalUsageDescriptor, useInternalUsages) ==
5299
5306
  DawnFakeBufferOOMForTesting::DawnFakeBufferOOMForTesting()
5300
5307
  : ChainedStruct { nullptr, SType::DawnFakeBufferOOMForTesting } {}
5301
5308
  struct DawnFakeBufferOOMForTesting::Init {
5302
- ChainedStruct * const nextInChain;
5303
- Bool fakeOOMAtWireClientMap;
5304
- Bool fakeOOMAtNativeMap;
5305
- Bool fakeOOMAtDevice;
5309
+ ChainedStruct * const nextInChain = nullptr;
5310
+ Bool fakeOOMAtWireClientMap = false;
5311
+ Bool fakeOOMAtNativeMap = false;
5312
+ Bool fakeOOMAtDevice = false;
5306
5313
  };
5307
5314
  DawnFakeBufferOOMForTesting::DawnFakeBufferOOMForTesting(DawnFakeBufferOOMForTesting::Init&& init) :
5308
5315
  ChainedStruct { init.nextInChain, SType::DawnFakeBufferOOMForTesting },
@@ -5327,7 +5334,7 @@ static_assert(offsetof(DawnFakeBufferOOMForTesting, fakeOOMAtDevice) == offsetof
5327
5334
  DawnFakeDeviceInitializeErrorForTesting::DawnFakeDeviceInitializeErrorForTesting()
5328
5335
  : ChainedStruct { nullptr, SType::DawnFakeDeviceInitializeErrorForTesting } {}
5329
5336
  struct DawnFakeDeviceInitializeErrorForTesting::Init {
5330
- ChainedStruct * const nextInChain;
5337
+ ChainedStruct * const nextInChain = nullptr;
5331
5338
  };
5332
5339
  DawnFakeDeviceInitializeErrorForTesting::DawnFakeDeviceInitializeErrorForTesting(DawnFakeDeviceInitializeErrorForTesting::Init&& init) :
5333
5340
  ChainedStruct { init.nextInChain, SType::DawnFakeDeviceInitializeErrorForTesting } {}
@@ -5343,7 +5350,7 @@ static_assert(alignof(DawnFakeDeviceInitializeErrorForTesting) == alignof(WGPUDa
5343
5350
  DawnHostMappedPointerLimits::DawnHostMappedPointerLimits()
5344
5351
  : ChainedStructOut { nullptr, SType::DawnHostMappedPointerLimits } {}
5345
5352
  struct DawnHostMappedPointerLimits::Init {
5346
- ChainedStructOut * nextInChain;
5353
+ ChainedStructOut * nextInChain = nullptr;
5347
5354
  uint32_t hostMappedPointerAlignment = kLimitU32Undefined;
5348
5355
  };
5349
5356
  DawnHostMappedPointerLimits::DawnHostMappedPointerLimits(DawnHostMappedPointerLimits::Init&& init) :
@@ -5363,7 +5370,7 @@ static_assert(offsetof(DawnHostMappedPointerLimits, hostMappedPointerAlignment)
5363
5370
  DawnInjectedInvalidSType::DawnInjectedInvalidSType()
5364
5371
  : ChainedStruct { nullptr, SType::DawnInjectedInvalidSType } {}
5365
5372
  struct DawnInjectedInvalidSType::Init {
5366
- ChainedStruct * const nextInChain;
5373
+ ChainedStruct * const nextInChain = nullptr;
5367
5374
  SType invalidSType = {};
5368
5375
  };
5369
5376
  DawnInjectedInvalidSType::DawnInjectedInvalidSType(DawnInjectedInvalidSType::Init&& init) :
@@ -5383,7 +5390,7 @@ static_assert(offsetof(DawnInjectedInvalidSType, invalidSType) == offsetof(WGPUD
5383
5390
  DawnRenderPassSampleCount::DawnRenderPassSampleCount()
5384
5391
  : ChainedStruct { nullptr, SType::DawnRenderPassSampleCount } {}
5385
5392
  struct DawnRenderPassSampleCount::Init {
5386
- ChainedStruct * const nextInChain;
5393
+ ChainedStruct * const nextInChain = nullptr;
5387
5394
  uint32_t sampleCount = 1;
5388
5395
  };
5389
5396
  DawnRenderPassSampleCount::DawnRenderPassSampleCount(DawnRenderPassSampleCount::Init&& init) :
@@ -5403,7 +5410,7 @@ static_assert(offsetof(DawnRenderPassSampleCount, sampleCount) == offsetof(WGPUD
5403
5410
  DawnShaderModuleSPIRVOptionsDescriptor::DawnShaderModuleSPIRVOptionsDescriptor()
5404
5411
  : ChainedStruct { nullptr, SType::DawnShaderModuleSPIRVOptionsDescriptor } {}
5405
5412
  struct DawnShaderModuleSPIRVOptionsDescriptor::Init {
5406
- ChainedStruct * const nextInChain;
5413
+ ChainedStruct * const nextInChain = nullptr;
5407
5414
  Bool allowNonUniformDerivatives = false;
5408
5415
  };
5409
5416
  DawnShaderModuleSPIRVOptionsDescriptor::DawnShaderModuleSPIRVOptionsDescriptor(DawnShaderModuleSPIRVOptionsDescriptor::Init&& init) :
@@ -5419,11 +5426,35 @@ static_assert(alignof(DawnShaderModuleSPIRVOptionsDescriptor) == alignof(WGPUDaw
5419
5426
  static_assert(offsetof(DawnShaderModuleSPIRVOptionsDescriptor, allowNonUniformDerivatives) == offsetof(WGPUDawnShaderModuleSPIRVOptionsDescriptor, allowNonUniformDerivatives),
5420
5427
  "offsetof mismatch for DawnShaderModuleSPIRVOptionsDescriptor::allowNonUniformDerivatives");
5421
5428
 
5429
+ // DawnShaderSourceSPIRV implementation
5430
+ DawnShaderSourceSPIRV::DawnShaderSourceSPIRV()
5431
+ : ChainedStruct { nullptr, SType::DawnShaderSourceSPIRV } {}
5432
+ struct DawnShaderSourceSPIRV::Init {
5433
+ ChainedStruct * const nextInChain = nullptr;
5434
+ size_t codeSize = 0;
5435
+ uint32_t const * code = nullptr;
5436
+ };
5437
+ DawnShaderSourceSPIRV::DawnShaderSourceSPIRV(DawnShaderSourceSPIRV::Init&& init) :
5438
+ ChainedStruct { init.nextInChain, SType::DawnShaderSourceSPIRV },
5439
+ codeSize(std::move(init.codeSize)),
5440
+ code(std::move(init.code)) {}
5441
+
5442
+ DawnShaderSourceSPIRV::operator const WGPUDawnShaderSourceSPIRV&() const noexcept {
5443
+ return *reinterpret_cast<const WGPUDawnShaderSourceSPIRV*>(this);
5444
+ }
5445
+
5446
+ static_assert(sizeof(DawnShaderSourceSPIRV) == sizeof(WGPUDawnShaderSourceSPIRV), "sizeof mismatch for DawnShaderSourceSPIRV");
5447
+ static_assert(alignof(DawnShaderSourceSPIRV) == alignof(WGPUDawnShaderSourceSPIRV), "alignof mismatch for DawnShaderSourceSPIRV");
5448
+ static_assert(offsetof(DawnShaderSourceSPIRV, codeSize) == offsetof(WGPUDawnShaderSourceSPIRV, codeSize),
5449
+ "offsetof mismatch for DawnShaderSourceSPIRV::codeSize");
5450
+ static_assert(offsetof(DawnShaderSourceSPIRV, code) == offsetof(WGPUDawnShaderSourceSPIRV, code),
5451
+ "offsetof mismatch for DawnShaderSourceSPIRV::code");
5452
+
5422
5453
  // DawnTexelCopyBufferRowAlignmentLimits implementation
5423
5454
  DawnTexelCopyBufferRowAlignmentLimits::DawnTexelCopyBufferRowAlignmentLimits()
5424
5455
  : ChainedStructOut { nullptr, SType::DawnTexelCopyBufferRowAlignmentLimits } {}
5425
5456
  struct DawnTexelCopyBufferRowAlignmentLimits::Init {
5426
- ChainedStructOut * nextInChain;
5457
+ ChainedStructOut * nextInChain = nullptr;
5427
5458
  uint32_t minTexelCopyBufferRowAlignment = kLimitU32Undefined;
5428
5459
  };
5429
5460
  DawnTexelCopyBufferRowAlignmentLimits::DawnTexelCopyBufferRowAlignmentLimits(DawnTexelCopyBufferRowAlignmentLimits::Init&& init) :
@@ -5443,7 +5474,7 @@ static_assert(offsetof(DawnTexelCopyBufferRowAlignmentLimits, minTexelCopyBuffer
5443
5474
  DawnTextureInternalUsageDescriptor::DawnTextureInternalUsageDescriptor()
5444
5475
  : ChainedStruct { nullptr, SType::DawnTextureInternalUsageDescriptor } {}
5445
5476
  struct DawnTextureInternalUsageDescriptor::Init {
5446
- ChainedStruct * const nextInChain;
5477
+ ChainedStruct * const nextInChain = nullptr;
5447
5478
  TextureUsage internalUsage = TextureUsage::None;
5448
5479
  };
5449
5480
  DawnTextureInternalUsageDescriptor::DawnTextureInternalUsageDescriptor(DawnTextureInternalUsageDescriptor::Init&& init) :
@@ -5463,7 +5494,7 @@ static_assert(offsetof(DawnTextureInternalUsageDescriptor, internalUsage) == off
5463
5494
  DawnTogglesDescriptor::DawnTogglesDescriptor()
5464
5495
  : ChainedStruct { nullptr, SType::DawnTogglesDescriptor } {}
5465
5496
  struct DawnTogglesDescriptor::Init {
5466
- ChainedStruct * const nextInChain;
5497
+ ChainedStruct * const nextInChain = nullptr;
5467
5498
  size_t enabledToggleCount = 0;
5468
5499
  const char* const * enabledToggles = nullptr;
5469
5500
  size_t disabledToggleCount = 0;
@@ -5495,7 +5526,7 @@ static_assert(offsetof(DawnTogglesDescriptor, disabledToggles) == offsetof(WGPUD
5495
5526
  DawnWGSLBlocklist::DawnWGSLBlocklist()
5496
5527
  : ChainedStruct { nullptr, SType::DawnWGSLBlocklist } {}
5497
5528
  struct DawnWGSLBlocklist::Init {
5498
- ChainedStruct * const nextInChain;
5529
+ ChainedStruct * const nextInChain = nullptr;
5499
5530
  size_t blocklistedFeatureCount = 0;
5500
5531
  const char* const * blocklistedFeatures = nullptr;
5501
5532
  };
@@ -5519,7 +5550,7 @@ static_assert(offsetof(DawnWGSLBlocklist, blocklistedFeatures) == offsetof(WGPUD
5519
5550
  DawnWireWGSLControl::DawnWireWGSLControl()
5520
5551
  : ChainedStruct { nullptr, SType::DawnWireWGSLControl } {}
5521
5552
  struct DawnWireWGSLControl::Init {
5522
- ChainedStruct * const nextInChain;
5553
+ ChainedStruct * const nextInChain = nullptr;
5523
5554
  Bool enableExperimental = false;
5524
5555
  Bool enableUnsafe = false;
5525
5556
  Bool enableTesting = false;
@@ -5547,7 +5578,7 @@ static_assert(offsetof(DawnWireWGSLControl, enableTesting) == offsetof(WGPUDawnW
5547
5578
  EmscriptenSurfaceSourceCanvasHTMLSelector::EmscriptenSurfaceSourceCanvasHTMLSelector()
5548
5579
  : ChainedStruct { nullptr, SType::EmscriptenSurfaceSourceCanvasHTMLSelector } {}
5549
5580
  struct EmscriptenSurfaceSourceCanvasHTMLSelector::Init {
5550
- ChainedStruct * const nextInChain;
5581
+ ChainedStruct * const nextInChain = nullptr;
5551
5582
  StringView selector = {};
5552
5583
  };
5553
5584
  EmscriptenSurfaceSourceCanvasHTMLSelector::EmscriptenSurfaceSourceCanvasHTMLSelector(EmscriptenSurfaceSourceCanvasHTMLSelector::Init&& init) :
@@ -5595,7 +5626,7 @@ static_assert(offsetof(Extent3D, depthOrArrayLayers) == offsetof(WGPUExtent3D, d
5595
5626
  ExternalTextureBindingEntry::ExternalTextureBindingEntry()
5596
5627
  : ChainedStruct { nullptr, SType::ExternalTextureBindingEntry } {}
5597
5628
  struct ExternalTextureBindingEntry::Init {
5598
- ChainedStruct * const nextInChain;
5629
+ ChainedStruct * const nextInChain = nullptr;
5599
5630
  ExternalTexture externalTexture = nullptr;
5600
5631
  };
5601
5632
  ExternalTextureBindingEntry::ExternalTextureBindingEntry(ExternalTextureBindingEntry::Init&& init) :
@@ -5615,7 +5646,7 @@ static_assert(offsetof(ExternalTextureBindingEntry, externalTexture) == offsetof
5615
5646
  ExternalTextureBindingLayout::ExternalTextureBindingLayout()
5616
5647
  : ChainedStruct { nullptr, SType::ExternalTextureBindingLayout } {}
5617
5648
  struct ExternalTextureBindingLayout::Init {
5618
- ChainedStruct * const nextInChain;
5649
+ ChainedStruct * const nextInChain = nullptr;
5619
5650
  };
5620
5651
  ExternalTextureBindingLayout::ExternalTextureBindingLayout(ExternalTextureBindingLayout::Init&& init) :
5621
5652
  ChainedStruct { init.nextInChain, SType::ExternalTextureBindingLayout } {}
@@ -5741,7 +5772,7 @@ static_assert(offsetof(PassTimestampWrites, endOfPassWriteIndex) == offsetof(WGP
5741
5772
  PipelineLayoutResourceTable::PipelineLayoutResourceTable()
5742
5773
  : ChainedStruct { nullptr, SType::PipelineLayoutResourceTable } {}
5743
5774
  struct PipelineLayoutResourceTable::Init {
5744
- ChainedStruct * const nextInChain;
5775
+ ChainedStruct * const nextInChain = nullptr;
5745
5776
  Bool usesResourceTable = false;
5746
5777
  };
5747
5778
  PipelineLayoutResourceTable::PipelineLayoutResourceTable(PipelineLayoutResourceTable::Init&& init) :
@@ -5836,30 +5867,25 @@ static_assert(offsetof(RenderBundleDescriptor, nextInChain) == offsetof(WGPURend
5836
5867
  static_assert(offsetof(RenderBundleDescriptor, label) == offsetof(WGPURenderBundleDescriptor, label),
5837
5868
  "offsetof mismatch for RenderBundleDescriptor::label");
5838
5869
 
5839
- // RenderBundleEncoderDescriptor implementation
5870
+ // RenderBundleEncoderResourceTable implementation
5871
+ RenderBundleEncoderResourceTable::RenderBundleEncoderResourceTable()
5872
+ : ChainedStruct { nullptr, SType::RenderBundleEncoderResourceTable } {}
5873
+ struct RenderBundleEncoderResourceTable::Init {
5874
+ ChainedStruct * const nextInChain = nullptr;
5875
+ Bool usesResourceTable = false;
5876
+ };
5877
+ RenderBundleEncoderResourceTable::RenderBundleEncoderResourceTable(RenderBundleEncoderResourceTable::Init&& init) :
5878
+ ChainedStruct { init.nextInChain, SType::RenderBundleEncoderResourceTable },
5879
+ usesResourceTable(std::move(init.usesResourceTable)) {}
5840
5880
 
5841
- RenderBundleEncoderDescriptor::operator const WGPURenderBundleEncoderDescriptor&() const noexcept {
5842
- return *reinterpret_cast<const WGPURenderBundleEncoderDescriptor*>(this);
5881
+ RenderBundleEncoderResourceTable::operator const WGPURenderBundleEncoderResourceTable&() const noexcept {
5882
+ return *reinterpret_cast<const WGPURenderBundleEncoderResourceTable*>(this);
5843
5883
  }
5844
5884
 
5845
- static_assert(sizeof(RenderBundleEncoderDescriptor) == sizeof(WGPURenderBundleEncoderDescriptor), "sizeof mismatch for RenderBundleEncoderDescriptor");
5846
- static_assert(alignof(RenderBundleEncoderDescriptor) == alignof(WGPURenderBundleEncoderDescriptor), "alignof mismatch for RenderBundleEncoderDescriptor");
5847
- static_assert(offsetof(RenderBundleEncoderDescriptor, nextInChain) == offsetof(WGPURenderBundleEncoderDescriptor, nextInChain),
5848
- "offsetof mismatch for RenderBundleEncoderDescriptor::nextInChain");
5849
- static_assert(offsetof(RenderBundleEncoderDescriptor, label) == offsetof(WGPURenderBundleEncoderDescriptor, label),
5850
- "offsetof mismatch for RenderBundleEncoderDescriptor::label");
5851
- static_assert(offsetof(RenderBundleEncoderDescriptor, colorFormatCount) == offsetof(WGPURenderBundleEncoderDescriptor, colorFormatCount),
5852
- "offsetof mismatch for RenderBundleEncoderDescriptor::colorFormatCount");
5853
- static_assert(offsetof(RenderBundleEncoderDescriptor, colorFormats) == offsetof(WGPURenderBundleEncoderDescriptor, colorFormats),
5854
- "offsetof mismatch for RenderBundleEncoderDescriptor::colorFormats");
5855
- static_assert(offsetof(RenderBundleEncoderDescriptor, depthStencilFormat) == offsetof(WGPURenderBundleEncoderDescriptor, depthStencilFormat),
5856
- "offsetof mismatch for RenderBundleEncoderDescriptor::depthStencilFormat");
5857
- static_assert(offsetof(RenderBundleEncoderDescriptor, sampleCount) == offsetof(WGPURenderBundleEncoderDescriptor, sampleCount),
5858
- "offsetof mismatch for RenderBundleEncoderDescriptor::sampleCount");
5859
- static_assert(offsetof(RenderBundleEncoderDescriptor, depthReadOnly) == offsetof(WGPURenderBundleEncoderDescriptor, depthReadOnly),
5860
- "offsetof mismatch for RenderBundleEncoderDescriptor::depthReadOnly");
5861
- static_assert(offsetof(RenderBundleEncoderDescriptor, stencilReadOnly) == offsetof(WGPURenderBundleEncoderDescriptor, stencilReadOnly),
5862
- "offsetof mismatch for RenderBundleEncoderDescriptor::stencilReadOnly");
5885
+ static_assert(sizeof(RenderBundleEncoderResourceTable) == sizeof(WGPURenderBundleEncoderResourceTable), "sizeof mismatch for RenderBundleEncoderResourceTable");
5886
+ static_assert(alignof(RenderBundleEncoderResourceTable) == alignof(WGPURenderBundleEncoderResourceTable), "alignof mismatch for RenderBundleEncoderResourceTable");
5887
+ static_assert(offsetof(RenderBundleEncoderResourceTable, usesResourceTable) == offsetof(WGPURenderBundleEncoderResourceTable, usesResourceTable),
5888
+ "offsetof mismatch for RenderBundleEncoderResourceTable::usesResourceTable");
5863
5889
 
5864
5890
  // RenderPassDepthStencilAttachment implementation
5865
5891
 
@@ -5894,13 +5920,13 @@ static_assert(offsetof(RenderPassDepthStencilAttachment, stencilReadOnly) == off
5894
5920
  RenderPassDescriptorResolveRect::RenderPassDescriptorResolveRect()
5895
5921
  : ChainedStruct { nullptr, SType::RenderPassDescriptorResolveRect } {}
5896
5922
  struct RenderPassDescriptorResolveRect::Init {
5897
- ChainedStruct * const nextInChain;
5898
- uint32_t colorOffsetX;
5899
- uint32_t colorOffsetY;
5900
- uint32_t resolveOffsetX;
5901
- uint32_t resolveOffsetY;
5902
- uint32_t width;
5903
- uint32_t height;
5923
+ ChainedStruct * const nextInChain = nullptr;
5924
+ uint32_t colorOffsetX = 0;
5925
+ uint32_t colorOffsetY = 0;
5926
+ uint32_t resolveOffsetX = 0;
5927
+ uint32_t resolveOffsetY = 0;
5928
+ uint32_t width = 0;
5929
+ uint32_t height = 0;
5904
5930
  };
5905
5931
  RenderPassDescriptorResolveRect::RenderPassDescriptorResolveRect(RenderPassDescriptorResolveRect::Init&& init) :
5906
5932
  ChainedStruct { init.nextInChain, SType::RenderPassDescriptorResolveRect },
@@ -5934,7 +5960,7 @@ static_assert(offsetof(RenderPassDescriptorResolveRect, height) == offsetof(WGPU
5934
5960
  RenderPassMaxDrawCount::RenderPassMaxDrawCount()
5935
5961
  : ChainedStruct { nullptr, SType::RenderPassMaxDrawCount } {}
5936
5962
  struct RenderPassMaxDrawCount::Init {
5937
- ChainedStruct * const nextInChain;
5963
+ ChainedStruct * const nextInChain = nullptr;
5938
5964
  uint64_t maxDrawCount = 50000000;
5939
5965
  };
5940
5966
  RenderPassMaxDrawCount::RenderPassMaxDrawCount(RenderPassMaxDrawCount::Init&& init) :
@@ -5954,7 +5980,7 @@ static_assert(offsetof(RenderPassMaxDrawCount, maxDrawCount) == offsetof(WGPURen
5954
5980
  RequestAdapterWebGPUBackendOptions::RequestAdapterWebGPUBackendOptions()
5955
5981
  : ChainedStruct { nullptr, SType::RequestAdapterWebGPUBackendOptions } {}
5956
5982
  struct RequestAdapterWebGPUBackendOptions::Init {
5957
- ChainedStruct * const nextInChain;
5983
+ ChainedStruct * const nextInChain = nullptr;
5958
5984
  };
5959
5985
  RequestAdapterWebGPUBackendOptions::RequestAdapterWebGPUBackendOptions(RequestAdapterWebGPUBackendOptions::Init&& init) :
5960
5986
  ChainedStruct { init.nextInChain, SType::RequestAdapterWebGPUBackendOptions } {}
@@ -5970,8 +5996,8 @@ static_assert(alignof(RequestAdapterWebGPUBackendOptions) == alignof(WGPURequest
5970
5996
  RequestAdapterWebXROptions::RequestAdapterWebXROptions()
5971
5997
  : ChainedStruct { nullptr, SType::RequestAdapterWebXROptions } {}
5972
5998
  struct RequestAdapterWebXROptions::Init {
5973
- ChainedStruct * const nextInChain;
5974
- Bool xrCompatible;
5999
+ ChainedStruct * const nextInChain = nullptr;
6000
+ Bool xrCompatible = false;
5975
6001
  };
5976
6002
  RequestAdapterWebXROptions::RequestAdapterWebXROptions(RequestAdapterWebXROptions::Init&& init) :
5977
6003
  ChainedStruct { init.nextInChain, SType::RequestAdapterWebXROptions },
@@ -6018,8 +6044,8 @@ static_assert(offsetof(SamplerBindingLayout, type) == offsetof(WGPUSamplerBindin
6018
6044
  ShaderModuleCompilationOptions::ShaderModuleCompilationOptions()
6019
6045
  : ChainedStruct { nullptr, SType::ShaderModuleCompilationOptions } {}
6020
6046
  struct ShaderModuleCompilationOptions::Init {
6021
- ChainedStruct * const nextInChain;
6022
- Bool strictMath;
6047
+ ChainedStruct * const nextInChain = nullptr;
6048
+ Bool strictMath = false;
6023
6049
  };
6024
6050
  ShaderModuleCompilationOptions::ShaderModuleCompilationOptions(ShaderModuleCompilationOptions::Init&& init) :
6025
6051
  ChainedStruct { init.nextInChain, SType::ShaderModuleCompilationOptions },
@@ -6038,8 +6064,8 @@ static_assert(offsetof(ShaderModuleCompilationOptions, strictMath) == offsetof(W
6038
6064
  ShaderSourceSPIRV::ShaderSourceSPIRV()
6039
6065
  : ChainedStruct { nullptr, SType::ShaderSourceSPIRV } {}
6040
6066
  struct ShaderSourceSPIRV::Init {
6041
- ChainedStruct * const nextInChain;
6042
- uint32_t codeSize;
6067
+ ChainedStruct * const nextInChain = nullptr;
6068
+ uint32_t codeSize = 0;
6043
6069
  uint32_t const * code = nullptr;
6044
6070
  };
6045
6071
  ShaderSourceSPIRV::ShaderSourceSPIRV(ShaderSourceSPIRV::Init&& init) :
@@ -6062,7 +6088,7 @@ static_assert(offsetof(ShaderSourceSPIRV, code) == offsetof(WGPUShaderSourceSPIR
6062
6088
  ShaderSourceWGSL::ShaderSourceWGSL()
6063
6089
  : ChainedStruct { nullptr, SType::ShaderSourceWGSL } {}
6064
6090
  struct ShaderSourceWGSL::Init {
6065
- ChainedStruct * const nextInChain;
6091
+ ChainedStruct * const nextInChain = nullptr;
6066
6092
  StringView code = {};
6067
6093
  };
6068
6094
  ShaderSourceWGSL::ShaderSourceWGSL(ShaderSourceWGSL::Init&& init) :
@@ -6168,9 +6194,9 @@ static_assert(offsetof(SharedBufferMemoryEndAccessState, signaledValues) == offs
6168
6194
  SharedBufferMemoryFromWindowsHandleDescriptor::SharedBufferMemoryFromWindowsHandleDescriptor()
6169
6195
  : ChainedStruct { nullptr, SType::SharedBufferMemoryFromWindowsHandleDescriptor } {}
6170
6196
  struct SharedBufferMemoryFromWindowsHandleDescriptor::Init {
6171
- ChainedStruct * const nextInChain;
6172
- void * handle;
6173
- uint64_t size;
6197
+ ChainedStruct * const nextInChain = nullptr;
6198
+ void * handle = nullptr;
6199
+ uint64_t size = 0;
6174
6200
  };
6175
6201
  SharedBufferMemoryFromWindowsHandleDescriptor::SharedBufferMemoryFromWindowsHandleDescriptor(SharedBufferMemoryFromWindowsHandleDescriptor::Init&& init) :
6176
6202
  ChainedStruct { init.nextInChain, SType::SharedBufferMemoryFromWindowsHandleDescriptor },
@@ -6207,8 +6233,8 @@ static_assert(offsetof(SharedBufferMemoryProperties, size) == offsetof(WGPUShare
6207
6233
  SharedFenceDXGISharedHandleDescriptor::SharedFenceDXGISharedHandleDescriptor()
6208
6234
  : ChainedStruct { nullptr, SType::SharedFenceDXGISharedHandleDescriptor } {}
6209
6235
  struct SharedFenceDXGISharedHandleDescriptor::Init {
6210
- ChainedStruct * const nextInChain;
6211
- void * handle;
6236
+ ChainedStruct * const nextInChain = nullptr;
6237
+ void * handle = nullptr;
6212
6238
  };
6213
6239
  SharedFenceDXGISharedHandleDescriptor::SharedFenceDXGISharedHandleDescriptor(SharedFenceDXGISharedHandleDescriptor::Init&& init) :
6214
6240
  ChainedStruct { init.nextInChain, SType::SharedFenceDXGISharedHandleDescriptor },
@@ -6227,8 +6253,8 @@ static_assert(offsetof(SharedFenceDXGISharedHandleDescriptor, handle) == offseto
6227
6253
  SharedFenceDXGISharedHandleExportInfo::SharedFenceDXGISharedHandleExportInfo()
6228
6254
  : ChainedStructOut { nullptr, SType::SharedFenceDXGISharedHandleExportInfo } {}
6229
6255
  struct SharedFenceDXGISharedHandleExportInfo::Init {
6230
- ChainedStructOut * nextInChain;
6231
- void * handle;
6256
+ ChainedStructOut * nextInChain = nullptr;
6257
+ void * handle = nullptr;
6232
6258
  };
6233
6259
  SharedFenceDXGISharedHandleExportInfo::SharedFenceDXGISharedHandleExportInfo(SharedFenceDXGISharedHandleExportInfo::Init&& init) :
6234
6260
  ChainedStructOut { init.nextInChain, SType::SharedFenceDXGISharedHandleExportInfo },
@@ -6247,8 +6273,8 @@ static_assert(offsetof(SharedFenceDXGISharedHandleExportInfo, handle) == offseto
6247
6273
  SharedFenceEGLSyncDescriptor::SharedFenceEGLSyncDescriptor()
6248
6274
  : ChainedStruct { nullptr, SType::SharedFenceEGLSyncDescriptor } {}
6249
6275
  struct SharedFenceEGLSyncDescriptor::Init {
6250
- ChainedStruct * const nextInChain;
6251
- void * sync;
6276
+ ChainedStruct * const nextInChain = nullptr;
6277
+ void * sync = nullptr;
6252
6278
  };
6253
6279
  SharedFenceEGLSyncDescriptor::SharedFenceEGLSyncDescriptor(SharedFenceEGLSyncDescriptor::Init&& init) :
6254
6280
  ChainedStruct { init.nextInChain, SType::SharedFenceEGLSyncDescriptor },
@@ -6267,8 +6293,8 @@ static_assert(offsetof(SharedFenceEGLSyncDescriptor, sync) == offsetof(WGPUShare
6267
6293
  SharedFenceEGLSyncExportInfo::SharedFenceEGLSyncExportInfo()
6268
6294
  : ChainedStructOut { nullptr, SType::SharedFenceEGLSyncExportInfo } {}
6269
6295
  struct SharedFenceEGLSyncExportInfo::Init {
6270
- ChainedStructOut * nextInChain;
6271
- void * sync;
6296
+ ChainedStructOut * nextInChain = nullptr;
6297
+ void * sync = nullptr;
6272
6298
  };
6273
6299
  SharedFenceEGLSyncExportInfo::SharedFenceEGLSyncExportInfo(SharedFenceEGLSyncExportInfo::Init&& init) :
6274
6300
  ChainedStructOut { init.nextInChain, SType::SharedFenceEGLSyncExportInfo },
@@ -6287,8 +6313,8 @@ static_assert(offsetof(SharedFenceEGLSyncExportInfo, sync) == offsetof(WGPUShare
6287
6313
  SharedFenceMTLSharedEventDescriptor::SharedFenceMTLSharedEventDescriptor()
6288
6314
  : ChainedStruct { nullptr, SType::SharedFenceMTLSharedEventDescriptor } {}
6289
6315
  struct SharedFenceMTLSharedEventDescriptor::Init {
6290
- ChainedStruct * const nextInChain;
6291
- void * sharedEvent;
6316
+ ChainedStruct * const nextInChain = nullptr;
6317
+ void * sharedEvent = nullptr;
6292
6318
  };
6293
6319
  SharedFenceMTLSharedEventDescriptor::SharedFenceMTLSharedEventDescriptor(SharedFenceMTLSharedEventDescriptor::Init&& init) :
6294
6320
  ChainedStruct { init.nextInChain, SType::SharedFenceMTLSharedEventDescriptor },
@@ -6307,8 +6333,8 @@ static_assert(offsetof(SharedFenceMTLSharedEventDescriptor, sharedEvent) == offs
6307
6333
  SharedFenceMTLSharedEventExportInfo::SharedFenceMTLSharedEventExportInfo()
6308
6334
  : ChainedStructOut { nullptr, SType::SharedFenceMTLSharedEventExportInfo } {}
6309
6335
  struct SharedFenceMTLSharedEventExportInfo::Init {
6310
- ChainedStructOut * nextInChain;
6311
- void * sharedEvent;
6336
+ ChainedStructOut * nextInChain = nullptr;
6337
+ void * sharedEvent = nullptr;
6312
6338
  };
6313
6339
  SharedFenceMTLSharedEventExportInfo::SharedFenceMTLSharedEventExportInfo(SharedFenceMTLSharedEventExportInfo::Init&& init) :
6314
6340
  ChainedStructOut { init.nextInChain, SType::SharedFenceMTLSharedEventExportInfo },
@@ -6327,8 +6353,8 @@ static_assert(offsetof(SharedFenceMTLSharedEventExportInfo, sharedEvent) == offs
6327
6353
  SharedFenceSyncFDDescriptor::SharedFenceSyncFDDescriptor()
6328
6354
  : ChainedStruct { nullptr, SType::SharedFenceSyncFDDescriptor } {}
6329
6355
  struct SharedFenceSyncFDDescriptor::Init {
6330
- ChainedStruct * const nextInChain;
6331
- int handle;
6356
+ ChainedStruct * const nextInChain = nullptr;
6357
+ int handle = 0;
6332
6358
  };
6333
6359
  SharedFenceSyncFDDescriptor::SharedFenceSyncFDDescriptor(SharedFenceSyncFDDescriptor::Init&& init) :
6334
6360
  ChainedStruct { init.nextInChain, SType::SharedFenceSyncFDDescriptor },
@@ -6347,8 +6373,8 @@ static_assert(offsetof(SharedFenceSyncFDDescriptor, handle) == offsetof(WGPUShar
6347
6373
  SharedFenceSyncFDExportInfo::SharedFenceSyncFDExportInfo()
6348
6374
  : ChainedStructOut { nullptr, SType::SharedFenceSyncFDExportInfo } {}
6349
6375
  struct SharedFenceSyncFDExportInfo::Init {
6350
- ChainedStructOut * nextInChain;
6351
- int handle;
6376
+ ChainedStructOut * nextInChain = nullptr;
6377
+ int handle = 0;
6352
6378
  };
6353
6379
  SharedFenceSyncFDExportInfo::SharedFenceSyncFDExportInfo(SharedFenceSyncFDExportInfo::Init&& init) :
6354
6380
  ChainedStructOut { init.nextInChain, SType::SharedFenceSyncFDExportInfo },
@@ -6367,8 +6393,8 @@ static_assert(offsetof(SharedFenceSyncFDExportInfo, handle) == offsetof(WGPUShar
6367
6393
  SharedFenceVkSemaphoreOpaqueFDDescriptor::SharedFenceVkSemaphoreOpaqueFDDescriptor()
6368
6394
  : ChainedStruct { nullptr, SType::SharedFenceVkSemaphoreOpaqueFDDescriptor } {}
6369
6395
  struct SharedFenceVkSemaphoreOpaqueFDDescriptor::Init {
6370
- ChainedStruct * const nextInChain;
6371
- int handle;
6396
+ ChainedStruct * const nextInChain = nullptr;
6397
+ int handle = 0;
6372
6398
  };
6373
6399
  SharedFenceVkSemaphoreOpaqueFDDescriptor::SharedFenceVkSemaphoreOpaqueFDDescriptor(SharedFenceVkSemaphoreOpaqueFDDescriptor::Init&& init) :
6374
6400
  ChainedStruct { init.nextInChain, SType::SharedFenceVkSemaphoreOpaqueFDDescriptor },
@@ -6387,8 +6413,8 @@ static_assert(offsetof(SharedFenceVkSemaphoreOpaqueFDDescriptor, handle) == offs
6387
6413
  SharedFenceVkSemaphoreOpaqueFDExportInfo::SharedFenceVkSemaphoreOpaqueFDExportInfo()
6388
6414
  : ChainedStructOut { nullptr, SType::SharedFenceVkSemaphoreOpaqueFDExportInfo } {}
6389
6415
  struct SharedFenceVkSemaphoreOpaqueFDExportInfo::Init {
6390
- ChainedStructOut * nextInChain;
6391
- int handle;
6416
+ ChainedStructOut * nextInChain = nullptr;
6417
+ int handle = 0;
6392
6418
  };
6393
6419
  SharedFenceVkSemaphoreOpaqueFDExportInfo::SharedFenceVkSemaphoreOpaqueFDExportInfo(SharedFenceVkSemaphoreOpaqueFDExportInfo::Init&& init) :
6394
6420
  ChainedStructOut { init.nextInChain, SType::SharedFenceVkSemaphoreOpaqueFDExportInfo },
@@ -6407,8 +6433,8 @@ static_assert(offsetof(SharedFenceVkSemaphoreOpaqueFDExportInfo, handle) == offs
6407
6433
  SharedFenceVkSemaphoreZirconHandleDescriptor::SharedFenceVkSemaphoreZirconHandleDescriptor()
6408
6434
  : ChainedStruct { nullptr, SType::SharedFenceVkSemaphoreZirconHandleDescriptor } {}
6409
6435
  struct SharedFenceVkSemaphoreZirconHandleDescriptor::Init {
6410
- ChainedStruct * const nextInChain;
6411
- uint32_t handle;
6436
+ ChainedStruct * const nextInChain = nullptr;
6437
+ uint32_t handle = 0;
6412
6438
  };
6413
6439
  SharedFenceVkSemaphoreZirconHandleDescriptor::SharedFenceVkSemaphoreZirconHandleDescriptor(SharedFenceVkSemaphoreZirconHandleDescriptor::Init&& init) :
6414
6440
  ChainedStruct { init.nextInChain, SType::SharedFenceVkSemaphoreZirconHandleDescriptor },
@@ -6427,8 +6453,8 @@ static_assert(offsetof(SharedFenceVkSemaphoreZirconHandleDescriptor, handle) ==
6427
6453
  SharedFenceVkSemaphoreZirconHandleExportInfo::SharedFenceVkSemaphoreZirconHandleExportInfo()
6428
6454
  : ChainedStructOut { nullptr, SType::SharedFenceVkSemaphoreZirconHandleExportInfo } {}
6429
6455
  struct SharedFenceVkSemaphoreZirconHandleExportInfo::Init {
6430
- ChainedStructOut * nextInChain;
6431
- uint32_t handle;
6456
+ ChainedStructOut * nextInChain = nullptr;
6457
+ uint32_t handle = 0;
6432
6458
  };
6433
6459
  SharedFenceVkSemaphoreZirconHandleExportInfo::SharedFenceVkSemaphoreZirconHandleExportInfo(SharedFenceVkSemaphoreZirconHandleExportInfo::Init&& init) :
6434
6460
  ChainedStructOut { init.nextInChain, SType::SharedFenceVkSemaphoreZirconHandleExportInfo },
@@ -6447,8 +6473,8 @@ static_assert(offsetof(SharedFenceVkSemaphoreZirconHandleExportInfo, handle) ==
6447
6473
  SharedTextureMemoryAHardwareBufferDescriptor::SharedTextureMemoryAHardwareBufferDescriptor()
6448
6474
  : ChainedStruct { nullptr, SType::SharedTextureMemoryAHardwareBufferDescriptor } {}
6449
6475
  struct SharedTextureMemoryAHardwareBufferDescriptor::Init {
6450
- ChainedStruct * const nextInChain;
6451
- void * handle;
6476
+ ChainedStruct * const nextInChain = nullptr;
6477
+ void * handle = nullptr;
6452
6478
  };
6453
6479
  SharedTextureMemoryAHardwareBufferDescriptor::SharedTextureMemoryAHardwareBufferDescriptor(SharedTextureMemoryAHardwareBufferDescriptor::Init&& init) :
6454
6480
  ChainedStruct { init.nextInChain, SType::SharedTextureMemoryAHardwareBufferDescriptor },
@@ -6467,7 +6493,7 @@ static_assert(offsetof(SharedTextureMemoryAHardwareBufferDescriptor, handle) ==
6467
6493
  SharedTextureMemoryD3D11BeginState::SharedTextureMemoryD3D11BeginState()
6468
6494
  : ChainedStruct { nullptr, SType::SharedTextureMemoryD3D11BeginState } {}
6469
6495
  struct SharedTextureMemoryD3D11BeginState::Init {
6470
- ChainedStruct * const nextInChain;
6496
+ ChainedStruct * const nextInChain = nullptr;
6471
6497
  Bool requiresEndAccessFence = true;
6472
6498
  };
6473
6499
  SharedTextureMemoryD3D11BeginState::SharedTextureMemoryD3D11BeginState(SharedTextureMemoryD3D11BeginState::Init&& init) :
@@ -6487,7 +6513,7 @@ static_assert(offsetof(SharedTextureMemoryD3D11BeginState, requiresEndAccessFenc
6487
6513
  SharedTextureMemoryD3DSwapchainBeginState::SharedTextureMemoryD3DSwapchainBeginState()
6488
6514
  : ChainedStruct { nullptr, SType::SharedTextureMemoryD3DSwapchainBeginState } {}
6489
6515
  struct SharedTextureMemoryD3DSwapchainBeginState::Init {
6490
- ChainedStruct * const nextInChain;
6516
+ ChainedStruct * const nextInChain = nullptr;
6491
6517
  Bool isSwapchain = false;
6492
6518
  };
6493
6519
  SharedTextureMemoryD3DSwapchainBeginState::SharedTextureMemoryD3DSwapchainBeginState(SharedTextureMemoryD3DSwapchainBeginState::Init&& init) :
@@ -6522,9 +6548,9 @@ static_assert(offsetof(SharedTextureMemoryDmaBufPlane, stride) == offsetof(WGPUS
6522
6548
  SharedTextureMemoryDXGISharedHandleDescriptor::SharedTextureMemoryDXGISharedHandleDescriptor()
6523
6549
  : ChainedStruct { nullptr, SType::SharedTextureMemoryDXGISharedHandleDescriptor } {}
6524
6550
  struct SharedTextureMemoryDXGISharedHandleDescriptor::Init {
6525
- ChainedStruct * const nextInChain;
6526
- void * handle;
6527
- Bool useKeyedMutex;
6551
+ ChainedStruct * const nextInChain = nullptr;
6552
+ void * handle = nullptr;
6553
+ Bool useKeyedMutex = false;
6528
6554
  };
6529
6555
  SharedTextureMemoryDXGISharedHandleDescriptor::SharedTextureMemoryDXGISharedHandleDescriptor(SharedTextureMemoryDXGISharedHandleDescriptor::Init&& init) :
6530
6556
  ChainedStruct { init.nextInChain, SType::SharedTextureMemoryDXGISharedHandleDescriptor },
@@ -6546,8 +6572,8 @@ static_assert(offsetof(SharedTextureMemoryDXGISharedHandleDescriptor, useKeyedMu
6546
6572
  SharedTextureMemoryEGLImageDescriptor::SharedTextureMemoryEGLImageDescriptor()
6547
6573
  : ChainedStruct { nullptr, SType::SharedTextureMemoryEGLImageDescriptor } {}
6548
6574
  struct SharedTextureMemoryEGLImageDescriptor::Init {
6549
- ChainedStruct * const nextInChain;
6550
- void * image;
6575
+ ChainedStruct * const nextInChain = nullptr;
6576
+ void * image = nullptr;
6551
6577
  };
6552
6578
  SharedTextureMemoryEGLImageDescriptor::SharedTextureMemoryEGLImageDescriptor(SharedTextureMemoryEGLImageDescriptor::Init&& init) :
6553
6579
  ChainedStruct { init.nextInChain, SType::SharedTextureMemoryEGLImageDescriptor },
@@ -6566,8 +6592,8 @@ static_assert(offsetof(SharedTextureMemoryEGLImageDescriptor, image) == offsetof
6566
6592
  SharedTextureMemoryIOSurfaceDescriptor::SharedTextureMemoryIOSurfaceDescriptor()
6567
6593
  : ChainedStruct { nullptr, SType::SharedTextureMemoryIOSurfaceDescriptor } {}
6568
6594
  struct SharedTextureMemoryIOSurfaceDescriptor::Init {
6569
- ChainedStruct * const nextInChain;
6570
- void * ioSurface;
6595
+ ChainedStruct * const nextInChain = nullptr;
6596
+ void * ioSurface = nullptr;
6571
6597
  Bool allowStorageBinding = true;
6572
6598
  };
6573
6599
  SharedTextureMemoryIOSurfaceDescriptor::SharedTextureMemoryIOSurfaceDescriptor(SharedTextureMemoryIOSurfaceDescriptor::Init&& init) :
@@ -6590,12 +6616,12 @@ static_assert(offsetof(SharedTextureMemoryIOSurfaceDescriptor, allowStorageBindi
6590
6616
  SharedTextureMemoryOpaqueFDDescriptor::SharedTextureMemoryOpaqueFDDescriptor()
6591
6617
  : ChainedStruct { nullptr, SType::SharedTextureMemoryOpaqueFDDescriptor } {}
6592
6618
  struct SharedTextureMemoryOpaqueFDDescriptor::Init {
6593
- ChainedStruct * const nextInChain;
6594
- void const * vkImageCreateInfo;
6595
- int memoryFD;
6596
- uint32_t memoryTypeIndex;
6597
- uint64_t allocationSize;
6598
- Bool dedicatedAllocation;
6619
+ ChainedStruct * const nextInChain = nullptr;
6620
+ void const * vkImageCreateInfo = nullptr;
6621
+ int memoryFD = 0;
6622
+ uint32_t memoryTypeIndex = 0;
6623
+ uint64_t allocationSize = 0;
6624
+ Bool dedicatedAllocation = false;
6599
6625
  };
6600
6626
  SharedTextureMemoryOpaqueFDDescriptor::SharedTextureMemoryOpaqueFDDescriptor(SharedTextureMemoryOpaqueFDDescriptor::Init&& init) :
6601
6627
  ChainedStruct { init.nextInChain, SType::SharedTextureMemoryOpaqueFDDescriptor },
@@ -6626,8 +6652,8 @@ static_assert(offsetof(SharedTextureMemoryOpaqueFDDescriptor, dedicatedAllocatio
6626
6652
  SharedTextureMemoryVkDedicatedAllocationDescriptor::SharedTextureMemoryVkDedicatedAllocationDescriptor()
6627
6653
  : ChainedStruct { nullptr, SType::SharedTextureMemoryVkDedicatedAllocationDescriptor } {}
6628
6654
  struct SharedTextureMemoryVkDedicatedAllocationDescriptor::Init {
6629
- ChainedStruct * const nextInChain;
6630
- Bool dedicatedAllocation;
6655
+ ChainedStruct * const nextInChain = nullptr;
6656
+ Bool dedicatedAllocation = false;
6631
6657
  };
6632
6658
  SharedTextureMemoryVkDedicatedAllocationDescriptor::SharedTextureMemoryVkDedicatedAllocationDescriptor(SharedTextureMemoryVkDedicatedAllocationDescriptor::Init&& init) :
6633
6659
  ChainedStruct { init.nextInChain, SType::SharedTextureMemoryVkDedicatedAllocationDescriptor },
@@ -6646,9 +6672,9 @@ static_assert(offsetof(SharedTextureMemoryVkDedicatedAllocationDescriptor, dedic
6646
6672
  SharedTextureMemoryVkImageLayoutBeginState::SharedTextureMemoryVkImageLayoutBeginState()
6647
6673
  : ChainedStruct { nullptr, SType::SharedTextureMemoryVkImageLayoutBeginState } {}
6648
6674
  struct SharedTextureMemoryVkImageLayoutBeginState::Init {
6649
- ChainedStruct * const nextInChain;
6650
- int32_t oldLayout;
6651
- int32_t newLayout;
6675
+ ChainedStruct * const nextInChain = nullptr;
6676
+ int32_t oldLayout = 0;
6677
+ int32_t newLayout = 0;
6652
6678
  };
6653
6679
  SharedTextureMemoryVkImageLayoutBeginState::SharedTextureMemoryVkImageLayoutBeginState(SharedTextureMemoryVkImageLayoutBeginState::Init&& init) :
6654
6680
  ChainedStruct { init.nextInChain, SType::SharedTextureMemoryVkImageLayoutBeginState },
@@ -6670,9 +6696,9 @@ static_assert(offsetof(SharedTextureMemoryVkImageLayoutBeginState, newLayout) ==
6670
6696
  SharedTextureMemoryVkImageLayoutEndState::SharedTextureMemoryVkImageLayoutEndState()
6671
6697
  : ChainedStructOut { nullptr, SType::SharedTextureMemoryVkImageLayoutEndState } {}
6672
6698
  struct SharedTextureMemoryVkImageLayoutEndState::Init {
6673
- ChainedStructOut * nextInChain;
6674
- int32_t oldLayout;
6675
- int32_t newLayout;
6699
+ ChainedStructOut * nextInChain = nullptr;
6700
+ int32_t oldLayout = 0;
6701
+ int32_t newLayout = 0;
6676
6702
  };
6677
6703
  SharedTextureMemoryVkImageLayoutEndState::SharedTextureMemoryVkImageLayoutEndState(SharedTextureMemoryVkImageLayoutEndState::Init&& init) :
6678
6704
  ChainedStructOut { init.nextInChain, SType::SharedTextureMemoryVkImageLayoutEndState },
@@ -6694,9 +6720,9 @@ static_assert(offsetof(SharedTextureMemoryVkImageLayoutEndState, newLayout) == o
6694
6720
  SharedTextureMemoryZirconHandleDescriptor::SharedTextureMemoryZirconHandleDescriptor()
6695
6721
  : ChainedStruct { nullptr, SType::SharedTextureMemoryZirconHandleDescriptor } {}
6696
6722
  struct SharedTextureMemoryZirconHandleDescriptor::Init {
6697
- ChainedStruct * const nextInChain;
6698
- uint32_t memoryFD;
6699
- uint64_t allocationSize;
6723
+ ChainedStruct * const nextInChain = nullptr;
6724
+ uint32_t memoryFD = 0;
6725
+ uint64_t allocationSize = 0;
6700
6726
  };
6701
6727
  SharedTextureMemoryZirconHandleDescriptor::SharedTextureMemoryZirconHandleDescriptor(SharedTextureMemoryZirconHandleDescriptor::Init&& init) :
6702
6728
  ChainedStruct { init.nextInChain, SType::SharedTextureMemoryZirconHandleDescriptor },
@@ -6718,7 +6744,7 @@ static_assert(offsetof(SharedTextureMemoryZirconHandleDescriptor, allocationSize
6718
6744
  StaticSamplerBindingLayout::StaticSamplerBindingLayout()
6719
6745
  : ChainedStruct { nullptr, SType::StaticSamplerBindingLayout } {}
6720
6746
  struct StaticSamplerBindingLayout::Init {
6721
- ChainedStruct * const nextInChain;
6747
+ ChainedStruct * const nextInChain = nullptr;
6722
6748
  Sampler sampler = nullptr;
6723
6749
  uint32_t sampledTextureBinding = kLimitU32Undefined;
6724
6750
  };
@@ -7014,7 +7040,7 @@ static_assert(offsetof(SurfaceCapabilities, alphaModes) == offsetof(WGPUSurfaceC
7014
7040
  SurfaceColorManagement::SurfaceColorManagement()
7015
7041
  : ChainedStruct { nullptr, SType::SurfaceColorManagement } {}
7016
7042
  struct SurfaceColorManagement::Init {
7017
- ChainedStruct * const nextInChain;
7043
+ ChainedStruct * const nextInChain = nullptr;
7018
7044
  PredefinedColorSpace colorSpace = {};
7019
7045
  ToneMappingMode toneMappingMode = {};
7020
7046
  };
@@ -7067,7 +7093,7 @@ static_assert(offsetof(SurfaceConfiguration, presentMode) == offsetof(WGPUSurfac
7067
7093
  SurfaceDescriptorFromWindowsCoreWindow::SurfaceDescriptorFromWindowsCoreWindow()
7068
7094
  : ChainedStruct { nullptr, SType::SurfaceDescriptorFromWindowsCoreWindow } {}
7069
7095
  struct SurfaceDescriptorFromWindowsCoreWindow::Init {
7070
- ChainedStruct * const nextInChain;
7096
+ ChainedStruct * const nextInChain = nullptr;
7071
7097
  void * coreWindow = nullptr;
7072
7098
  };
7073
7099
  SurfaceDescriptorFromWindowsCoreWindow::SurfaceDescriptorFromWindowsCoreWindow(SurfaceDescriptorFromWindowsCoreWindow::Init&& init) :
@@ -7087,7 +7113,7 @@ static_assert(offsetof(SurfaceDescriptorFromWindowsCoreWindow, coreWindow) == of
7087
7113
  SurfaceDescriptorFromWindowsUWPSwapChainPanel::SurfaceDescriptorFromWindowsUWPSwapChainPanel()
7088
7114
  : ChainedStruct { nullptr, SType::SurfaceDescriptorFromWindowsUWPSwapChainPanel } {}
7089
7115
  struct SurfaceDescriptorFromWindowsUWPSwapChainPanel::Init {
7090
- ChainedStruct * const nextInChain;
7116
+ ChainedStruct * const nextInChain = nullptr;
7091
7117
  void * swapChainPanel = nullptr;
7092
7118
  };
7093
7119
  SurfaceDescriptorFromWindowsUWPSwapChainPanel::SurfaceDescriptorFromWindowsUWPSwapChainPanel(SurfaceDescriptorFromWindowsUWPSwapChainPanel::Init&& init) :
@@ -7107,7 +7133,7 @@ static_assert(offsetof(SurfaceDescriptorFromWindowsUWPSwapChainPanel, swapChainP
7107
7133
  SurfaceDescriptorFromWindowsWinUISwapChainPanel::SurfaceDescriptorFromWindowsWinUISwapChainPanel()
7108
7134
  : ChainedStruct { nullptr, SType::SurfaceDescriptorFromWindowsWinUISwapChainPanel } {}
7109
7135
  struct SurfaceDescriptorFromWindowsWinUISwapChainPanel::Init {
7110
- ChainedStruct * const nextInChain;
7136
+ ChainedStruct * const nextInChain = nullptr;
7111
7137
  void * swapChainPanel = nullptr;
7112
7138
  };
7113
7139
  SurfaceDescriptorFromWindowsWinUISwapChainPanel::SurfaceDescriptorFromWindowsWinUISwapChainPanel(SurfaceDescriptorFromWindowsWinUISwapChainPanel::Init&& init) :
@@ -7127,8 +7153,8 @@ static_assert(offsetof(SurfaceDescriptorFromWindowsWinUISwapChainPanel, swapChai
7127
7153
  SurfaceSourceAndroidNativeWindow::SurfaceSourceAndroidNativeWindow()
7128
7154
  : ChainedStruct { nullptr, SType::SurfaceSourceAndroidNativeWindow } {}
7129
7155
  struct SurfaceSourceAndroidNativeWindow::Init {
7130
- ChainedStruct * const nextInChain;
7131
- void * window;
7156
+ ChainedStruct * const nextInChain = nullptr;
7157
+ void * window = nullptr;
7132
7158
  };
7133
7159
  SurfaceSourceAndroidNativeWindow::SurfaceSourceAndroidNativeWindow(SurfaceSourceAndroidNativeWindow::Init&& init) :
7134
7160
  ChainedStruct { init.nextInChain, SType::SurfaceSourceAndroidNativeWindow },
@@ -7147,7 +7173,7 @@ static_assert(offsetof(SurfaceSourceAndroidNativeWindow, window) == offsetof(WGP
7147
7173
  SurfaceSourceMetalLayer::SurfaceSourceMetalLayer()
7148
7174
  : ChainedStruct { nullptr, SType::SurfaceSourceMetalLayer } {}
7149
7175
  struct SurfaceSourceMetalLayer::Init {
7150
- ChainedStruct * const nextInChain;
7176
+ ChainedStruct * const nextInChain = nullptr;
7151
7177
  void * layer = nullptr;
7152
7178
  };
7153
7179
  SurfaceSourceMetalLayer::SurfaceSourceMetalLayer(SurfaceSourceMetalLayer::Init&& init) :
@@ -7167,7 +7193,7 @@ static_assert(offsetof(SurfaceSourceMetalLayer, layer) == offsetof(WGPUSurfaceSo
7167
7193
  SurfaceSourceWaylandSurface::SurfaceSourceWaylandSurface()
7168
7194
  : ChainedStruct { nullptr, SType::SurfaceSourceWaylandSurface } {}
7169
7195
  struct SurfaceSourceWaylandSurface::Init {
7170
- ChainedStruct * const nextInChain;
7196
+ ChainedStruct * const nextInChain = nullptr;
7171
7197
  void * display = nullptr;
7172
7198
  void * surface = nullptr;
7173
7199
  };
@@ -7191,7 +7217,7 @@ static_assert(offsetof(SurfaceSourceWaylandSurface, surface) == offsetof(WGPUSur
7191
7217
  SurfaceSourceWindowsHWND::SurfaceSourceWindowsHWND()
7192
7218
  : ChainedStruct { nullptr, SType::SurfaceSourceWindowsHWND } {}
7193
7219
  struct SurfaceSourceWindowsHWND::Init {
7194
- ChainedStruct * const nextInChain;
7220
+ ChainedStruct * const nextInChain = nullptr;
7195
7221
  void * hinstance = nullptr;
7196
7222
  void * hwnd = nullptr;
7197
7223
  };
@@ -7215,9 +7241,9 @@ static_assert(offsetof(SurfaceSourceWindowsHWND, hwnd) == offsetof(WGPUSurfaceSo
7215
7241
  SurfaceSourceXCBWindow::SurfaceSourceXCBWindow()
7216
7242
  : ChainedStruct { nullptr, SType::SurfaceSourceXCBWindow } {}
7217
7243
  struct SurfaceSourceXCBWindow::Init {
7218
- ChainedStruct * const nextInChain;
7244
+ ChainedStruct * const nextInChain = nullptr;
7219
7245
  void * connection = nullptr;
7220
- uint32_t window;
7246
+ uint32_t window = 0;
7221
7247
  };
7222
7248
  SurfaceSourceXCBWindow::SurfaceSourceXCBWindow(SurfaceSourceXCBWindow::Init&& init) :
7223
7249
  ChainedStruct { init.nextInChain, SType::SurfaceSourceXCBWindow },
@@ -7239,9 +7265,9 @@ static_assert(offsetof(SurfaceSourceXCBWindow, window) == offsetof(WGPUSurfaceSo
7239
7265
  SurfaceSourceXlibWindow::SurfaceSourceXlibWindow()
7240
7266
  : ChainedStruct { nullptr, SType::SurfaceSourceXlibWindow } {}
7241
7267
  struct SurfaceSourceXlibWindow::Init {
7242
- ChainedStruct * const nextInChain;
7268
+ ChainedStruct * const nextInChain = nullptr;
7243
7269
  void * display = nullptr;
7244
- uint64_t window;
7270
+ uint64_t window = 0;
7245
7271
  };
7246
7272
  SurfaceSourceXlibWindow::SurfaceSourceXlibWindow(SurfaceSourceXlibWindow::Init&& init) :
7247
7273
  ChainedStruct { init.nextInChain, SType::SurfaceSourceXlibWindow },
@@ -7278,7 +7304,7 @@ static_assert(offsetof(SurfaceTexture, status) == offsetof(WGPUSurfaceTexture, s
7278
7304
  TexelBufferBindingEntry::TexelBufferBindingEntry()
7279
7305
  : ChainedStruct { nullptr, SType::TexelBufferBindingEntry } {}
7280
7306
  struct TexelBufferBindingEntry::Init {
7281
- ChainedStruct * const nextInChain;
7307
+ ChainedStruct * const nextInChain = nullptr;
7282
7308
  TexelBufferView texelBufferView = nullptr;
7283
7309
  };
7284
7310
  TexelBufferBindingEntry::TexelBufferBindingEntry(TexelBufferBindingEntry::Init&& init) :
@@ -7298,7 +7324,7 @@ static_assert(offsetof(TexelBufferBindingEntry, texelBufferView) == offsetof(WGP
7298
7324
  TexelBufferBindingLayout::TexelBufferBindingLayout()
7299
7325
  : ChainedStruct { nullptr, SType::TexelBufferBindingLayout } {}
7300
7326
  struct TexelBufferBindingLayout::Init {
7301
- ChainedStruct * const nextInChain;
7327
+ ChainedStruct * const nextInChain = nullptr;
7302
7328
  TexelBufferAccess access = TexelBufferAccess::Undefined;
7303
7329
  TextureFormat format = TextureFormat::Undefined;
7304
7330
  };
@@ -7373,7 +7399,7 @@ static_assert(offsetof(TextureBindingLayout, multisampled) == offsetof(WGPUTextu
7373
7399
  TextureBindingViewDimension::TextureBindingViewDimension()
7374
7400
  : ChainedStruct { nullptr, SType::TextureBindingViewDimension } {}
7375
7401
  struct TextureBindingViewDimension::Init {
7376
- ChainedStruct * const nextInChain;
7402
+ ChainedStruct * const nextInChain = nullptr;
7377
7403
  TextureViewDimension textureBindingViewDimension = TextureViewDimension::Undefined;
7378
7404
  };
7379
7405
  TextureBindingViewDimension::TextureBindingViewDimension(TextureBindingViewDimension::Init&& init) :
@@ -7427,7 +7453,7 @@ static_assert(offsetof(VertexAttribute, shaderLocation) == offsetof(WGPUVertexAt
7427
7453
  YCbCrVkDescriptor::YCbCrVkDescriptor()
7428
7454
  : ChainedStruct { nullptr, SType::YCbCrVkDescriptor } {}
7429
7455
  struct YCbCrVkDescriptor::Init {
7430
- ChainedStruct * const nextInChain;
7456
+ ChainedStruct * const nextInChain = nullptr;
7431
7457
  uint32_t vkFormat = 0;
7432
7458
  uint32_t vkYCbCrModel = 0;
7433
7459
  uint32_t vkYCbCrRange = 0;
@@ -7491,8 +7517,8 @@ static_assert(offsetof(YCbCrVkDescriptor, externalFormat) == offsetof(WGPUYCbCrV
7491
7517
  AdapterPropertiesMemoryHeaps::AdapterPropertiesMemoryHeaps()
7492
7518
  : ChainedStructOut { nullptr, SType::AdapterPropertiesMemoryHeaps } {}
7493
7519
  struct AdapterPropertiesMemoryHeaps::Init {
7494
- ChainedStructOut * nextInChain;
7495
- size_t const heapCount = {};
7520
+ ChainedStructOut * nextInChain = nullptr;
7521
+ size_t const heapCount = 0;
7496
7522
  MemoryHeapInfo const * const heapInfo = nullptr;
7497
7523
  };
7498
7524
  AdapterPropertiesMemoryHeaps::AdapterPropertiesMemoryHeaps(AdapterPropertiesMemoryHeaps::Init&& init) :
@@ -7549,8 +7575,8 @@ static_assert(offsetof(AdapterPropertiesMemoryHeaps, heapInfo) == offsetof(WGPUA
7549
7575
  AdapterPropertiesSubgroupMatrixConfigs::AdapterPropertiesSubgroupMatrixConfigs()
7550
7576
  : ChainedStructOut { nullptr, SType::AdapterPropertiesSubgroupMatrixConfigs } {}
7551
7577
  struct AdapterPropertiesSubgroupMatrixConfigs::Init {
7552
- ChainedStructOut * nextInChain;
7553
- size_t const configCount = {};
7578
+ ChainedStructOut * nextInChain = nullptr;
7579
+ size_t const configCount = 0;
7554
7580
  SubgroupMatrixConfig const * const configs = nullptr;
7555
7581
  };
7556
7582
  AdapterPropertiesSubgroupMatrixConfigs::AdapterPropertiesSubgroupMatrixConfigs(AdapterPropertiesSubgroupMatrixConfigs::Init&& init) :
@@ -7768,8 +7794,8 @@ static_assert(offsetof(ComputeState, constants) == offsetof(WGPUComputeState, co
7768
7794
  DawnDrmFormatCapabilities::DawnDrmFormatCapabilities()
7769
7795
  : ChainedStructOut { nullptr, SType::DawnDrmFormatCapabilities } {}
7770
7796
  struct DawnDrmFormatCapabilities::Init {
7771
- ChainedStructOut * nextInChain;
7772
- size_t const propertiesCount = {};
7797
+ ChainedStructOut * nextInChain = nullptr;
7798
+ size_t const propertiesCount = 0;
7773
7799
  DawnDrmFormatProperties const * const properties = nullptr;
7774
7800
  };
7775
7801
  DawnDrmFormatCapabilities::DawnDrmFormatCapabilities(DawnDrmFormatCapabilities::Init&& init) :
@@ -8016,8 +8042,8 @@ static_assert(offsetof(Limits, maxImmediateSize) == offsetof(WGPULimits, maxImme
8016
8042
  PipelineLayoutPixelLocalStorage::PipelineLayoutPixelLocalStorage()
8017
8043
  : ChainedStruct { nullptr, SType::PipelineLayoutPixelLocalStorage } {}
8018
8044
  struct PipelineLayoutPixelLocalStorage::Init {
8019
- ChainedStruct * const nextInChain;
8020
- uint64_t totalPixelLocalStorageSize;
8045
+ ChainedStruct * const nextInChain = nullptr;
8046
+ uint64_t totalPixelLocalStorageSize = 0;
8021
8047
  size_t storageAttachmentCount = 0;
8022
8048
  PipelineLayoutStorageAttachment const * storageAttachments = nullptr;
8023
8049
  };
@@ -8040,6 +8066,31 @@ static_assert(offsetof(PipelineLayoutPixelLocalStorage, storageAttachmentCount)
8040
8066
  static_assert(offsetof(PipelineLayoutPixelLocalStorage, storageAttachments) == offsetof(WGPUPipelineLayoutPixelLocalStorage, storageAttachments),
8041
8067
  "offsetof mismatch for PipelineLayoutPixelLocalStorage::storageAttachments");
8042
8068
 
8069
+ // RenderBundleEncoderDescriptor implementation
8070
+
8071
+ RenderBundleEncoderDescriptor::operator const WGPURenderBundleEncoderDescriptor&() const noexcept {
8072
+ return *reinterpret_cast<const WGPURenderBundleEncoderDescriptor*>(this);
8073
+ }
8074
+
8075
+ static_assert(sizeof(RenderBundleEncoderDescriptor) == sizeof(WGPURenderBundleEncoderDescriptor), "sizeof mismatch for RenderBundleEncoderDescriptor");
8076
+ static_assert(alignof(RenderBundleEncoderDescriptor) == alignof(WGPURenderBundleEncoderDescriptor), "alignof mismatch for RenderBundleEncoderDescriptor");
8077
+ static_assert(offsetof(RenderBundleEncoderDescriptor, nextInChain) == offsetof(WGPURenderBundleEncoderDescriptor, nextInChain),
8078
+ "offsetof mismatch for RenderBundleEncoderDescriptor::nextInChain");
8079
+ static_assert(offsetof(RenderBundleEncoderDescriptor, label) == offsetof(WGPURenderBundleEncoderDescriptor, label),
8080
+ "offsetof mismatch for RenderBundleEncoderDescriptor::label");
8081
+ static_assert(offsetof(RenderBundleEncoderDescriptor, colorFormatCount) == offsetof(WGPURenderBundleEncoderDescriptor, colorFormatCount),
8082
+ "offsetof mismatch for RenderBundleEncoderDescriptor::colorFormatCount");
8083
+ static_assert(offsetof(RenderBundleEncoderDescriptor, colorFormats) == offsetof(WGPURenderBundleEncoderDescriptor, colorFormats),
8084
+ "offsetof mismatch for RenderBundleEncoderDescriptor::colorFormats");
8085
+ static_assert(offsetof(RenderBundleEncoderDescriptor, depthStencilFormat) == offsetof(WGPURenderBundleEncoderDescriptor, depthStencilFormat),
8086
+ "offsetof mismatch for RenderBundleEncoderDescriptor::depthStencilFormat");
8087
+ static_assert(offsetof(RenderBundleEncoderDescriptor, sampleCount) == offsetof(WGPURenderBundleEncoderDescriptor, sampleCount),
8088
+ "offsetof mismatch for RenderBundleEncoderDescriptor::sampleCount");
8089
+ static_assert(offsetof(RenderBundleEncoderDescriptor, depthReadOnly) == offsetof(WGPURenderBundleEncoderDescriptor, depthReadOnly),
8090
+ "offsetof mismatch for RenderBundleEncoderDescriptor::depthReadOnly");
8091
+ static_assert(offsetof(RenderBundleEncoderDescriptor, stencilReadOnly) == offsetof(WGPURenderBundleEncoderDescriptor, stencilReadOnly),
8092
+ "offsetof mismatch for RenderBundleEncoderDescriptor::stencilReadOnly");
8093
+
8043
8094
  // RenderPassColorAttachment implementation
8044
8095
 
8045
8096
  RenderPassColorAttachment::operator const WGPURenderPassColorAttachment&() const noexcept {
@@ -8067,7 +8118,7 @@ static_assert(offsetof(RenderPassColorAttachment, clearValue) == offsetof(WGPURe
8067
8118
  RenderPassRenderAreaRect::RenderPassRenderAreaRect()
8068
8119
  : ChainedStruct { nullptr, SType::RenderPassRenderAreaRect } {}
8069
8120
  struct RenderPassRenderAreaRect::Init {
8070
- ChainedStruct * const nextInChain;
8121
+ ChainedStruct * const nextInChain = nullptr;
8071
8122
  Origin2D origin = {};
8072
8123
  Extent2D size = {};
8073
8124
  };
@@ -8218,7 +8269,7 @@ static_assert(offsetof(SharedFenceExportInfo, type) == offsetof(WGPUSharedFenceE
8218
8269
  SharedTextureMemoryAHardwareBufferProperties::SharedTextureMemoryAHardwareBufferProperties()
8219
8270
  : ChainedStructOut { nullptr, SType::SharedTextureMemoryAHardwareBufferProperties } {}
8220
8271
  struct SharedTextureMemoryAHardwareBufferProperties::Init {
8221
- ChainedStructOut * nextInChain;
8272
+ ChainedStructOut * nextInChain = nullptr;
8222
8273
  YCbCrVkDescriptor yCbCrInfo = {};
8223
8274
  };
8224
8275
  SharedTextureMemoryAHardwareBufferProperties::SharedTextureMemoryAHardwareBufferProperties(SharedTextureMemoryAHardwareBufferProperties::Init&& init) :
@@ -8261,11 +8312,11 @@ static_assert(offsetof(SharedTextureMemoryBeginAccessDescriptor, signaledValues)
8261
8312
  SharedTextureMemoryDmaBufDescriptor::SharedTextureMemoryDmaBufDescriptor()
8262
8313
  : ChainedStruct { nullptr, SType::SharedTextureMemoryDmaBufDescriptor } {}
8263
8314
  struct SharedTextureMemoryDmaBufDescriptor::Init {
8264
- ChainedStruct * const nextInChain;
8315
+ ChainedStruct * const nextInChain = nullptr;
8265
8316
  Extent3D size = {};
8266
- uint32_t drmFormat;
8267
- uint64_t drmModifier;
8268
- size_t planeCount;
8317
+ uint32_t drmFormat = 0;
8318
+ uint64_t drmModifier = 0;
8319
+ size_t planeCount = 0;
8269
8320
  SharedTextureMemoryDmaBufPlane const * planes = nullptr;
8270
8321
  };
8271
8322
  SharedTextureMemoryDmaBufDescriptor::SharedTextureMemoryDmaBufDescriptor(SharedTextureMemoryDmaBufDescriptor::Init&& init) :
@@ -8297,7 +8348,7 @@ static_assert(offsetof(SharedTextureMemoryDmaBufDescriptor, planes) == offsetof(
8297
8348
  SharedTextureMemoryMetalEndAccessState::SharedTextureMemoryMetalEndAccessState()
8298
8349
  : ChainedStructOut { nullptr, SType::SharedTextureMemoryMetalEndAccessState } {}
8299
8350
  struct SharedTextureMemoryMetalEndAccessState::Init {
8300
- ChainedStructOut * nextInChain;
8351
+ ChainedStructOut * nextInChain = nullptr;
8301
8352
  Future commandsScheduledFuture = {};
8302
8353
  };
8303
8354
  SharedTextureMemoryMetalEndAccessState::SharedTextureMemoryMetalEndAccessState(SharedTextureMemoryMetalEndAccessState::Init&& init) :
@@ -8360,7 +8411,7 @@ static_assert(offsetof(TexelCopyTextureInfo, aspect) == offsetof(WGPUTexelCopyTe
8360
8411
  TextureComponentSwizzleDescriptor::TextureComponentSwizzleDescriptor()
8361
8412
  : ChainedStruct { nullptr, SType::TextureComponentSwizzleDescriptor } {}
8362
8413
  struct TextureComponentSwizzleDescriptor::Init {
8363
- ChainedStruct * const nextInChain;
8414
+ ChainedStruct * const nextInChain = nullptr;
8364
8415
  TextureComponentSwizzle swizzle = {};
8365
8416
  };
8366
8417
  TextureComponentSwizzleDescriptor::TextureComponentSwizzleDescriptor(TextureComponentSwizzleDescriptor::Init&& init) :
@@ -8613,7 +8664,7 @@ static_assert(offsetof(DawnFormatCapabilities, nextInChain) == offsetof(WGPUDawn
8613
8664
  // DeviceDescriptor implementation
8614
8665
  DeviceDescriptor::DeviceDescriptor() = default;
8615
8666
  struct DeviceDescriptor::Init {
8616
- ChainedStruct * const nextInChain;
8667
+ ChainedStruct * const nextInChain = nullptr;
8617
8668
  StringView label = {};
8618
8669
  size_t requiredFeatureCount = 0;
8619
8670
  FeatureName const * requiredFeatures = nullptr;
@@ -8700,8 +8751,8 @@ static_assert(offsetof(PipelineLayoutDescriptor, immediateSize) == offsetof(WGPU
8700
8751
  RenderPassPixelLocalStorage::RenderPassPixelLocalStorage()
8701
8752
  : ChainedStruct { nullptr, SType::RenderPassPixelLocalStorage } {}
8702
8753
  struct RenderPassPixelLocalStorage::Init {
8703
- ChainedStruct * const nextInChain;
8704
- uint64_t totalPixelLocalStorageSize;
8754
+ ChainedStruct * const nextInChain = nullptr;
8755
+ uint64_t totalPixelLocalStorageSize = 0;
8705
8756
  size_t storageAttachmentCount = 0;
8706
8757
  RenderPassStorageAttachment const * storageAttachments = nullptr;
8707
8758
  };
@@ -8957,11 +9008,11 @@ void Adapter::GetFeatures(SupportedFeatures * features) const {
8957
9008
  *features = SupportedFeatures();
8958
9009
  wgpuAdapterGetFeatures(Get(), reinterpret_cast<WGPUSupportedFeatures *>(features));
8959
9010
  }
8960
- ConvertibleStatus Adapter::GetFormatCapabilities(TextureFormat format, DawnFormatCapabilities * capabilities) const {
9011
+ Status Adapter::GetFormatCapabilities(TextureFormat format, DawnFormatCapabilities * capabilities) const {
8961
9012
  auto result = wgpuAdapterGetFormatCapabilities(Get(), static_cast<WGPUTextureFormat>(format), reinterpret_cast<WGPUDawnFormatCapabilities *>(capabilities));
8962
9013
  return static_cast<Status>(result);
8963
9014
  }
8964
- ConvertibleStatus Adapter::GetInfo(AdapterInfo * info) const {
9015
+ Status Adapter::GetInfo(AdapterInfo * info) const {
8965
9016
  *info = AdapterInfo();
8966
9017
  auto result = wgpuAdapterGetInfo(Get(), reinterpret_cast<WGPUAdapterInfo *>(info));
8967
9018
  return static_cast<Status>(result);
@@ -8970,7 +9021,7 @@ Instance Adapter::GetInstance() const {
8970
9021
  auto result = wgpuAdapterGetInstance(Get());
8971
9022
  return Instance::Acquire(result);
8972
9023
  }
8973
- ConvertibleStatus Adapter::GetLimits(Limits * limits) const {
9024
+ Status Adapter::GetLimits(Limits * limits) const {
8974
9025
  auto result = wgpuAdapterGetLimits(Get(), reinterpret_cast<WGPULimits *>(limits));
8975
9026
  return static_cast<Status>(result);
8976
9027
  }
@@ -9098,7 +9149,7 @@ Future Buffer::MapAsync(MapMode mode, size_t offset, size_t size, CallbackMode c
9098
9149
  result.id
9099
9150
  };
9100
9151
  }
9101
- ConvertibleStatus Buffer::ReadMappedRange(size_t offset, void * data, size_t size) const {
9152
+ Status Buffer::ReadMappedRange(size_t offset, void * data, size_t size) const {
9102
9153
  auto result = wgpuBufferReadMappedRange(Get(), offset, reinterpret_cast<void *>(data), size);
9103
9154
  return static_cast<Status>(result);
9104
9155
  }
@@ -9108,7 +9159,7 @@ void Buffer::SetLabel(StringView label) const {
9108
9159
  void Buffer::Unmap() const {
9109
9160
  wgpuBufferUnmap(Get());
9110
9161
  }
9111
- ConvertibleStatus Buffer::WriteMappedRange(size_t offset, void const * data, size_t size) const {
9162
+ Status Buffer::WriteMappedRange(size_t offset, void const * data, size_t size) const {
9112
9163
  auto result = wgpuBufferWriteMappedRange(Get(), offset, reinterpret_cast<void const *>(data), size);
9113
9164
  return static_cast<Status>(result);
9114
9165
  }
@@ -9194,8 +9245,8 @@ void CommandEncoder::ResolveQuerySet(QuerySet const& querySet, uint32_t firstQue
9194
9245
  void CommandEncoder::SetLabel(StringView label) const {
9195
9246
  wgpuCommandEncoderSetLabel(Get(), *reinterpret_cast<WGPUStringView const*>(&label));
9196
9247
  }
9197
- void CommandEncoder::WriteBuffer(Buffer const& buffer, uint64_t bufferOffset, uint8_t const * data, uint64_t size) const {
9198
- wgpuCommandEncoderWriteBuffer(Get(), buffer.Get(), bufferOffset, reinterpret_cast<uint8_t const *>(data), size);
9248
+ void CommandEncoder::WriteBuffer(Buffer const& buffer, uint64_t bufferOffset, void const * data, size_t size) const {
9249
+ wgpuCommandEncoderWriteBuffer(Get(), buffer.Get(), bufferOffset, reinterpret_cast<void const *>(data), size);
9199
9250
  }
9200
9251
  void CommandEncoder::WriteTimestamp(QuerySet const& querySet, uint32_t queryIndex) const {
9201
9252
  wgpuCommandEncoderWriteTimestamp(Get(), querySet.Get(), queryIndex);
@@ -9367,12 +9418,12 @@ Adapter Device::GetAdapter() const {
9367
9418
  auto result = wgpuDeviceGetAdapter(Get());
9368
9419
  return Adapter::Acquire(result);
9369
9420
  }
9370
- ConvertibleStatus Device::GetAdapterInfo(AdapterInfo * adapterInfo) const {
9421
+ Status Device::GetAdapterInfo(AdapterInfo * adapterInfo) const {
9371
9422
  *adapterInfo = AdapterInfo();
9372
9423
  auto result = wgpuDeviceGetAdapterInfo(Get(), reinterpret_cast<WGPUAdapterInfo *>(adapterInfo));
9373
9424
  return static_cast<Status>(result);
9374
9425
  }
9375
- ConvertibleStatus Device::GetAHardwareBufferProperties(void * handle, AHardwareBufferProperties * properties) const {
9426
+ Status Device::GetAHardwareBufferProperties(void * handle, AHardwareBufferProperties * properties) const {
9376
9427
  auto result = wgpuDeviceGetAHardwareBufferProperties(Get(), handle, reinterpret_cast<WGPUAHardwareBufferProperties *>(properties));
9377
9428
  return static_cast<Status>(result);
9378
9429
  }
@@ -9380,7 +9431,7 @@ void Device::GetFeatures(SupportedFeatures * features) const {
9380
9431
  *features = SupportedFeatures();
9381
9432
  wgpuDeviceGetFeatures(Get(), reinterpret_cast<WGPUSupportedFeatures *>(features));
9382
9433
  }
9383
- ConvertibleStatus Device::GetLimits(Limits * limits) const {
9434
+ Status Device::GetLimits(Limits * limits) const {
9384
9435
  auto result = wgpuDeviceGetLimits(Get(), reinterpret_cast<WGPULimits *>(limits));
9385
9436
  return static_cast<Status>(result);
9386
9437
  }
@@ -9716,14 +9767,14 @@ uint32_t ResourceTable::Insert(BindingResource const * resource) const {
9716
9767
  auto result = wgpuResourceTableInsert(Get(), reinterpret_cast<WGPUBindingResource const *>(resource));
9717
9768
  return result;
9718
9769
  }
9719
- ConvertibleStatus ResourceTable::Remove(uint32_t slot) const {
9770
+ Status ResourceTable::Remove(uint32_t slot) const {
9720
9771
  auto result = wgpuResourceTableRemove(Get(), slot);
9721
9772
  return static_cast<Status>(result);
9722
9773
  }
9723
9774
  void ResourceTable::SetLabel(StringView label) const {
9724
9775
  wgpuResourceTableSetLabel(Get(), *reinterpret_cast<WGPUStringView const*>(&label));
9725
9776
  }
9726
- ConvertibleStatus ResourceTable::Update(uint32_t slot, BindingResource const * resource) const {
9777
+ Status ResourceTable::Update(uint32_t slot, BindingResource const * resource) const {
9727
9778
  auto result = wgpuResourceTableUpdate(Get(), slot, reinterpret_cast<WGPUBindingResource const *>(resource));
9728
9779
  return static_cast<Status>(result);
9729
9780
  }
@@ -9802,7 +9853,7 @@ static_assert(alignof(ShaderModule) == alignof(WGPUShaderModule), "alignof misma
9802
9853
 
9803
9854
  // SharedBufferMemory implementation
9804
9855
 
9805
- ConvertibleStatus SharedBufferMemory::BeginAccess(Buffer const& buffer, SharedBufferMemoryBeginAccessDescriptor const * descriptor) const {
9856
+ Status SharedBufferMemory::BeginAccess(Buffer const& buffer, SharedBufferMemoryBeginAccessDescriptor const * descriptor) const {
9806
9857
  auto result = wgpuSharedBufferMemoryBeginAccess(Get(), buffer.Get(), reinterpret_cast<WGPUSharedBufferMemoryBeginAccessDescriptor const *>(descriptor));
9807
9858
  return static_cast<Status>(result);
9808
9859
  }
@@ -9810,12 +9861,12 @@ Buffer SharedBufferMemory::CreateBuffer(BufferDescriptor const * descriptor) con
9810
9861
  auto result = wgpuSharedBufferMemoryCreateBuffer(Get(), reinterpret_cast<WGPUBufferDescriptor const *>(descriptor));
9811
9862
  return Buffer::Acquire(result);
9812
9863
  }
9813
- ConvertibleStatus SharedBufferMemory::EndAccess(Buffer const& buffer, SharedBufferMemoryEndAccessState * descriptor) const {
9864
+ Status SharedBufferMemory::EndAccess(Buffer const& buffer, SharedBufferMemoryEndAccessState * descriptor) const {
9814
9865
  *descriptor = SharedBufferMemoryEndAccessState();
9815
9866
  auto result = wgpuSharedBufferMemoryEndAccess(Get(), buffer.Get(), reinterpret_cast<WGPUSharedBufferMemoryEndAccessState *>(descriptor));
9816
9867
  return static_cast<Status>(result);
9817
9868
  }
9818
- ConvertibleStatus SharedBufferMemory::GetProperties(SharedBufferMemoryProperties * properties) const {
9869
+ Status SharedBufferMemory::GetProperties(SharedBufferMemoryProperties * properties) const {
9819
9870
  auto result = wgpuSharedBufferMemoryGetProperties(Get(), reinterpret_cast<WGPUSharedBufferMemoryProperties *>(properties));
9820
9871
  return static_cast<Status>(result);
9821
9872
  }
@@ -9866,7 +9917,7 @@ static_assert(alignof(SharedFence) == alignof(WGPUSharedFence), "alignof mismatc
9866
9917
 
9867
9918
  // SharedTextureMemory implementation
9868
9919
 
9869
- ConvertibleStatus SharedTextureMemory::BeginAccess(Texture const& texture, SharedTextureMemoryBeginAccessDescriptor const * descriptor) const {
9920
+ Status SharedTextureMemory::BeginAccess(Texture const& texture, SharedTextureMemoryBeginAccessDescriptor const * descriptor) const {
9870
9921
  auto result = wgpuSharedTextureMemoryBeginAccess(Get(), texture.Get(), reinterpret_cast<WGPUSharedTextureMemoryBeginAccessDescriptor const *>(descriptor));
9871
9922
  return static_cast<Status>(result);
9872
9923
  }
@@ -9874,12 +9925,12 @@ Texture SharedTextureMemory::CreateTexture(TextureDescriptor const * descriptor)
9874
9925
  auto result = wgpuSharedTextureMemoryCreateTexture(Get(), reinterpret_cast<WGPUTextureDescriptor const *>(descriptor));
9875
9926
  return Texture::Acquire(result);
9876
9927
  }
9877
- ConvertibleStatus SharedTextureMemory::EndAccess(Texture const& texture, SharedTextureMemoryEndAccessState * descriptor) const {
9928
+ Status SharedTextureMemory::EndAccess(Texture const& texture, SharedTextureMemoryEndAccessState * descriptor) const {
9878
9929
  *descriptor = SharedTextureMemoryEndAccessState();
9879
9930
  auto result = wgpuSharedTextureMemoryEndAccess(Get(), texture.Get(), reinterpret_cast<WGPUSharedTextureMemoryEndAccessState *>(descriptor));
9880
9931
  return static_cast<Status>(result);
9881
9932
  }
9882
- ConvertibleStatus SharedTextureMemory::GetProperties(SharedTextureMemoryProperties * properties) const {
9933
+ Status SharedTextureMemory::GetProperties(SharedTextureMemoryProperties * properties) const {
9883
9934
  auto result = wgpuSharedTextureMemoryGetProperties(Get(), reinterpret_cast<WGPUSharedTextureMemoryProperties *>(properties));
9884
9935
  return static_cast<Status>(result);
9885
9936
  }
@@ -9910,7 +9961,7 @@ static_assert(alignof(SharedTextureMemory) == alignof(WGPUSharedTextureMemory),
9910
9961
  void Surface::Configure(SurfaceConfiguration const * config) const {
9911
9962
  wgpuSurfaceConfigure(Get(), reinterpret_cast<WGPUSurfaceConfiguration const *>(config));
9912
9963
  }
9913
- ConvertibleStatus Surface::GetCapabilities(Adapter const& adapter, SurfaceCapabilities * capabilities) const {
9964
+ Status Surface::GetCapabilities(Adapter const& adapter, SurfaceCapabilities * capabilities) const {
9914
9965
  *capabilities = SurfaceCapabilities();
9915
9966
  auto result = wgpuSurfaceGetCapabilities(Get(), adapter.Get(), reinterpret_cast<WGPUSurfaceCapabilities *>(capabilities));
9916
9967
  return static_cast<Status>(result);
@@ -9918,7 +9969,7 @@ ConvertibleStatus Surface::GetCapabilities(Adapter const& adapter, SurfaceCapabi
9918
9969
  void Surface::GetCurrentTexture(SurfaceTexture * surfaceTexture) const {
9919
9970
  wgpuSurfaceGetCurrentTexture(Get(), reinterpret_cast<WGPUSurfaceTexture *>(surfaceTexture));
9920
9971
  }
9921
- ConvertibleStatus Surface::Present() const {
9972
+ Status Surface::Present() const {
9922
9973
  auto result = wgpuSurfacePresent(Get());
9923
9974
  return static_cast<Status>(result);
9924
9975
  }
@@ -10148,9 +10199,6 @@ void RenderBundleEncoder::SetLabel(StringView label) const {
10148
10199
  void RenderBundleEncoder::SetPipeline(RenderPipeline const& pipeline) const {
10149
10200
  wgpuRenderBundleEncoderSetPipeline(Get(), pipeline.Get());
10150
10201
  }
10151
- void RenderBundleEncoder::SetResourceTable(ResourceTable const& table) const {
10152
- wgpuRenderBundleEncoderSetResourceTable(Get(), table.Get());
10153
- }
10154
10202
  void RenderBundleEncoder::SetVertexBuffer(uint32_t slot, Buffer const& buffer, uint64_t offset, uint64_t size) const {
10155
10203
  wgpuRenderBundleEncoderSetVertexBuffer(Get(), slot, buffer.Get(), offset, size);
10156
10204
  }