[dawn][headers] Update default values generated in headers.

- For enums with an explicit "undefined" value, that should
  be the default for the struct in the header instead of the
  "default_value" from dawn.json. The "default_value" from
  dawn.json should only be applied when calling
  `WithTrivialFrontendDefaults`.
- Updates RequestAdapterOptions to use
  WithTrivialFrontendDefaults where applicable.
- Updates some TextureDescriptor usages to use
  WithTrivialFrontendDefaults where applicable.
- Adds Undefined for PresentMode, and handling of it. Note
  that this required adding some switch cases for C++, but
  maybe we shouldn't bother generating the Undefined enum
  in C++ all together? Will follow up with another change
  depending on decisions.
- Updates defaults in dawn.json to match upstream.

Bug: 402498095
Change-Id: I8fd5b5b9620f35652b8c38ec145972740a8ad5b8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/230315
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
diff --git a/generator/dawn_json_generator.py b/generator/dawn_json_generator.py
index 284b6647..5905157 100644
--- a/generator/dawn_json_generator.py
+++ b/generator/dawn_json_generator.py
@@ -242,9 +242,6 @@
         self.default_value = default_value
         self.skip_serialize = skip_serialize
 
-        if self.type.category == "bitmask" and not self.default_value:
-            self.default_value = "none"
-
     def set_handle_type(self, handle_type):
         assert self.type.dict_name == "ObjectHandle"
         self.handle_type = handle_type
diff --git a/generator/templates/api.h b/generator/templates/api.h
index 7940c4c..92087c3 100644
--- a/generator/templates/api.h
+++ b/generator/templates/api.h
@@ -168,17 +168,24 @@
         //* Callback function types should always default to NULL.
         NULL
     {%- elif member.type.category == "enum" -%}
-        //* Enum types are either their default values, or zero-init.
-        {%- if member.default_value != None -%}
+        {%- if member.type.hasUndefined -%}
+            //* For enums that have an undefined value, instead of using the
+            //* default, just put undefined.
+            {{as_cEnum(member.type.name, Name("undefined"))}}
+        {%- elif member.default_value != None -%}
+            //* Enum types are either their default values, or zero-init.
             {{as_cEnum(member.type.name, Name(member.default_value))}}
         {%- else -%}
             _{{api}}_ENUM_ZERO_INIT({{as_cType(member.type.name)}})
         {%- endif -%}
     {%- elif member.type.category == "bitmask" -%}
-        //* Bitmask types should always have a default since they are set in
-        //* the generator.
-        {{- assert(member.default_value != None) -}}
-        {{as_cEnum(member.type.name, Name(member.default_value))}}
+        {%- if member.default_value != None -%}
+            {{as_cEnum(member.type.name, Name(member.default_value))}}
+        {%- else -%}
+            //* Bitmask types should currently always default to "none" if not
+            //* explicitly set.
+            {{as_cEnum(member.type.name, Name("none"))}}
+        {%- endif -%}
     {%- elif member.type.category in ["structure", "callback info"] -%}
         //* Structure types, must be by value here, otherwise, they should have
         //* been caught as a pointer type.
diff --git a/generator/templates/api_cpp.h b/generator/templates/api_cpp.h
index 1c7bc79..2a64ada 100644
--- a/generator/templates/api_cpp.h
+++ b/generator/templates/api_cpp.h
@@ -301,12 +301,30 @@
     {%- if forced_default_value -%}
         {{" "}}= {{forced_default_value}}
     {%- elif member.json_data.get("no_default", false) -%}
-    {%- elif member.annotation in ["*", "const*", "const*const*"] and member.optional or member.default_value == "nullptr" -%}
+    {%- elif member.annotation in ["*", "const*", "const*const*"] and (is_struct or member.optional or member.default_value == "nullptr") -%}
         {{" "}}= nullptr
-    {%- elif member.type.category == "object" and member.optional and is_struct -%}
+    {%- elif member.type.category == "object" and (is_struct or member.optional) -%}
         {{" "}}= nullptr
-    {%- elif member.type.category in ["enum", "bitmask"] and member.default_value != None -%}
-        {{" "}}= {{as_cppType(member.type.name)}}::{{as_cppEnum(Name(member.default_value))}}
+    {%- elif member.type.category == "enum" -%}
+        //* For enums that have an undefined value, instead of using the
+        //* default, just put undefined because they should be the same.
+        {%- if member.type.hasUndefined and is_struct -%}
+            {{" "}}= {{as_cppType(member.type.name)}}::{{as_cppEnum(Name("undefined"))}}
+        {%- elif member.default_value != None -%}
+            {{" "}}= {{as_cppType(member.type.name)}}::{{as_cppEnum(Name(member.default_value))}}
+        {%- elif is_struct -%}
+            {{" "}}= {}
+        {%- endif -%}
+    {%- elif member.type.category == "bitmask" -%}
+        {%- if is_struct or member.optional -%}
+            {%- if member.default_value != None -%}
+                {{" "}}= {{as_cppType(member.type.name)}}::{{as_cppEnum(Name(member.default_value))}}
+            {%- else -%}
+                //* Bitmask types should currently always default to "none" if not
+                //* explicitly set.
+                {{" "}}= {{as_cppType(member.type.name)}}::{{as_cppEnum(Name("none"))}}
+            {%- endif -%}
+        {%- endif -%}
     {%- elif member.type.category == "native" and member.default_value != None -%}
         {{" "}}= {{member.default_value}}
     {%- elif member.default_value != None -%}
diff --git a/generator/templates/dawn/native/api_structs.h b/generator/templates/dawn/native/api_structs.h
index b6616d0..e4027a1 100644
--- a/generator/templates/dawn/native/api_structs.h
+++ b/generator/templates/dawn/native/api_structs.h
@@ -48,16 +48,33 @@
 namespace {{native_namespace}} {
 
 {% macro render_cpp_default_value(member, forced_default_value="") -%}
+    //* Apply default values over undefined when dealing with the Dawn
+    //* native header to avoid needing to do the additional step of
+    //* resolving trivial defaults internally.
     {%- if forced_default_value -%}
         {{" "}}= {{forced_default_value}}
-    {%- elif member.annotation in ["*", "const*", "const*const*"] and member.optional or member.default_value == "nullptr" -%}
+    {%- elif member.annotation in ["*", "const*", "const*const*"] or member.default_value == "nullptr" -%}
         {{" "}}= nullptr
     {%- elif member.type.category == "object" and member.optional -%}
         {{" "}}= nullptr
     {%- elif member.type.category == "callback info" -%}
         {{" "}}= {{CAPI}}_{{member.name.SNAKE_CASE()}}_INIT
-    {%- elif member.type.category in ["enum", "bitmask"] and member.default_value != None -%}
-        {{" "}}= {{namespace}}::{{as_cppType(member.type.name)}}::{{as_cppEnum(Name(member.default_value))}}
+    {%- elif member.type.category == "enum" -%}
+        {%- if member.default_value != None -%}
+            {{" "}}= {{namespace}}::{{as_cppType(member.type.name)}}::{{as_cppEnum(Name(member.default_value))}}
+        {%- elif member.type.hasUndefined -%}
+            {{" "}}= {{namespace}}::{{as_cppType(member.type.name)}}::{{as_cppEnum(Name("undefined"))}}
+        {%- else -%}
+            {{" "}}= {}
+        {%- endif -%}
+    {%- elif member.type.category == "bitmask" -%}
+        {%- if member.default_value != None -%}
+            {{" "}}= {{namespace}}::{{as_cppType(member.type.name)}}::{{as_cppEnum(Name(member.default_value))}}
+        {%- else -%}
+            //* Bitmask types should currently always default to "none" if not
+            //* explicitly set.
+            {{" "}}= {{namespace}}::{{as_cppType(member.type.name)}}::{{as_cppEnum(Name("none"))}}
+        {%- endif -%}
     {%- elif member.type.category == "native" and member.default_value != None -%}
         {{" "}}= {{member.default_value}}
     {%- elif member.default_value != None -%}
diff --git a/src/dawn/dawn.json b/src/dawn/dawn.json
index 5f468fd..6cb3ce1 100644
--- a/src/dawn/dawn.json
+++ b/src/dawn/dawn.json
@@ -74,9 +74,9 @@
         "extensible": "in",
         "members": [
             {"name": "feature level", "type": "feature level", "default": "core"},
-            {"name": "power preference", "type": "power preference", "default": "undefined"},
+            {"name": "power preference", "type": "power preference"},
             {"name": "force fallback adapter", "type": "bool", "default": "false"},
-            {"name": "backend type", "type": "backend type", "default": "undefined"},
+            {"name": "backend type", "type": "backend type"},
             {"name": "compatible surface", "type": "surface", "optional": true}
         ]
     },
@@ -186,7 +186,7 @@
             {"name": "architecture", "type": "string view"},
             {"name": "device", "type": "string view"},
             {"name": "description", "type": "string view"},
-            {"name": "backend type", "type": "backend type", "default": "undefined"},
+            {"name": "backend type", "type": "backend type"},
             {"name": "adapter type", "type": "adapter type"},
             {"name": "vendor ID", "type": "uint32_t"},
             {"name": "device ID", "type": "uint32_t"},
@@ -481,7 +481,7 @@
         "extensible": "in",
         "members": [
             {"name": "access", "type": "storage texture access", "default": "write only"},
-            {"name": "format", "type": "texture format", "default": "undefined"},
+            {"name": "format", "type": "texture format"},
             {"name": "view dimension", "type": "texture view dimension", "default": "2D"}
         ]
     },
@@ -2661,6 +2661,7 @@
         "category": "enum",
         "emscripten_no_enum_table": true,
         "values": [
+            {"value": 0, "name": "undefined"},
             {"value": 1, "name": "fifo"},
             {"value": 2, "name": "fifo relaxed"},
             {"value": 3, "name": "immediate"},
@@ -2963,7 +2964,7 @@
             {"name": "label", "type": "string view", "optional": true},
             {"name": "color format count", "type": "size_t"},
             {"name": "color formats", "type": "texture format", "annotation": "const*", "length": "color format count"},
-            {"name": "depth stencil format", "type": "texture format", "default": "undefined"},
+            {"name": "depth stencil format", "type": "texture format"},
             {"name": "sample count", "type": "uint32_t", "default": "1"},
             {"name": "depth read only", "type": "bool", "default": "false"},
             {"name": "stencil read only", "type": "bool", "default": "false"}
@@ -2996,12 +2997,12 @@
         "extensible": "in",
         "members": [
             {"name": "view", "type": "texture view"},
-            {"name": "depth load op", "type": "load op", "default": "undefined"},
-            {"name": "depth store op", "type": "store op", "default": "undefined"},
+            {"name": "depth load op", "type": "load op"},
+            {"name": "depth store op", "type": "store op"},
             {"name": "depth clear value", "type": "float", "default": "NAN"},
             {"name": "depth read only", "type": "bool", "default": "false"},
-            {"name": "stencil load op", "type": "load op", "default": "undefined"},
-            {"name": "stencil store op", "type": "store op", "default": "undefined"},
+            {"name": "stencil load op", "type": "load op"},
+            {"name": "stencil store op", "type": "store op"},
             {"name": "stencil clear value", "type": "uint32_t", "default": "0"},
             {"name": "stencil read only", "type": "bool", "default": "false"}
         ]
@@ -3318,7 +3319,7 @@
         "extensible": "in",
         "members": [
             {"name": "topology", "type": "primitive topology", "default": "triangle list"},
-            {"name": "strip index format", "type": "index format", "default": "undefined"},
+            {"name": "strip index format", "type": "index format"},
             {"name": "front face", "type": "front face", "default": "CCW"},
             {"name": "cull mode", "type": "cull mode", "default": "none"},
             {"name": "unclipped depth", "type": "bool", "default": "false"}
@@ -3330,8 +3331,8 @@
         "extensible": "in",
         "members": [
             {"name": "format", "type": "texture format"},
-            {"name": "depth write enabled", "type": "optional bool", "default": "undefined"},
-            {"name": "depth compare", "type": "compare function", "default": "undefined"},
+            {"name": "depth write enabled", "type": "optional bool"},
+            {"name": "depth compare", "type": "compare function"},
             {"name": "stencil front", "type": "stencil face state"},
             {"name": "stencil back", "type": "stencil face state"},
             {"name": "stencil read mask", "type": "uint32_t", "default": "0xFFFFFFFF"},
@@ -3430,7 +3431,7 @@
             {"name": "mipmap filter", "type": "mipmap filter mode", "default": "nearest"},
             {"name": "lod min clamp", "type": "float", "default": "0.0f"},
             {"name": "lod max clamp", "type": "float", "default": "32.0f"},
-            {"name": "compare", "type": "compare function", "default": "undefined"},
+            {"name": "compare", "type": "compare function"},
             {"name": "max anisotropy", "type": "uint16_t", "default": "1"}
         ]
     },
@@ -3931,7 +3932,7 @@
         "chained": "in",
         "chain roots": ["texture descriptor"],
         "members": [
-            {"name": "texture binding view dimension", "type": "texture view dimension", "default": "undefined"}
+            {"name": "texture binding view dimension", "type": "texture view dimension"}
         ]
     },
     "texture dimension": {
@@ -4087,8 +4088,8 @@
         "extensible": "in",
         "members": [
             {"name": "label", "type": "string view", "optional": true},
-            {"name": "format", "type": "texture format", "default": "undefined"},
-            {"name": "dimension", "type": "texture view dimension", "default": "undefined"},
+            {"name": "format", "type": "texture format"},
+            {"name": "dimension", "type": "texture view dimension"},
             {"name": "base mip level", "type": "uint32_t", "default": "0"},
             {"name": "mip level count", "type": "uint32_t", "default": "WGPU_MIP_LEVEL_COUNT_UNDEFINED"},
             {"name": "base array layer", "type": "uint32_t", "default": "0"},
@@ -4328,7 +4329,7 @@
         "chain roots": ["adapter info"],
         "tags": ["dawn"],
         "members": [
-            {"name": "power preference", "type": "power preference", "default": "undefined"}
+            {"name": "power preference", "type": "power preference"}
         ]
     },
     "heap property": {
diff --git a/src/dawn/native/Adapter.cpp b/src/dawn/native/Adapter.cpp
index c63acb2..28792e0 100644
--- a/src/dawn/native/Adapter.cpp
+++ b/src/dawn/native/Adapter.cpp
@@ -516,9 +516,8 @@
 }
 
 std::vector<Ref<AdapterBase>> SortAdapters(std::vector<Ref<AdapterBase>> adapters,
-                                           const RequestAdapterOptions* options) {
-    const bool highPerformance =
-        options != nullptr && options->powerPreference == wgpu::PowerPreference::HighPerformance;
+                                           const UnpackedPtr<RequestAdapterOptions>& options) {
+    const bool highPerformance = options->powerPreference == wgpu::PowerPreference::HighPerformance;
 
     const auto ComputeAdapterTypeRank = [&](const Ref<AdapterBase>& a) {
         switch (a->GetPhysicalDevice()->GetAdapterType()) {
diff --git a/src/dawn/native/Adapter.h b/src/dawn/native/Adapter.h
index 2674e67..d8b286c 100644
--- a/src/dawn/native/Adapter.h
+++ b/src/dawn/native/Adapter.h
@@ -117,7 +117,7 @@
 };
 
 std::vector<Ref<AdapterBase>> SortAdapters(std::vector<Ref<AdapterBase>> adapters,
-                                           const RequestAdapterOptions* options);
+                                           const UnpackedPtr<RequestAdapterOptions>& options);
 
 }  // namespace dawn::native
 
diff --git a/src/dawn/native/Instance.cpp b/src/dawn/native/Instance.cpp
index 01c75e9..8c54cd9 100644
--- a/src/dawn/native/Instance.cpp
+++ b/src/dawn/native/Instance.cpp
@@ -357,24 +357,25 @@
         return EnumerateAdapters(&kDefaultOptions);
     }
 
-    UnpackedPtr<RequestAdapterOptions> unpacked = Unpack(options);
+    RequestAdapterOptions rawOptions = options->WithTrivialFrontendDefaults();
+    UnpackedPtr<RequestAdapterOptions> unpacked = Unpack(&rawOptions);
     auto* togglesDesc = unpacked.Get<DawnTogglesDescriptor>();
 
     std::vector<Ref<AdapterBase>> adapters;
     for (const auto& physicalDevice : EnumeratePhysicalDevices(unpacked)) {
-        DAWN_ASSERT(physicalDevice->SupportsFeatureLevel(options->featureLevel, this));
-        adapters.push_back(CreateAdapter(physicalDevice, options->featureLevel, togglesDesc,
+        DAWN_ASSERT(physicalDevice->SupportsFeatureLevel(unpacked->featureLevel, this));
+        adapters.push_back(CreateAdapter(physicalDevice, unpacked->featureLevel, togglesDesc,
                                          unpacked->powerPreference));
     }
 
-    if (options->backendType == wgpu::BackendType::D3D11 ||
-        options->backendType == wgpu::BackendType::D3D12) {
+    if (unpacked->backendType == wgpu::BackendType::D3D11 ||
+        unpacked->backendType == wgpu::BackendType::D3D12) {
         // If a D3D backend was requested, the order of the adapters returned by DXGI should be
         // preserved instead of sorting by whether they are integrated vs. discrete. DXGI
         // returns the correct order based on system settings and configuration.
         return adapters;
     }
-    return SortAdapters(std::move(adapters), options);
+    return SortAdapters(std::move(adapters), unpacked);
 }
 
 BackendConnection* InstanceBase::GetBackendConnection(wgpu::BackendType backendType) {
diff --git a/src/dawn/native/Sampler.cpp b/src/dawn/native/Sampler.cpp
index 8f69413..0f4eedc 100644
--- a/src/dawn/native/Sampler.cpp
+++ b/src/dawn/native/Sampler.cpp
@@ -97,7 +97,7 @@
       mMaxAnisotropy(descriptor->maxAnisotropy) {
     if (auto* yCbCrVkDescriptor = Unpack(descriptor).Get<YCbCrVkDescriptor>()) {
         mIsYCbCr = true;
-        mYCbCrVkDescriptor = *yCbCrVkDescriptor;
+        mYCbCrVkDescriptor = yCbCrVkDescriptor->WithTrivialFrontendDefaults();
         mYCbCrVkDescriptor.nextInChain = nullptr;
     }
 }
diff --git a/src/dawn/native/SharedTextureMemory.cpp b/src/dawn/native/SharedTextureMemory.cpp
index 0f5d8ca..23a96ab 100644
--- a/src/dawn/native/SharedTextureMemory.cpp
+++ b/src/dawn/native/SharedTextureMemory.cpp
@@ -165,8 +165,9 @@
     DAWN_TRY(GetDevice()->ValidateIsAlive());
     DAWN_TRY(GetDevice()->ValidateObject(this));
 
+    TextureDescriptor reifiedDescriptor = rawDescriptor->WithTrivialFrontendDefaults();
     UnpackedPtr<TextureDescriptor> descriptor;
-    DAWN_TRY_ASSIGN(descriptor, ValidateAndUnpack(rawDescriptor));
+    DAWN_TRY_ASSIGN(descriptor, ValidateAndUnpack(&reifiedDescriptor));
 
     // Validate that there is one 2D, single-sampled subresource
     DAWN_INVALID_IF(descriptor->dimension != wgpu::TextureDimension::e2D,
diff --git a/src/dawn/native/d3d/SwapChainD3D.cpp b/src/dawn/native/d3d/SwapChainD3D.cpp
index e5a436b..eb9a69f 100644
--- a/src/dawn/native/d3d/SwapChainD3D.cpp
+++ b/src/dawn/native/d3d/SwapChainD3D.cpp
@@ -50,7 +50,8 @@
             return 2;
         case wgpu::PresentMode::Mailbox:
             return 3;
-        default:
+        case wgpu::PresentMode::FifoRelaxed:
+        case wgpu::PresentMode::Undefined:
             break;
     }
     DAWN_UNREACHABLE();
@@ -63,7 +64,8 @@
             return 0;
         case wgpu::PresentMode::Fifo:
             return 1;
-        default:
+        case wgpu::PresentMode::FifoRelaxed:
+        case wgpu::PresentMode::Undefined:
             break;
     }
     DAWN_UNREACHABLE();
diff --git a/src/dawn/native/opengl/DeviceGL.cpp b/src/dawn/native/opengl/DeviceGL.cpp
index 160c5a9..3ec7956 100644
--- a/src/dawn/native/opengl/DeviceGL.cpp
+++ b/src/dawn/native/opengl/DeviceGL.cpp
@@ -358,8 +358,10 @@
     ::EGLImage image) {
     const OpenGLFunctions& gl = GetGL();
 
+    TextureDescriptor reifiedDescriptor =
+        FromAPI(descriptor->cTextureDescriptor)->WithTrivialFrontendDefaults();
     UnpackedPtr<TextureDescriptor> textureDescriptor;
-    DAWN_TRY_ASSIGN(textureDescriptor, ValidateAndUnpack(FromAPI(descriptor->cTextureDescriptor)));
+    DAWN_TRY_ASSIGN(textureDescriptor, ValidateAndUnpack(&reifiedDescriptor));
     DAWN_TRY(ValidateTextureDescriptor(this, textureDescriptor));
     DAWN_TRY(ValidateTextureCanBeWrapped(textureDescriptor));
     // The EGLImage was created from outside of Dawn so it must be on the same display that was
@@ -410,8 +412,10 @@
     GLuint texture) {
     const OpenGLFunctions& gl = GetGL();
 
+    TextureDescriptor reifiedDescriptor =
+        FromAPI(descriptor->cTextureDescriptor)->WithTrivialFrontendDefaults();
     UnpackedPtr<TextureDescriptor> textureDescriptor;
-    DAWN_TRY_ASSIGN(textureDescriptor, ValidateAndUnpack(FromAPI(descriptor->cTextureDescriptor)));
+    DAWN_TRY_ASSIGN(textureDescriptor, ValidateAndUnpack(&reifiedDescriptor));
     DAWN_TRY(ValidateTextureDescriptor(this, textureDescriptor));
     if (!HasFeature(Feature::ANGLETextureSharing)) {
         return DAWN_VALIDATION_ERROR("Device does not support ANGLE GL texture sharing.");
diff --git a/src/dawn/native/vulkan/DeviceVk.cpp b/src/dawn/native/vulkan/DeviceVk.cpp
index 1ecae43..576f657 100644
--- a/src/dawn/native/vulkan/DeviceVk.cpp
+++ b/src/dawn/native/vulkan/DeviceVk.cpp
@@ -797,9 +797,10 @@
     if (ConsumedError(ValidateIsAlive())) {
         return nullptr;
     }
+    TextureDescriptor reifiedDescriptor =
+        FromAPI(descriptor->cTextureDescriptor)->WithTrivialFrontendDefaults();
     UnpackedPtr<TextureDescriptor> textureDescriptor;
-    if (ConsumedError(ValidateAndUnpack(FromAPI(descriptor->cTextureDescriptor)),
-                      &textureDescriptor)) {
+    if (ConsumedError(ValidateAndUnpack(&reifiedDescriptor), &textureDescriptor)) {
         return nullptr;
     }
     if (ConsumedError(ValidateTextureDescriptor(this, textureDescriptor,
diff --git a/src/dawn/native/vulkan/SwapChainVk.cpp b/src/dawn/native/vulkan/SwapChainVk.cpp
index 311df2d..ed487ef 100644
--- a/src/dawn/native/vulkan/SwapChainVk.cpp
+++ b/src/dawn/native/vulkan/SwapChainVk.cpp
@@ -62,6 +62,8 @@
             return VK_PRESENT_MODE_IMMEDIATE_KHR;
         case wgpu::PresentMode::Mailbox:
             return VK_PRESENT_MODE_MAILBOX_KHR;
+        case wgpu::PresentMode::Undefined:
+            break;
     }
     DAWN_UNREACHABLE();
 }
diff --git a/src/dawn/native/vulkan/TextureVk.cpp b/src/dawn/native/vulkan/TextureVk.cpp
index 9861608..098423a 100644
--- a/src/dawn/native/vulkan/TextureVk.cpp
+++ b/src/dawn/native/vulkan/TextureVk.cpp
@@ -1950,7 +1950,7 @@
     VkSamplerYcbcrConversionInfo samplerYCbCrInfo = {};
     if (auto* yCbCrVkDescriptor = descriptor.Get<YCbCrVkDescriptor>()) {
         mIsYCbCr = true;
-        mYCbCrVkDescriptor = *yCbCrVkDescriptor;
+        mYCbCrVkDescriptor = yCbCrVkDescriptor->WithTrivialFrontendDefaults();
         mYCbCrVkDescriptor.nextInChain = nullptr;
 
         DAWN_TRY_ASSIGN(mSamplerYCbCrConversion,
diff --git a/src/dawn/tests/unittests/native/mocks/ExternalTextureMock.cpp b/src/dawn/tests/unittests/native/mocks/ExternalTextureMock.cpp
index b3aa5e9..14c7463 100644
--- a/src/dawn/tests/unittests/native/mocks/ExternalTextureMock.cpp
+++ b/src/dawn/tests/unittests/native/mocks/ExternalTextureMock.cpp
@@ -44,8 +44,6 @@
                                                      const ExternalTextureDescriptor* descriptor) {
     Ref<ExternalTextureMock> externalTexture =
         AcquireRef(new NiceMock<ExternalTextureMock>(device, descriptor));
-
-    externalTexture->Initialize(device, descriptor).AcquireSuccess();
     return externalTexture;
 }
 
diff --git a/src/dawn/tests/unittests/wire/WireArgumentTests.cpp b/src/dawn/tests/unittests/wire/WireArgumentTests.cpp
index 505c487..e9855d7 100644
--- a/src/dawn/tests/unittests/wire/WireArgumentTests.cpp
+++ b/src/dawn/tests/unittests/wire/WireArgumentTests.cpp
@@ -299,9 +299,9 @@
                          apiDevice, MatchesLambda([](const WGPUSamplerDescriptor* desc) -> bool {
                              return desc->nextInChain == nullptr &&
                                     desc->magFilter == WGPUFilterMode_Linear &&
-                                    desc->minFilter == WGPUFilterMode_Nearest &&
+                                    desc->minFilter == WGPUFilterMode_Undefined &&
                                     desc->mipmapFilter == WGPUMipmapFilterMode_Linear &&
-                                    desc->addressModeU == WGPUAddressMode_ClampToEdge &&
+                                    desc->addressModeU == WGPUAddressMode_Undefined &&
                                     desc->addressModeV == WGPUAddressMode_Repeat &&
                                     desc->addressModeW == WGPUAddressMode_MirrorRepeat &&
                                     desc->compare == WGPUCompareFunction_Never &&