Add cap workarounds for possible arm bugs

This disables doing copies as draws and disables instance attrib support.

Bug: skia:
Change-Id: I52c03d773974a697901ba1fc9dfa824262285568
Reviewed-on: https://skia-review.googlesource.com/110320
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
diff --git a/src/gpu/vk/GrVkCaps.cpp b/src/gpu/vk/GrVkCaps.cpp
index 457b0c1..602d07b 100644
--- a/src/gpu/vk/GrVkCaps.cpp
+++ b/src/gpu/vk/GrVkCaps.cpp
@@ -102,7 +102,8 @@
         fMustSubmitCommandsBeforeCopyOp = true;
     }
 
-    if (kQualcomm_VkVendor != properties.vendorID) {
+    if (kQualcomm_VkVendor != properties.vendorID &&
+        kARM_VkVendor != properties.vendorID) {
         fSupportsCopiesAsDraws = true;
     }
 
@@ -110,6 +111,10 @@
         fCrossContextTextureSupport = true;
     }
 
+    if (kARM_VkVendor == properties.vendorID) {
+        fInstanceAttribSupport = false;
+    }
+
 #if defined(SK_BUILD_FOR_WIN)
     if (kNvidia_VkVendor == properties.vendorID) {
         fMustSleepOnTearDown = true;
diff --git a/src/gpu/vk/GrVkCopyPipeline.cpp b/src/gpu/vk/GrVkCopyPipeline.cpp
index 8986029..1058497 100644
--- a/src/gpu/vk/GrVkCopyPipeline.cpp
+++ b/src/gpu/vk/GrVkCopyPipeline.cpp
@@ -179,6 +179,7 @@
                                                                           &pipelineCreateInfo,
                                                                           nullptr, &vkPipeline));
     if (err) {
+        SkDebugf("Failed to create copy pipeline. Error: %d\n", err);
         return nullptr;
     }
 
diff --git a/src/gpu/vk/GrVkPipeline.cpp b/src/gpu/vk/GrVkPipeline.cpp
index b1c8dbe..4058317 100644
--- a/src/gpu/vk/GrVkPipeline.cpp
+++ b/src/gpu/vk/GrVkPipeline.cpp
@@ -490,6 +490,7 @@
                                                                           &pipelineCreateInfo,
                                                                           nullptr, &vkPipeline));
     if (err) {
+        SkDebugf("Failed to create pipeline. Error: %d\n", err);
         return nullptr;
     }