From 3db93f9128e5329f6658c9018cf23eb31807c24c Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Fri, 20 Apr 2018 21:52:41 -0700 Subject: [PATCH] anv/allocator: Don't shrink either end of the block pool Previously, we only tried to ensure that we didn't shrink either end below what was already handed out. However, due to the way we handle relocations with block pools, we can't shrink the back end at all. It's probably best to not shrink in either direction. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105374 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106147 Tested-by: Eero Tamminen Reviewed-by: Scott D Phillips Cc: mesa-stable@lists.freedesktop.org --- src/intel/vulkan/anv_allocator.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/intel/vulkan/anv_allocator.c b/src/intel/vulkan/anv_allocator.c index f884ac3..642e161 100644 --- a/src/intel/vulkan/anv_allocator.c +++ b/src/intel/vulkan/anv_allocator.c @@ -508,12 +508,12 @@ anv_block_pool_grow(struct anv_block_pool *pool, struct anv_block_state *state) assert(center_bo_offset >= back_used); /* Make sure we don't shrink the back end of the pool */ - if (center_bo_offset < pool->back_state.end) - center_bo_offset = pool->back_state.end; + if (center_bo_offset < back_required) + center_bo_offset = back_required; /* Make sure that we don't shrink the front end of the pool */ - if (size - center_bo_offset < pool->state.end) - center_bo_offset = size - pool->state.end; + if (size - center_bo_offset < front_required) + center_bo_offset = size - front_required; } assert(center_bo_offset % PAGE_SIZE == 0); -- 2.7.4