From f1acdeba6b8e6dfd55c0ffd99c188213b91f915c Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 24 Feb 2023 15:56:05 -0500 Subject: [PATCH] zink: fix slab allocator sizing now that the mem type is passed directly to pb, there have to be enough slabs to allocate all the mem types (not heaps), so create memoryTypeCount slabs to allow this fixes #8369 Fixes: f6d3a5755f6 ("zink: zink_heap isn't 1-to-1 with memoryTypeIndex" Part-of: --- src/gallium/drivers/zink/zink_bo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/zink/zink_bo.c b/src/gallium/drivers/zink/zink_bo.c index f5ad823d752..a69a050f323 100644 --- a/src/gallium/drivers/zink/zink_bo.c +++ b/src/gallium/drivers/zink/zink_bo.c @@ -1282,7 +1282,7 @@ zink_bo_init(struct zink_screen *screen) for (uint32_t i = 0; i < screen->info.mem_props.memoryHeapCount; ++i) total_mem += screen->info.mem_props.memoryHeaps[i].size; /* Create managers. */ - pb_cache_init(&screen->pb.bo_cache, ZINK_HEAP_MAX, + pb_cache_init(&screen->pb.bo_cache, screen->info.mem_props.memoryTypeCount, 500000, 2.0f, 0, total_mem / 8, screen, (void*)bo_destroy, (void*)bo_can_reclaim); @@ -1300,7 +1300,7 @@ zink_bo_init(struct zink_screen *screen) if (!pb_slabs_init(&screen->pb.bo_slabs[i], min_order, max_order, - ZINK_HEAP_MAX, true, + screen->info.mem_props.memoryTypeCount, true, screen, bo_can_reclaim_slab, bo_slab_alloc_normal,