Make Vulkan vertex and index buffers support transfer dst

Bug: skia:12720

Change-Id: I34865b966a84a329960c87b5d862186fe5e1af55
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/551839
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/ganesh/vk/GrVkBuffer.cpp b/src/gpu/ganesh/vk/GrVkBuffer.cpp
index 269c160..f029bf3 100644
--- a/src/gpu/ganesh/vk/GrVkBuffer.cpp
+++ b/src/gpu/ganesh/vk/GrVkBuffer.cpp
@@ -89,13 +89,15 @@
     bufInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
     bufInfo.flags = 0;
     bufInfo.size = size;
+    // To support SkMesh buffer updates we make Vertex and Index buffers capable of being transfer
+    // dsts.
     switch (bufferType) {
         case GrGpuBufferType::kVertex:
-            bufInfo.usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT;
+            bufInfo.usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
             allocUsage = requiresMappable ? BufferUsage::kCpuWritesGpuReads : BufferUsage::kGpuOnly;
             break;
         case GrGpuBufferType::kIndex:
-            bufInfo.usage = VK_BUFFER_USAGE_INDEX_BUFFER_BIT;
+            bufInfo.usage = VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
             allocUsage = requiresMappable ? BufferUsage::kCpuWritesGpuReads : BufferUsage::kGpuOnly;
             break;
         case GrGpuBufferType::kDrawIndirect: