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;
}