[Vulkan] Map FilterMode to Vulkan filter correctly for YCbCr info

wgpu::FilterMode does not have the same values as the Vulkan filter
enum, so it is necessary to map from one to the other. This CL reuses
the mapping currently done in SamplerVk to also be done in UtilsVulkan.

Change-Id: I6f62a20c79f4a857d566c7ee3d43d9bd8c4b93df
Bug: 41488897
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/196336
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
diff --git a/src/dawn/native/vulkan/SamplerVk.cpp b/src/dawn/native/vulkan/SamplerVk.cpp
index d1629a6..94ed4de 100644
--- a/src/dawn/native/vulkan/SamplerVk.cpp
+++ b/src/dawn/native/vulkan/SamplerVk.cpp
@@ -52,18 +52,6 @@
     DAWN_UNREACHABLE();
 }
 
-VkFilter VulkanSamplerFilter(wgpu::FilterMode filter) {
-    switch (filter) {
-        case wgpu::FilterMode::Linear:
-            return VK_FILTER_LINEAR;
-        case wgpu::FilterMode::Nearest:
-            return VK_FILTER_NEAREST;
-        case wgpu::FilterMode::Undefined:
-            break;
-    }
-    DAWN_UNREACHABLE();
-}
-
 VkSamplerMipmapMode VulkanMipMapMode(wgpu::MipmapFilterMode filter) {
     switch (filter) {
         case wgpu::MipmapFilterMode::Linear:
@@ -89,8 +77,8 @@
     createInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
     createInfo.pNext = nullptr;
     createInfo.flags = 0;
-    createInfo.magFilter = VulkanSamplerFilter(descriptor->magFilter);
-    createInfo.minFilter = VulkanSamplerFilter(descriptor->minFilter);
+    createInfo.magFilter = ToVulkanSamplerFilter(descriptor->magFilter);
+    createInfo.minFilter = ToVulkanSamplerFilter(descriptor->minFilter);
     createInfo.mipmapMode = VulkanMipMapMode(descriptor->mipmapFilter);
     createInfo.addressModeU = VulkanSamplerAddressMode(descriptor->addressModeU);
     createInfo.addressModeV = VulkanSamplerAddressMode(descriptor->addressModeV);
diff --git a/src/dawn/native/vulkan/UtilsVulkan.cpp b/src/dawn/native/vulkan/UtilsVulkan.cpp
index bdebb03..95f6539 100644
--- a/src/dawn/native/vulkan/UtilsVulkan.cpp
+++ b/src/dawn/native/vulkan/UtilsVulkan.cpp
@@ -87,6 +87,18 @@
     DAWN_UNREACHABLE();
 }
 
+VkFilter ToVulkanSamplerFilter(wgpu::FilterMode filter) {
+    switch (filter) {
+        case wgpu::FilterMode::Linear:
+            return VK_FILTER_LINEAR;
+        case wgpu::FilterMode::Nearest:
+            return VK_FILTER_NEAREST;
+        case wgpu::FilterMode::Undefined:
+            break;
+    }
+    DAWN_UNREACHABLE();
+}
+
 // Convert Dawn texture aspects to  Vulkan texture aspect flags
 VkImageAspectFlags VulkanAspectMask(const Aspect& aspects) {
     VkImageAspectFlags flags = 0;
@@ -354,7 +366,7 @@
         static_cast<VkChromaLocation>(yCbCrDescriptor.vkXChromaOffset);
     vulkanYCbCrCreateInfo.yChromaOffset =
         static_cast<VkChromaLocation>(yCbCrDescriptor.vkYChromaOffset);
-    vulkanYCbCrCreateInfo.chromaFilter = static_cast<VkFilter>(yCbCrDescriptor.vkChromaFilter);
+    vulkanYCbCrCreateInfo.chromaFilter = ToVulkanSamplerFilter(yCbCrDescriptor.vkChromaFilter);
     vulkanYCbCrCreateInfo.forceExplicitReconstruction =
         static_cast<VkBool32>(yCbCrDescriptor.forceExplicitReconstruction);
 
diff --git a/src/dawn/native/vulkan/UtilsVulkan.h b/src/dawn/native/vulkan/UtilsVulkan.h
index e850472..aeee0e3 100644
--- a/src/dawn/native/vulkan/UtilsVulkan.h
+++ b/src/dawn/native/vulkan/UtilsVulkan.h
@@ -114,6 +114,8 @@
 
 VkCompareOp ToVulkanCompareOp(wgpu::CompareFunction op);
 
+VkFilter ToVulkanSamplerFilter(wgpu::FilterMode filter);
+
 VkImageAspectFlags VulkanAspectMask(const Aspect& aspects);
 
 Extent3D ComputeTextureCopyExtent(const TextureCopy& textureCopy, const Extent3D& copySize);