diff options
author | Greg Daniel <egdaniel@google.com> | 2018-02-26 13:30:47 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-02-26 20:42:18 +0000 |
commit | 5ba448c21aa002055aa68942f1f50fd4cdfd8033 (patch) | |
tree | 73fcb325c354423da290679b23b0821a5522b85f /src/gpu | |
parent | 9d57afd93e70d3bd40ed470b1de28ccc03b98208 (diff) |
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>
Diffstat (limited to 'src/gpu')
-rw-r--r-- | src/gpu/vk/GrVkCaps.cpp | 7 | ||||
-rw-r--r-- | src/gpu/vk/GrVkCopyPipeline.cpp | 1 | ||||
-rw-r--r-- | src/gpu/vk/GrVkPipeline.cpp | 1 |
3 files changed, 8 insertions, 1 deletions
diff --git a/src/gpu/vk/GrVkCaps.cpp b/src/gpu/vk/GrVkCaps.cpp index 457b0c128b..602d07b27d 100644 --- a/src/gpu/vk/GrVkCaps.cpp +++ b/src/gpu/vk/GrVkCaps.cpp @@ -102,7 +102,8 @@ void GrVkCaps::init(const GrContextOptions& contextOptions, const GrVkInterface* fMustSubmitCommandsBeforeCopyOp = true; } - if (kQualcomm_VkVendor != properties.vendorID) { + if (kQualcomm_VkVendor != properties.vendorID && + kARM_VkVendor != properties.vendorID) { fSupportsCopiesAsDraws = true; } @@ -110,6 +111,10 @@ void GrVkCaps::init(const GrContextOptions& contextOptions, const GrVkInterface* 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 8986029c7d..1058497cc2 100644 --- a/src/gpu/vk/GrVkCopyPipeline.cpp +++ b/src/gpu/vk/GrVkCopyPipeline.cpp @@ -179,6 +179,7 @@ GrVkCopyPipeline* GrVkCopyPipeline::Create(GrVkGpu* gpu, &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 b1c8dbeeb4..4058317b5d 100644 --- a/src/gpu/vk/GrVkPipeline.cpp +++ b/src/gpu/vk/GrVkPipeline.cpp @@ -490,6 +490,7 @@ GrVkPipeline* GrVkPipeline::Create(GrVkGpu* gpu, const GrPipeline& pipeline, &pipelineCreateInfo, nullptr, &vkPipeline)); if (err) { + SkDebugf("Failed to create pipeline. Error: %d\n", err); return nullptr; } |