diff --git a/DEPS b/DEPS
index 918ffed..eb823c5 100644
--- a/DEPS
+++ b/DEPS
@@ -388,7 +388,7 @@
 
   # Upstream webgpu.h headers for testing purposes
   'third_party/webgpu-headers/src': {
-    'url': '{chromium_git}/external/github.com/webgpu-native/webgpu-headers@4f617851dfa20bd240436d9255bcb7e4dbbb1e3f',
+    'url': '{chromium_git}/external/github.com/webgpu-native/webgpu-headers@f0494eb7efdd4ac6a113985d08e3e3d54581d345',
   },
 
   'tools/golang': {
diff --git a/generator/templates/api.h b/generator/templates/api.h
index 1308ac7..a4e8b2b 100644
--- a/generator/templates/api.h
+++ b/generator/templates/api.h
@@ -40,12 +40,16 @@
 //* -------------------------------------------------------------------------------------
 //* The follow block defines Dawn generator specific macros and #defines for migrations.
 //* -------------------------------------------------------------------------------------
-#define WGPU_BREAKING_CHANGE_STRING_VIEW_LABELS
-#define WGPU_BREAKING_CHANGE_STRING_VIEW_OUTPUT_STRUCTS
-#define WGPU_BREAKING_CHANGE_STRING_VIEW_CALLBACKS
-#define WGPU_BREAKING_CHANGE_QUEUE_WORK_DONE_CALLBACK_MESSAGE
-#define WGPU_BREAKING_CHANGE_COMPATIBILITY_MODE_LIMITS
-#define WGPU_BREAKING_CHANGE_INSTANCE_FEATURES_LIMITS
+{%- if 'upstream' not in enabled_tags %}
+
+    #define WGPU_BREAKING_CHANGE_STRING_VIEW_LABELS
+    #define WGPU_BREAKING_CHANGE_STRING_VIEW_OUTPUT_STRUCTS
+    #define WGPU_BREAKING_CHANGE_STRING_VIEW_CALLBACKS
+    #define WGPU_BREAKING_CHANGE_QUEUE_WORK_DONE_CALLBACK_MESSAGE
+    #define WGPU_BREAKING_CHANGE_COMPATIBILITY_MODE_LIMITS
+    #define WGPU_BREAKING_CHANGE_INSTANCE_FEATURES_LIMITS
+{% endif %}
+
 {% macro render_c_default_value(member) -%}
     {%- if member.annotation in ["*", "const*", "const*const*"] -%}
         //* Pointer types should always default to NULL.
@@ -336,13 +340,12 @@
 #endif
 
 #if !defined({{API}}_SKIP_PROCS)
-
-// TODO(374150686): Remove these Emscripten specific declarations from the
-// header once they are fully deprecated.
-#ifdef __EMSCRIPTEN__
-{{API}}_EXPORT WGPUDevice emscripten_webgpu_get_device(void);
-#endif
-
+{% if 'emscripten' in enabled_tags %}
+    // TODO(374150686): Remove these Emscripten specific declarations from the
+    // header once they are fully deprecated.
+    {{API}}_EXPORT WGPUDevice emscripten_webgpu_get_device(void);
+{% endif %}
+// Global procs
 {% for function in by_category["function"] %}
     typedef {{as_cType(function.return_type.name)}} (*{{as_cProc(None, function.name)}})(
             {%- for arg in function.arguments -%}
@@ -364,11 +367,9 @@
     {% endfor %}
 
 {% endfor %}
-
 #endif  // !defined({{API}}_SKIP_PROCS)
 
 #if !defined({{API}}_SKIP_DECLARATIONS)
-
 {% for function in by_category["function"] %}
     {{API}}_EXPORT {{as_cType(function.return_type.name)}} {{as_cMethod(None, function.name)}}(
             {%- for arg in function.arguments -%}
@@ -390,7 +391,6 @@
     {% endfor %}
 
 {% endfor %}
-
 #endif  // !defined({{API}}_SKIP_DECLARATIONS)
 
 #ifdef __cplusplus
diff --git a/src/dawn/dawn.json b/src/dawn/dawn.json
index 5ca9339..a8e4514 100644
--- a/src/dawn/dawn.json
+++ b/src/dawn/dawn.json
@@ -2265,24 +2265,26 @@
     "feature name": {
         "category": "enum",
         "values": [
-            {"value": 1, "name": "depth clip control"},
-            {"value": 2, "name": "depth32 float stencil8"},
-            {"value": 3, "name": "timestamp query"},
+            {"value": 1, "name": "core features and limits"},
+            {"value": 2, "name": "depth clip control"},
+            {"value": 3, "name": "depth32 float stencil8"},
             {"value": 4, "name": "texture compression BC"},
             {"value": 5, "name": "texture compression BC sliced 3D"},
             {"value": 6, "name": "texture compression ETC2"},
             {"value": 7, "name": "texture compression ASTC"},
             {"value": 8, "name": "texture compression ASTC sliced 3D"},
-            {"value": 9, "name": "indirect first instance"},
-            {"value": 10, "name": "shader f16"},
-            {"value": 11, "name": "RG11B10 ufloat renderable"},
-            {"value": 12, "name": "BGRA8 unorm storage"},
-            {"value": 13, "name": "float32 filterable", "jsrepr": "'float32-filterable'"},
-            {"value": 14, "name": "float32 blendable", "jsrepr": "'float32-blendable'"},
-            {"value": 15, "name": "clip distances"},
-            {"value": 16, "name": "dual source blending"},
-            {"value": 17, "name": "subgroups"},
-            {"value": 18, "name": "core features and limits", "jsrepr": "'core-features-and-limits'"},
+            {"value": 9, "name": "timestamp query"},
+            {"value": 10, "name": "indirect first instance"},
+            {"value": 11, "name": "shader f16"},
+            {"value": 12, "name": "RG11B10 ufloat renderable"},
+            {"value": 13, "name": "BGRA8 unorm storage"},
+            {"value": 14, "name": "float32 filterable", "jsrepr": "'float32-filterable'"},
+            {"value": 15, "name": "float32 blendable", "jsrepr": "'float32-blendable'"},
+            {"value": 16, "name": "clip distances"},
+            {"value": 17, "name": "dual source blending"},
+            {"value": 18, "name": "subgroups"},
+            {"value": 19, "name": "texture formats tier1"},
+            {"value": 20, "name": "texture formats tier2", "tags": ["upstream"]},
 
             {"value": 0, "name": "dawn internal usages", "tags": ["dawn"]},
             {"value": 1, "name": "dawn multi planar formats", "tags": ["dawn"]},
@@ -2342,8 +2344,7 @@
             {"value": 54, "name": "flexible texture views", "tags": ["dawn"]},
             {"value": 55, "name": "chromium experimental subgroup matrix", "tags": ["dawn"]},
             {"value": 56, "name": "shared fence EGL sync", "tags": ["dawn", "native"]},
-            {"value": 57, "name": "dawn device allocator control", "tags": ["dawn"]},
-            {"value": 58, "name": "texture formats tier1", "tags": ["dawn"]}
+            {"value": 57, "name": "dawn device allocator control", "tags": ["dawn"]}
         ]
     },
     "filter mode": {
@@ -3078,7 +3079,8 @@
     },
     "render pass descriptor max draw count": {
         "category": "typedef",
-        "type": "render pass max draw count"
+        "type": "render pass max draw count",
+        "tags": ["dawn"]
     },
     "render pass max draw count": {
         "category": "structure",
@@ -3191,6 +3193,7 @@
             },
             {
                 "name": "multi draw indirect",
+                "tags": ["dawn", "emscripten"],
                 "args": [
                     {"name": "indirect buffer", "type": "buffer"},
                     {"name": "indirect offset", "type": "uint64_t"},
@@ -3202,6 +3205,7 @@
             },
             {
                 "name": "multi draw indexed indirect",
+                "tags": ["dawn", "emscripten"],
                 "args": [
                     {"name": "indirect buffer", "type": "buffer"},
                     {"name": "indirect offset", "type": "uint64_t"},
@@ -3534,7 +3538,8 @@
     },
     "shader module SPIRV descriptor": {
         "category": "typedef",
-        "type": "shader source SPIRV"
+        "type": "shader source SPIRV",
+        "tags": ["dawn"]
     },
     "shader source SPIRV": {
         "category": "structure",
@@ -3547,7 +3552,8 @@
     },
     "shader module WGSL descriptor": {
         "category": "typedef",
-        "type": "shader source WGSL"
+        "type": "shader source WGSL",
+        "tags": ["dawn"]
     },
     "shader source WGSL": {
         "category": "structure",
@@ -3663,7 +3669,7 @@
     "surface descriptor from android native window": {
         "category": "typedef",
         "type": "surface source android native window",
-        "tags": ["art", "native"]
+        "tags": ["art", "native", "dawn"]
     },
     "surface source android native window": {
         "category": "structure",
@@ -3686,7 +3692,7 @@
     "surface descriptor from metal layer": {
         "category": "typedef",
         "type": "surface source metal layer",
-        "tags": ["native"]
+        "tags": ["native", "dawn"]
     },
     "surface source metal layer": {
         "category": "structure",
@@ -3700,7 +3706,7 @@
     "surface descriptor from windows HWND": {
         "category": "typedef",
         "type": "surface source windows HWND",
-        "tags": ["native"]
+        "tags": ["native", "dawn"]
     },
     "surface source windows HWND": {
         "category": "structure",
@@ -3715,7 +3721,7 @@
     "surface descriptor from xcb window": {
         "category": "typedef",
         "type": "surface source XCB window",
-        "tags": ["native"]
+        "tags": ["native", "dawn"]
     },
     "surface source XCB window": {
         "category": "structure",
@@ -3730,7 +3736,7 @@
     "surface descriptor from xlib window": {
         "category": "typedef",
         "type": "surface source xlib window",
-        "tags": ["native"]
+        "tags": ["native", "dawn"]
     },
     "surface source xlib window": {
         "category": "structure",
@@ -3745,7 +3751,7 @@
     "surface descriptor from wayland surface": {
         "category": "typedef",
         "type": "surface source wayland surface",
-        "tags": ["native"]
+        "tags": ["native", "dawn"]
     },
     "surface source wayland surface": {
         "category": "structure",
@@ -4016,6 +4022,7 @@
         "category": "structure",
         "chained": "in",
         "chain roots": ["texture descriptor"],
+        "tags": ["compat"],
         "members": [
             {"name": "texture binding view dimension", "type": "texture view dimension"}
         ]
@@ -4280,8 +4287,8 @@
             {"value": 2, "name": "packed 4x8 integer dot product", "jsrepr": "'packed_4x8_integer_dot_product'"},
             {"value": 3, "name": "unrestricted pointer parameters", "jsrepr": "'unrestricted_pointer_parameters'"},
             {"value": 4, "name": "pointer composite access", "jsrepr": "'pointer_composite_access'"},
-            {"value": 5, "name": "sized binding array", "jsrepr": "'sized_binding_array'"},
-            {"value": 6, "name": "texel buffers", "jsrepr": "'texel_buffers'"},
+            {"value": 5, "name": "sized binding array", "jsrepr": "'sized_binding_array'", "tags": ["dawn"]},
+            {"value": 6, "name": "texel buffers", "jsrepr": "'texel_buffers'", "tags": ["dawn"]},
 
             {"value": 0, "name": "chromium testing unimplemented", "jsrepr": "'chromium_testing_unimplemented'", "tags": ["dawn"]},
             {"value": 1, "name": "chromium testing unsafe experimental", "jsrepr": "'chromium_testing_unsafe_experimental'", "tags": ["dawn"]},
@@ -4484,6 +4491,7 @@
     "subgroup matrix component type": {
         "category": "enum",
         "emscripten_no_enum_table": true,
+        "tags": ["dawn"],
         "values": [
             {"value": 1, "name": "f32"},
             {"value": 2, "name": "f16"},
diff --git a/third_party/webgpu-headers/src b/third_party/webgpu-headers/src
index 4f61785..f0494eb 160000
--- a/third_party/webgpu-headers/src
+++ b/third_party/webgpu-headers/src
@@ -1 +1 @@
-Subproject commit 4f617851dfa20bd240436d9255bcb7e4dbbb1e3f
+Subproject commit f0494eb7efdd4ac6a113985d08e3e3d54581d345
diff --git a/third_party/webgpu-headers/webgpu.h.diff b/third_party/webgpu-headers/webgpu.h.diff
index afea352..138fe98 100644
--- a/third_party/webgpu-headers/webgpu.h.diff
+++ b/third_party/webgpu-headers/webgpu.h.diff
@@ -1,68 +1,6 @@
 --- webgpu_header
 +++ dawn_header
 @@
- #ifndef WEBGPU_H_
- #define WEBGPU_H_
-+
-+#define WGPU_BREAKING_CHANGE_STRING_VIEW_LABELS
-+#define WGPU_BREAKING_CHANGE_STRING_VIEW_OUTPUT_STRUCTS
-+#define WGPU_BREAKING_CHANGE_STRING_VIEW_CALLBACKS
-+#define WGPU_BREAKING_CHANGE_QUEUE_WORK_DONE_CALLBACK_MESSAGE
-+#define WGPU_BREAKING_CHANGE_COMPATIBILITY_MODE_LIMITS
-+#define WGPU_BREAKING_CHANGE_INSTANCE_FEATURES_LIMITS
- 
- #if defined(WGPU_SHARED_LIBRARY)
- #    if defined(_WIN32)
-@@
- struct WGPUSurfaceTexture;
- struct WGPUTexelCopyBufferLayout;
- struct WGPUTextureBindingLayout;
-+struct WGPUTextureBindingViewDimensionDescriptor;
- struct WGPUTextureViewDescriptor;
- struct WGPUVertexAttribute;
- struct WGPUBindGroupDescriptor;
-@@
-     WGPUFeatureName_ClipDistances = 0x0000000F,
-     WGPUFeatureName_DualSourceBlending = 0x00000010,
-     WGPUFeatureName_Subgroups = 0x00000011,
-+    WGPUFeatureName_CoreFeaturesAndLimits = 0x00000012,
-     WGPUFeatureName_Force32 = 0x7FFFFFFF
- } WGPUFeatureName WGPU_ENUM_ATTRIBUTE;
- 
-@@
- } WGPUIndexFormat WGPU_ENUM_ATTRIBUTE;
- 
- typedef enum WGPUInstanceFeatureName {
--    WGPUInstanceFeatureName_TimedWaitAnyEnable = 0x00000001,
-+    WGPUInstanceFeatureName_TimedWaitAny = 0x00000001,
-     WGPUInstanceFeatureName_ShaderSourceSPIRV = 0x00000002,
-     WGPUInstanceFeatureName_MultipleDevicesPerAdapter = 0x00000003,
-     WGPUInstanceFeatureName_Force32 = 0x7FFFFFFF
-@@
-     WGPUSType_RequestAdapterWebXROptions = 0x0000000B,
-     WGPUSType_Force32 = 0x7FFFFFFF
- } WGPUSType WGPU_ENUM_ATTRIBUTE;
-+
-+typedef enum WGPUSubgroupMatrixComponentType {
-+    WGPUSubgroupMatrixComponentType_F32 = 0x00000001,
-+    WGPUSubgroupMatrixComponentType_F16 = 0x00000002,
-+    WGPUSubgroupMatrixComponentType_U32 = 0x00000003,
-+    WGPUSubgroupMatrixComponentType_I32 = 0x00000004,
-+    WGPUSubgroupMatrixComponentType_Force32 = 0x7FFFFFFF
-+} WGPUSubgroupMatrixComponentType WGPU_ENUM_ATTRIBUTE;
- 
- typedef enum WGPUSurfaceGetCurrentTextureStatus {
-     WGPUSurfaceGetCurrentTextureStatus_SuccessOptimal = 0x00000001,
-@@
-     WGPUWGSLLanguageFeatureName_Packed4x8IntegerDotProduct = 0x00000002,
-     WGPUWGSLLanguageFeatureName_UnrestrictedPointerParameters = 0x00000003,
-     WGPUWGSLLanguageFeatureName_PointerCompositeAccess = 0x00000004,
-+    WGPUWGSLLanguageFeatureName_SizedBindingArray = 0x00000005,
-+    WGPUWGSLLanguageFeatureName_TexelBuffers = 0x00000006,
-     WGPUWGSLLanguageFeatureName_Force32 = 0x7FFFFFFF
- } WGPUWGSLLanguageFeatureName WGPU_ENUM_ATTRIBUTE;
- 
-@@
      WGPUChainedStruct * nextInChain;
      WGPUStringView label;
      size_t bindGroupLayoutCount;
@@ -72,57 +10,6 @@
  } WGPUPipelineLayoutDescriptor WGPU_STRUCTURE_ATTRIBUTE;
  
 @@
-     /*.multisampled=*/WGPU_FALSE _wgpu_COMMA \
- })
- 
-+typedef struct WGPUTextureBindingViewDimensionDescriptor {
-+    WGPUChainedStruct chain;
-+    WGPUTextureViewDimension textureBindingViewDimension;
-+} WGPUTextureBindingViewDimensionDescriptor WGPU_STRUCTURE_ATTRIBUTE;
-+
-+#define WGPU_TEXTURE_BINDING_VIEW_DIMENSION_DESCRIPTOR_INIT _wgpu_MAKE_INIT_STRUCT(WGPUTextureBindingViewDimensionDescriptor, { \
-+    /*.chain=*/_wgpu_MAKE_INIT_STRUCT(WGPUChainedStruct, { \
-+        /*.next=*/NULL _wgpu_COMMA \
-+        /*.sType=*/WGPUSType_TextureBindingViewDimensionDescriptor _wgpu_COMMA \
-+    }) _wgpu_COMMA \
-+    /*.textureBindingViewDimension=*/WGPUTextureViewDimension_Undefined _wgpu_COMMA \
-+})
-+
- typedef struct WGPUTextureViewDescriptor {
-     WGPUChainedStruct * nextInChain;
-     WGPUStringView label;
-@@
-     /*.fragment=*/NULL _wgpu_COMMA \
- })
- 
-+typedef WGPURenderPassMaxDrawCount WGPURenderPassDescriptorMaxDrawCount;
-+
-+typedef WGPUShaderSourceSPIRV WGPUShaderModuleSPIRVDescriptor;
-+
-+typedef WGPUShaderSourceWGSL WGPUShaderModuleWGSLDescriptor;
-+
-+typedef WGPUSurfaceSourceAndroidNativeWindow WGPUSurfaceDescriptorFromAndroidNativeWindow;
-+
-+typedef WGPUSurfaceSourceMetalLayer WGPUSurfaceDescriptorFromMetalLayer;
-+
-+typedef WGPUSurfaceSourceWaylandSurface WGPUSurfaceDescriptorFromWaylandSurface;
-+
-+typedef WGPUSurfaceSourceWindowsHWND WGPUSurfaceDescriptorFromWindowsHWND;
-+
-+typedef WGPUSurfaceSourceXCBWindow WGPUSurfaceDescriptorFromXcbWindow;
-+
-+typedef WGPUSurfaceSourceXlibWindow WGPUSurfaceDescriptorFromXlibWindow;
-+
- #ifdef __cplusplus
- extern "C" {
- #endif
- 
- #if !defined(WGPU_SKIP_PROCS)
-+
-+#ifdef __EMSCRIPTEN__
-+WGPU_EXPORT WGPUDevice emscripten_webgpu_get_device(void);
-+#endif
-+
  typedef WGPUInstance (*WGPUProcCreateInstance)(WGPU_NULLABLE WGPUInstanceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
  typedef void (*WGPUProcGetInstanceFeatures)(WGPUSupportedInstanceFeatures * features) WGPU_FUNCTION_ATTRIBUTE;
  typedef WGPUStatus (*WGPUProcGetInstanceLimits)(WGPUInstanceLimits * limits) WGPU_FUNCTION_ATTRIBUTE;
@@ -152,15 +39,6 @@
  typedef void (*WGPUProcInstanceRelease)(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE;
  
 @@
- typedef void (*WGPUProcRenderPassEncoderEndOcclusionQuery)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
- typedef void (*WGPUProcRenderPassEncoderExecuteBundles)(WGPURenderPassEncoder renderPassEncoder, size_t bundleCount, WGPURenderBundle const * bundles) WGPU_FUNCTION_ATTRIBUTE;
- typedef void (*WGPUProcRenderPassEncoderInsertDebugMarker)(WGPURenderPassEncoder renderPassEncoder, WGPUStringView markerLabel) WGPU_FUNCTION_ATTRIBUTE;
-+typedef void (*WGPUProcRenderPassEncoderMultiDrawIndexedIndirect)(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset, uint32_t maxDrawCount, WGPU_NULLABLE WGPUBuffer drawCountBuffer, uint64_t drawCountBufferOffset) WGPU_FUNCTION_ATTRIBUTE;
-+typedef void (*WGPUProcRenderPassEncoderMultiDrawIndirect)(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset, uint32_t maxDrawCount, WGPU_NULLABLE WGPUBuffer drawCountBuffer, uint64_t drawCountBufferOffset) WGPU_FUNCTION_ATTRIBUTE;
- typedef void (*WGPUProcRenderPassEncoderPopDebugGroup)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
- typedef void (*WGPUProcRenderPassEncoderPushDebugGroup)(WGPURenderPassEncoder renderPassEncoder, WGPUStringView groupLabel) WGPU_FUNCTION_ATTRIBUTE;
- typedef void (*WGPUProcRenderPassEncoderSetBindGroup)(WGPURenderPassEncoder renderPassEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE;
-@@
  typedef void (*WGPUProcShaderModuleAddRef)(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE;
  typedef void (*WGPUProcShaderModuleRelease)(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE;
  
@@ -175,14 +53,6 @@
  typedef void (*WGPUProcSurfaceConfigure)(WGPUSurface surface, WGPUSurfaceConfiguration const * config) WGPU_FUNCTION_ATTRIBUTE;
  typedef WGPUStatus (*WGPUProcSurfaceGetCapabilities)(WGPUSurface surface, WGPUAdapter adapter, WGPUSurfaceCapabilities * capabilities) WGPU_FUNCTION_ATTRIBUTE;
 @@
- typedef void (*WGPUProcTextureViewAddRef)(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE;
- typedef void (*WGPUProcTextureViewRelease)(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE;
- 
-+
- #endif  // !defined(WGPU_SKIP_PROCS)
- 
- #if !defined(WGPU_SKIP_DECLARATIONS)
-+
  WGPU_EXPORT WGPUInstance wgpuCreateInstance(WGPU_NULLABLE WGPUInstanceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
  WGPU_EXPORT void wgpuGetInstanceFeatures(WGPUSupportedInstanceFeatures * features) WGPU_FUNCTION_ATTRIBUTE;
  WGPU_EXPORT WGPUStatus wgpuGetInstanceLimits(WGPUInstanceLimits * limits) WGPU_FUNCTION_ATTRIBUTE;
@@ -211,15 +81,6 @@
  WGPU_EXPORT void wgpuInstanceRelease(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE;
  
 @@
- WGPU_EXPORT void wgpuRenderPassEncoderEndOcclusionQuery(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
- WGPU_EXPORT void wgpuRenderPassEncoderExecuteBundles(WGPURenderPassEncoder renderPassEncoder, size_t bundleCount, WGPURenderBundle const * bundles) WGPU_FUNCTION_ATTRIBUTE;
- WGPU_EXPORT void wgpuRenderPassEncoderInsertDebugMarker(WGPURenderPassEncoder renderPassEncoder, WGPUStringView markerLabel) WGPU_FUNCTION_ATTRIBUTE;
-+WGPU_EXPORT void wgpuRenderPassEncoderMultiDrawIndexedIndirect(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset, uint32_t maxDrawCount, WGPU_NULLABLE WGPUBuffer drawCountBuffer, uint64_t drawCountBufferOffset) WGPU_FUNCTION_ATTRIBUTE;
-+WGPU_EXPORT void wgpuRenderPassEncoderMultiDrawIndirect(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset, uint32_t maxDrawCount, WGPU_NULLABLE WGPUBuffer drawCountBuffer, uint64_t drawCountBufferOffset) WGPU_FUNCTION_ATTRIBUTE;
- WGPU_EXPORT void wgpuRenderPassEncoderPopDebugGroup(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
- WGPU_EXPORT void wgpuRenderPassEncoderPushDebugGroup(WGPURenderPassEncoder renderPassEncoder, WGPUStringView groupLabel) WGPU_FUNCTION_ATTRIBUTE;
- WGPU_EXPORT void wgpuRenderPassEncoderSetBindGroup(WGPURenderPassEncoder renderPassEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE;
-@@
  WGPU_EXPORT void wgpuShaderModuleAddRef(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE;
  WGPU_EXPORT void wgpuShaderModuleRelease(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE;
  
@@ -233,11 +94,3 @@
  
  WGPU_EXPORT void wgpuSurfaceConfigure(WGPUSurface surface, WGPUSurfaceConfiguration const * config) WGPU_FUNCTION_ATTRIBUTE;
  WGPU_EXPORT WGPUStatus wgpuSurfaceGetCapabilities(WGPUSurface surface, WGPUAdapter adapter, WGPUSurfaceCapabilities * capabilities) WGPU_FUNCTION_ATTRIBUTE;
-@@
- WGPU_EXPORT void wgpuTextureViewAddRef(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE;
- WGPU_EXPORT void wgpuTextureViewRelease(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE;
- 
-+
- #endif  // !defined(WGPU_SKIP_DECLARATIONS)
- 
- #ifdef __cplusplus
diff --git a/tools/android/BUILD.gn b/tools/android/BUILD.gn
index 20c0ae5..0670c7d 100644
--- a/tools/android/BUILD.gn
+++ b/tools/android/BUILD.gn
@@ -179,7 +179,6 @@
     "java/android/dawn/StorageTextureAccess.kt",
     "java/android/dawn/StorageTextureBindingLayout.kt",
     "java/android/dawn/StoreOp.kt",
-    "java/android/dawn/SubgroupMatrixComponentType.kt",
     "java/android/dawn/SupportedFeatures.kt",
     "java/android/dawn/SupportedInstanceFeatures.kt",
     "java/android/dawn/SupportedWGSLLanguageFeatures.kt",
@@ -196,7 +195,6 @@
     "java/android/dawn/TexelCopyTextureInfo.kt",
     "java/android/dawn/TextureAspect.kt",
     "java/android/dawn/TextureBindingLayout.kt",
-    "java/android/dawn/TextureBindingViewDimensionDescriptor.kt",
     "java/android/dawn/TextureDescriptor.kt",
     "java/android/dawn/TextureDimension.kt",
     "java/android/dawn/TextureFormat.kt",
diff --git a/tools/android/webgpu/src/test/java/android/dawn/MappedNamedConstantsTest.kt b/tools/android/webgpu/src/test/java/android/dawn/MappedNamedConstantsTest.kt
index e4eb714..fde3de0 100644
--- a/tools/android/webgpu/src/test/java/android/dawn/MappedNamedConstantsTest.kt
+++ b/tools/android/webgpu/src/test/java/android/dawn/MappedNamedConstantsTest.kt
@@ -82,7 +82,6 @@
         StorageTextureAccess::class,
         StoreOp::class,
         SType::class,
-        SubgroupMatrixComponentType::class,
         SurfaceGetCurrentTextureStatus::class,
         TextureAspect::class,
         TextureDimension::class,
