aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNataraj Deshpande <nataraj.deshpande@intel.com>2020-07-08 15:39:30 -0700
committerNataraj Deshpande <nataraj.deshpande@intel.com>2020-07-09 19:06:41 -0700
commit302959347fe3fafd4c61d0e068a76d941155ac7b (patch)
tree69f51dab036f2b574bc06234ec52a4e38130254d
parentb50322e8226e1720630dc21d96ba2c49d07ffb76 (diff)
downloadskqp-302959347fe3fafd4c61d0e068a76d941155ac7b.tar.gz
Select the Heap based on device alignment
Fixes vulkan crashes in CtsSkQPTestCases on platforms with 64k surface alignment. Bug: b/154244495 Test: Run CtsSkQPTestCases Change-Id: I0d8124739403b6623f3cf9f55169fdbded974a36
-rw-r--r--src/gpu/vk/GrVkMemory.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gpu/vk/GrVkMemory.cpp b/src/gpu/vk/GrVkMemory.cpp
index e391d02aee..affa5f604e 100644
--- a/src/gpu/vk/GrVkMemory.cpp
+++ b/src/gpu/vk/GrVkMemory.cpp
@@ -191,7 +191,8 @@ bool GrVkMemory::AllocAndBindImageMemory(const GrVkGpu* gpu,
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
&typeIndex,
&heapIndex));
- if (memReqs.size <= kMaxSmallImageSize) {
+ // select the heap based on the device alignment
+ if (align_size(memReqs.size, memReqs.alignment) <= kMaxSmallImageSize) {
heap = gpu->getHeap(GrVkGpu::kSmallOptimalImage_Heap);
} else {
heap = gpu->getHeap(GrVkGpu::kOptimalImage_Heap);