Vulkan: Introduce vk::Format.

BUG=angleproject:1319

Change-Id: I88bcc6caa5d29565728848bada1563e47e383b29
Reviewed-on: https://chromium-review.googlesource.com/367753
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/SurfaceVk.cpp b/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
index 2b433bd..bad05e3 100644
--- a/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
+++ b/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
@@ -14,6 +14,7 @@
 #include "libANGLE/renderer/vulkan/DisplayVk.h"
 #include "libANGLE/renderer/vulkan/FramebufferVk.h"
 #include "libANGLE/renderer/vulkan/RendererVk.h"
+#include "libANGLE/renderer/vulkan/formatutilsvk.h"
 
 namespace rx
 {
@@ -21,10 +22,10 @@
 namespace
 {
 
-VkFormat GetVkFormatFromConfig(const egl::Config &config)
+const vk::Format &GetVkFormatFromConfig(const egl::Config &config)
 {
     // TODO(jmadill): Properly handle format interpretation.
-    return VK_FORMAT_B8G8R8A8_UNORM;
+    return vk::Format::Get(GL_BGRA8_EXT);
 }
 
 }  // namespace
@@ -239,7 +240,7 @@
         preTransform = surfaceCaps.currentTransform;
     }
 
-    VkFormat configSurfaceFormat = GetVkFormatFromConfig(*mState.config);
+    const vk::Format &configSurfaceFormat = GetVkFormatFromConfig(*mState.config);
 
     uint32_t surfaceFormatCount = 0;
     ANGLE_VK_TRY(vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, mSurface, &surfaceFormatCount,
@@ -258,7 +259,7 @@
         bool foundFormat = false;
         for (const auto &surfaceFormat : surfaceFormats)
         {
-            if (surfaceFormat.format == configSurfaceFormat)
+            if (surfaceFormat.format == configSurfaceFormat.native)
             {
                 foundFormat = true;
                 break;
@@ -274,7 +275,7 @@
     swapchainInfo.flags                 = 0;
     swapchainInfo.surface               = mSurface;
     swapchainInfo.minImageCount         = minImageCount;
-    swapchainInfo.imageFormat           = configSurfaceFormat;
+    swapchainInfo.imageFormat           = configSurfaceFormat.native;
     swapchainInfo.imageColorSpace       = VK_COLORSPACE_SRGB_NONLINEAR_KHR;
     swapchainInfo.imageExtent.width     = mWidth;
     swapchainInfo.imageExtent.height    = mHeight;
@@ -311,7 +312,7 @@
         imageViewInfo.flags                           = 0;
         imageViewInfo.image                           = swapchainImage;
         imageViewInfo.viewType                        = VK_IMAGE_VIEW_TYPE_2D;
-        imageViewInfo.format                          = configSurfaceFormat;
+        imageViewInfo.format                          = configSurfaceFormat.native;
         imageViewInfo.components.r                    = VK_COMPONENT_SWIZZLE_R;
         imageViewInfo.components.g                    = VK_COMPONENT_SWIZZLE_G;
         imageViewInfo.components.b                    = VK_COMPONENT_SWIZZLE_B;