From 2abdc846067de60e771b4ef2b230d9d7bcba80b6 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 23 May 2024 12:20:18 +1000 Subject: [PATCH] Revert "zink: use a slab allocator for zink_kopper_present_info" This reverts commit 738fbddca8a1d8343e2ae322299de22a9ae108ae. This was missing locking which caused problems Closes: 11161 Fixes: 738fbddca8a1 ("zink: use a slab allocator for zink_kopper_present_info") Reviewed-by: Mike Blumenkrantz Part-of: --- src/gallium/drivers/zink/zink_kopper.c | 4 ++-- src/gallium/drivers/zink/zink_screen.c | 2 -- src/gallium/drivers/zink/zink_types.h | 1 - 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/zink/zink_kopper.c b/src/gallium/drivers/zink/zink_kopper.c index d1be8dd7226..06b87b49a67 100644 --- a/src/gallium/drivers/zink/zink_kopper.c +++ b/src/gallium/drivers/zink/zink_kopper.c @@ -799,7 +799,7 @@ out: struct pipe_resource *pres = &cpi->res->base.b; pipe_resource_reference(&pres, NULL); } - slab_free_st(&screen->present_mempool, cpi); + free(cpi); } void @@ -814,7 +814,7 @@ zink_kopper_present_queue(struct zink_screen *screen, struct zink_resource *res, if (cdt->swapchain->last_present != UINT32_MAX) prune_old_swapchains(screen, cdt, false); - struct zink_kopper_present_info *cpi = slab_alloc_st(&screen->present_mempool); + struct zink_kopper_present_info *cpi = malloc(sizeof(struct zink_kopper_present_info)); if (!cpi) { mesa_loge("ZINK: failed to allocate cpi!"); return; diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 3971a073c87..e99ad7197da 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -1641,7 +1641,6 @@ zink_destroy_screen(struct pipe_screen *pscreen) close(screen->drm_fd); slab_destroy_parent(&screen->transfer_pool); - slab_destroy(&screen->present_mempool); ralloc_free(screen); glsl_type_singleton_decref(); } @@ -3540,7 +3539,6 @@ zink_internal_create_screen(const struct pipe_screen_config *config, int64_t dev populate_format_props(screen); slab_create_parent(&screen->transfer_pool, sizeof(struct zink_transfer), 16); - slab_create(&screen->present_mempool, sizeof(struct zink_kopper_present_info), 16); screen->driconf.inline_uniforms = debug_get_bool_option("ZINK_INLINE_UNIFORMS", screen->is_cpu); diff --git a/src/gallium/drivers/zink/zink_types.h b/src/gallium/drivers/zink/zink_types.h index a9e9f87505c..a05697f6228 100644 --- a/src/gallium/drivers/zink/zink_types.h +++ b/src/gallium/drivers/zink/zink_types.h @@ -1420,7 +1420,6 @@ struct zink_screen { bool device_lost; int drm_fd; - struct slab_mempool present_mempool; struct slab_parent_pool transfer_pool; struct disk_cache *disk_cache; struct util_queue cache_put_thread;