Revert "[dawn] Promote ExternalTexture to Core"

This reverts commit b66000dd386d69b2bab339b53c90198e87e56132.

Reason for revert: broke build
https://ci.chromium.org/ui/p/dawn/builders/ci/dawn-win-x64-builder-rel/976/overview

Original change's description:
> [dawn] Promote ExternalTexture to Core
>
> These became standard/stable in
> https://github.com/webgpu-native/webgpu-headers/pull/570
>
> Bug: 462477379, 465339954
> Change-Id: I5f1405df128401f97e9a26fb781d56097e13787f
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/276941
> Commit-Queue: Brandon Jones <bajones@chromium.org>
> Reviewed-by: Brandon Jones <bajones@chromium.org>
> Commit-Queue: Kai Ninomiya <kainino@chromium.org>
> Auto-Submit: Kai Ninomiya <kainino@chromium.org>

TBR=kainino@chromium.org,bajones@chromium.org,dawn-scoped@luci-project-accounts.iam.gserviceaccount.com

No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 462477379, 465339954
Change-Id: I30a7d0af67256fdc9ed69ea805216bfbb7c581bd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/277918
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
diff --git a/src/dawn/dawn.json b/src/dawn/dawn.json
index da62966..fe09850 100644
--- a/src/dawn/dawn.json
+++ b/src/dawn/dawn.json
@@ -515,6 +515,7 @@
         "category": "structure",
         "chained": "in",
         "chain roots": ["bind group entry"],
+        "tags": ["dawn", "emscripten"],
         "members": [
             {"name": "external texture", "type": "external texture"}
         ]
@@ -534,6 +535,7 @@
         "category": "structure",
         "chained": "in",
         "chain roots": ["bind group layout entry"],
+        "tags": ["dawn", "emscripten"],
         "members": []
     },
 
@@ -1835,6 +1837,7 @@
     },
     "external texture": {
         "category": "object",
+        "tags": ["dawn", "emscripten"],
         "methods": [
             {
                 "name": "set label",
@@ -3935,8 +3938,6 @@
             {"value": 10, "name": "surface color management"},
             {"value": 11, "name": "request adapter WebXR options"},
             {"value": 12, "name": "texture component swizzle descriptor"},
-            {"value": 13, "name": "external texture binding layout"},
-            {"value": 14, "name": "external texture binding entry"},
 
             {"value": 0, "name": "compatibility mode limits", "tags": ["compat"]},
             {"value": 1, "name": "texture binding view dimension descriptor", "tags": ["compat"]},
@@ -3944,6 +3945,8 @@
             {"value": 0, "name": "emscripten surface source canvas HTML selector", "tags": ["emscripten"]},
 
             {"value": 0, "name": "surface descriptor from windows core window", "tags": ["dawn"]},
+            {"value": 1, "name": "external texture binding entry", "tags": ["dawn", "emscripten"]},
+            {"value": 2, "name": "external texture binding layout", "tags": ["dawn", "emscripten"]},
             {"value": 3, "name": "surface descriptor from windows UWP swap chain panel", "tags": ["dawn"]},
             {"value": 4, "name": "dawn texture internal usage descriptor", "tags": ["dawn"]},
             {"value": 5, "name": "dawn encoder internal usage descriptor", "tags": ["dawn"]},
diff --git a/third_party/webgpu-headers/webgpu.h.diff b/third_party/webgpu-headers/webgpu.h.diff
index 2820e7b..5ed30df 100644
--- a/third_party/webgpu-headers/webgpu.h.diff
+++ b/third_party/webgpu-headers/webgpu.h.diff
@@ -1,14 +1,47 @@
 --- webgpu_header
 +++ dawn_header
 @@
+ typedef struct WGPUComputePassEncoderImpl* WGPUComputePassEncoder WGPU_OBJECT_ATTRIBUTE;
+ typedef struct WGPUComputePipelineImpl* WGPUComputePipeline WGPU_OBJECT_ATTRIBUTE;
+ typedef struct WGPUDeviceImpl* WGPUDevice WGPU_OBJECT_ATTRIBUTE;
+-typedef struct WGPUExternalTextureImpl* WGPUExternalTexture WGPU_OBJECT_ATTRIBUTE;
+ typedef struct WGPUInstanceImpl* WGPUInstance WGPU_OBJECT_ATTRIBUTE;
+ typedef struct WGPUPipelineLayoutImpl* WGPUPipelineLayout WGPU_OBJECT_ATTRIBUTE;
+ typedef struct WGPUQuerySetImpl* WGPUQuerySet WGPU_OBJECT_ATTRIBUTE;
+@@
+ typedef struct WGPUTextureViewImpl* WGPUTextureView WGPU_OBJECT_ATTRIBUTE;
+ 
+ struct WGPUAdapterInfo;
++struct WGPUBindGroupEntry;
+ struct WGPUBlendComponent;
+ struct WGPUBufferBindingLayout;
+ struct WGPUBufferDescriptor;
+@@
+ struct WGPUCompilationMessage;
+ struct WGPUConstantEntry;
+ struct WGPUExtent3D;
+-struct WGPUExternalTextureBindingEntry;
+-struct WGPUExternalTextureBindingLayout;
+ struct WGPUFuture;
+ struct WGPUInstanceLimits;
+ struct WGPULimits;
+@@
  struct WGPUTexelCopyBufferLayout;
  struct WGPUTextureBindingLayout;
  struct WGPUTextureComponentSwizzle;
 -struct WGPUTextureViewDescriptor;
  struct WGPUVertexAttribute;
- struct WGPUBindGroupEntry;
+-struct WGPUBindGroupEntry;
++struct WGPUBindGroupDescriptor;
  struct WGPUBindGroupLayoutEntry;
+ struct WGPUBlendState;
+ struct WGPUCompilationInfo;
 @@
+ struct WGPUTextureComponentSwizzleDescriptor;
+ struct WGPUTextureDescriptor;
+ struct WGPUVertexBufferLayout;
+-struct WGPUBindGroupDescriptor;
+ struct WGPUBindGroupLayoutDescriptor;
  struct WGPUColorTargetState;
  struct WGPUComputePipelineDescriptor;
  struct WGPURenderPassDescriptor;
@@ -17,6 +50,73 @@
  struct WGPUFragmentState;
  struct WGPURenderPipelineDescriptor;
 @@
+     WGPUSType_SurfaceColorManagement = 0x0000000A,
+     WGPUSType_RequestAdapterWebXROptions = 0x0000000B,
+     WGPUSType_TextureComponentSwizzleDescriptor = 0x0000000C,
+-    WGPUSType_ExternalTextureBindingLayout = 0x0000000D,
+-    WGPUSType_ExternalTextureBindingEntry = 0x0000000E,
+     WGPUSType_Force32 = 0x7FFFFFFF
+ } WGPUSType WGPU_ENUM_ATTRIBUTE;
+ 
+@@
+     /*.subgroupMaxSize=*/0 _wgpu_COMMA \
+ })
+ 
++typedef struct WGPUBindGroupEntry {
++    WGPUChainedStruct * nextInChain;
++    uint32_t binding;
++    WGPU_NULLABLE WGPUBuffer buffer;
++    uint64_t offset;
++    uint64_t size;
++    WGPU_NULLABLE WGPUSampler sampler;
++    WGPU_NULLABLE WGPUTextureView textureView;
++} WGPUBindGroupEntry WGPU_STRUCTURE_ATTRIBUTE;
++
++#define WGPU_BIND_GROUP_ENTRY_INIT _wgpu_MAKE_INIT_STRUCT(WGPUBindGroupEntry, { \
++    /*.nextInChain=*/NULL _wgpu_COMMA \
++    /*.binding=*/0 _wgpu_COMMA \
++    /*.buffer=*/NULL _wgpu_COMMA \
++    /*.offset=*/0 _wgpu_COMMA \
++    /*.size=*/WGPU_WHOLE_SIZE _wgpu_COMMA \
++    /*.sampler=*/NULL _wgpu_COMMA \
++    /*.textureView=*/NULL _wgpu_COMMA \
++})
++
+ typedef struct WGPUBlendComponent {
+     WGPUBlendOperation operation;
+     WGPUBlendFactor srcFactor;
+@@
+     /*.width=*/0 _wgpu_COMMA \
+     /*.height=*/1 _wgpu_COMMA \
+     /*.depthOrArrayLayers=*/1 _wgpu_COMMA \
+-})
+-
+-typedef struct WGPUExternalTextureBindingEntry {
+-    WGPUChainedStruct chain;
+-    WGPUExternalTexture externalTexture;
+-} WGPUExternalTextureBindingEntry WGPU_STRUCTURE_ATTRIBUTE;
+-
+-#define WGPU_EXTERNAL_TEXTURE_BINDING_ENTRY_INIT _wgpu_MAKE_INIT_STRUCT(WGPUExternalTextureBindingEntry, { \
+-    /*.chain=*/_wgpu_MAKE_INIT_STRUCT(WGPUChainedStruct, { \
+-        /*.next=*/NULL _wgpu_COMMA \
+-        /*.sType=*/WGPUSType_ExternalTextureBindingEntry _wgpu_COMMA \
+-    }) _wgpu_COMMA \
+-    /*.externalTexture=*/NULL _wgpu_COMMA \
+-})
+-
+-typedef struct WGPUExternalTextureBindingLayout {
+-    WGPUChainedStruct chain;
+-} WGPUExternalTextureBindingLayout WGPU_STRUCTURE_ATTRIBUTE;
+-
+-#define WGPU_EXTERNAL_TEXTURE_BINDING_LAYOUT_INIT _wgpu_MAKE_INIT_STRUCT(WGPUExternalTextureBindingLayout, { \
+-    /*.chain=*/_wgpu_MAKE_INIT_STRUCT(WGPUChainedStruct, { \
+-        /*.next=*/NULL _wgpu_COMMA \
+-        /*.sType=*/WGPUSType_ExternalTextureBindingLayout _wgpu_COMMA \
+-    }) _wgpu_COMMA \
+ })
+ 
+ typedef struct WGPUFuture {
+@@
      /*.a=*/WGPUComponentSwizzle_Undefined _wgpu_COMMA \
  })
  
@@ -50,6 +150,68 @@
      WGPUChainedStruct * nextInChain;
      WGPUVertexFormat format;
 @@
+     /*.shaderLocation=*/0 _wgpu_COMMA \
+ })
+ 
+-typedef struct WGPUBindGroupEntry {
+-    WGPUChainedStruct * nextInChain;
+-    uint32_t binding;
+-    WGPU_NULLABLE WGPUBuffer buffer;
+-    uint64_t offset;
+-    uint64_t size;
+-    WGPU_NULLABLE WGPUSampler sampler;
+-    WGPU_NULLABLE WGPUTextureView textureView;
+-} WGPUBindGroupEntry WGPU_STRUCTURE_ATTRIBUTE;
+-
+-#define WGPU_BIND_GROUP_ENTRY_INIT _wgpu_MAKE_INIT_STRUCT(WGPUBindGroupEntry, { \
+-    /*.nextInChain=*/NULL _wgpu_COMMA \
+-    /*.binding=*/0 _wgpu_COMMA \
+-    /*.buffer=*/NULL _wgpu_COMMA \
+-    /*.offset=*/0 _wgpu_COMMA \
+-    /*.size=*/WGPU_WHOLE_SIZE _wgpu_COMMA \
+-    /*.sampler=*/NULL _wgpu_COMMA \
+-    /*.textureView=*/NULL _wgpu_COMMA \
++typedef struct WGPUBindGroupDescriptor {
++    WGPUChainedStruct * nextInChain;
++    WGPUStringView label;
++    WGPUBindGroupLayout layout;
++    size_t entryCount;
++    WGPUBindGroupEntry const * entries;
++} WGPUBindGroupDescriptor WGPU_STRUCTURE_ATTRIBUTE;
++
++#define WGPU_BIND_GROUP_DESCRIPTOR_INIT _wgpu_MAKE_INIT_STRUCT(WGPUBindGroupDescriptor, { \
++    /*.nextInChain=*/NULL _wgpu_COMMA \
++    /*.label=*/WGPU_STRING_VIEW_INIT _wgpu_COMMA \
++    /*.layout=*/NULL _wgpu_COMMA \
++    /*.entryCount=*/0 _wgpu_COMMA \
++    /*.entries=*/NULL _wgpu_COMMA \
+ })
+ 
+ typedef struct WGPUBindGroupLayoutEntry {
+@@
+     /*.attributes=*/NULL _wgpu_COMMA \
+ })
+ 
+-typedef struct WGPUBindGroupDescriptor {
+-    WGPUChainedStruct * nextInChain;
+-    WGPUStringView label;
+-    WGPUBindGroupLayout layout;
+-    size_t entryCount;
+-    WGPUBindGroupEntry const * entries;
+-} WGPUBindGroupDescriptor WGPU_STRUCTURE_ATTRIBUTE;
+-
+-#define WGPU_BIND_GROUP_DESCRIPTOR_INIT _wgpu_MAKE_INIT_STRUCT(WGPUBindGroupDescriptor, { \
+-    /*.nextInChain=*/NULL _wgpu_COMMA \
+-    /*.label=*/WGPU_STRING_VIEW_INIT _wgpu_COMMA \
+-    /*.layout=*/NULL _wgpu_COMMA \
+-    /*.entryCount=*/0 _wgpu_COMMA \
+-    /*.entries=*/NULL _wgpu_COMMA \
+-})
+-
+ typedef struct WGPUBindGroupLayoutDescriptor {
+     WGPUChainedStruct * nextInChain;
+     WGPUStringView label;
+@@
      /*.depthStencilAttachment=*/NULL _wgpu_COMMA \
      /*.occlusionQuerySet=*/NULL _wgpu_COMMA \
      /*.timestampWrites=*/NULL _wgpu_COMMA \
@@ -82,3 +244,25 @@
  })
  
  typedef struct WGPUVertexState {
+@@
+ typedef void (*WGPUProcDeviceAddRef)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
+ typedef void (*WGPUProcDeviceRelease)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
+ 
+-typedef void (*WGPUProcExternalTextureSetLabel)(WGPUExternalTexture externalTexture, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE;
+-typedef void (*WGPUProcExternalTextureAddRef)(WGPUExternalTexture externalTexture) WGPU_FUNCTION_ATTRIBUTE;
+-typedef void (*WGPUProcExternalTextureRelease)(WGPUExternalTexture externalTexture) WGPU_FUNCTION_ATTRIBUTE;
+-
+ typedef WGPUSurface (*WGPUProcInstanceCreateSurface)(WGPUInstance instance, WGPUSurfaceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
+ typedef void (*WGPUProcInstanceGetWGSLLanguageFeatures)(WGPUInstance instance, WGPUSupportedWGSLLanguageFeatures * features) WGPU_FUNCTION_ATTRIBUTE;
+ typedef WGPUBool (*WGPUProcInstanceHasWGSLLanguageFeature)(WGPUInstance instance, WGPUWGSLLanguageFeatureName feature) WGPU_FUNCTION_ATTRIBUTE;
+@@
+ WGPU_EXPORT void wgpuDeviceAddRef(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
+ WGPU_EXPORT void wgpuDeviceRelease(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
+ 
+-WGPU_EXPORT void wgpuExternalTextureSetLabel(WGPUExternalTexture externalTexture, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE;
+-WGPU_EXPORT void wgpuExternalTextureAddRef(WGPUExternalTexture externalTexture) WGPU_FUNCTION_ATTRIBUTE;
+-WGPU_EXPORT void wgpuExternalTextureRelease(WGPUExternalTexture externalTexture) WGPU_FUNCTION_ATTRIBUTE;
+-
+ WGPU_EXPORT WGPUSurface wgpuInstanceCreateSurface(WGPUInstance instance, WGPUSurfaceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
+ WGPU_EXPORT void wgpuInstanceGetWGSLLanguageFeatures(WGPUInstance instance, WGPUSupportedWGSLLanguageFeatures * features) WGPU_FUNCTION_ATTRIBUTE;
+ WGPU_EXPORT WGPUBool wgpuInstanceHasWGSLLanguageFeature(WGPUInstance instance, WGPUWGSLLanguageFeatureName feature) WGPU_FUNCTION_ATTRIBUTE;