Mesa (master): anv/allocator: Don't shrink either end of the block pool

Jason Ekstrand jekstrand at kemper.freedesktop.org
Thu Apr 26 20:18:02 UTC 2018


Module: Mesa
Branch: master
Commit: 3db93f9128e5329f6658c9018cf23eb31807c24c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3db93f9128e5329f6658c9018cf23eb31807c24c

Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date:   Fri Apr 20 21:52:41 2018 -0700

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 <eero.t.tamminen at intel.com>
Reviewed-by: Scott D Phillips <scott.d.phillips at intel.com>
Cc: mesa-stable at 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 f884ac3b82..642e1618c1 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);




More information about the mesa-commit mailing list