Vulkan: get vertex formats from format table.

Use the Vulkan format table to look up the Vulkan format for vertex data.
This will let us support more vertex formats by adding them to the table.
It also eliminates one usage of gl::VertexFormatType.
No functional change.

BUG=angleproject:2405
BUG=angleproject:2531

Change-Id: I73eb69ccac50d427de3e7d5479f92bb17c49aed3
Reviewed-on: https://chromium-review.googlesource.com/1051028
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
index 604e8b4..5cff70a 100644
--- a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
+++ b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
@@ -299,13 +299,14 @@
     }
 }
 
-void VertexArrayVk::getPackedInputDescriptions(vk::PipelineDesc *pipelineDesc)
+void VertexArrayVk::getPackedInputDescriptions(const RendererVk *rendererVk,
+                                               vk::PipelineDesc *pipelineDesc)
 {
-    updatePackedInputDescriptions();
+    updatePackedInputDescriptions(rendererVk);
     pipelineDesc->updateVertexInputInfo(mPackedInputBindings, mPackedInputAttributes);
 }
 
-void VertexArrayVk::updatePackedInputDescriptions()
+void VertexArrayVk::updatePackedInputDescriptions(const RendererVk *rendererVk)
 {
     if (!mDirtyPackedInputs.any())
     {
@@ -321,7 +322,7 @@
         const auto &binding = bindings[attrib.bindingIndex];
         if (attrib.enabled)
         {
-            updatePackedInputInfo(static_cast<uint32_t>(attribIndex), binding, attrib);
+            updatePackedInputInfo(rendererVk, static_cast<uint32_t>(attribIndex), binding, attrib);
         }
         else
         {
@@ -332,7 +333,8 @@
     mDirtyPackedInputs.reset();
 }
 
-void VertexArrayVk::updatePackedInputInfo(uint32_t attribIndex,
+void VertexArrayVk::updatePackedInputInfo(const RendererVk *rendererVk,
+                                          uint32_t attribIndex,
                                           const gl::VertexBinding &binding,
                                           const gl::VertexAttribute &attrib)
 {
@@ -345,8 +347,7 @@
     bindingDesc.inputRate = static_cast<uint16_t>(
         binding.getDivisor() > 0 ? VK_VERTEX_INPUT_RATE_INSTANCE : VK_VERTEX_INPUT_RATE_VERTEX);
 
-    gl::VertexFormatType vertexFormatType = gl::GetVertexFormatType(attrib);
-    VkFormat vkFormat                     = vk::GetNativeVertexFormat(vertexFormatType);
+    VkFormat vkFormat = rendererVk->getFormat(GetVertexFormatID(attrib)).vkBufferFormat;
     ASSERT(vkFormat <= std::numeric_limits<uint16_t>::max());
 
     vk::PackedVertexInputAttributeDesc &attribDesc = mPackedInputAttributes[attribIndex];