[Mesa-dev] [PATCH] anv/allocator: Don't srink either end of the block pool
Eero Tamminen
eero.t.tamminen at intel.com
Mon Apr 23 11:17:10 UTC 2018
Hi,
On 21.04.2018 08:15, Jason Ekstrand wrote:
> 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
Verified that "texture3d" demo works with this patch, crashes without it.
Tested-by: Eero Tamminen <eero.t.tamminen at intel.com>
- Eero
> 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 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);
>
More information about the mesa-dev
mailing list