From 8b366b6bc09e3f51fc8212b0c9b03a138a7eddf7 Mon Sep 17 00:00:00 2001 From: xurui Date: Tue, 11 Apr 2023 16:32:05 +0800 Subject: [PATCH] zink: Use malloc to allocate libs ralloc is less performant most of the time when the object doesn't have sets/hashtables attached Use malloc instead of ralloc in zink_program.c Signed-off-by: xurui Reviewed-by: Mike Blumenkrantz Part-of: --- src/gallium/drivers/zink/zink_program.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index 21f8b066eee..b11758dc49f 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -959,19 +959,20 @@ zink_gfx_lib_cache_unref(struct zink_screen *screen, struct zink_gfx_lib_cache * VKSCR(DestroyPipeline)(screen->dev, gkey->pipeline, NULL); FREE(gkey); } - ralloc_free(libs); + ralloc_free(libs->libs.table); + FREE(libs); } static struct zink_gfx_lib_cache * create_lib_cache(struct zink_gfx_program *prog, bool generated_tcs) { - struct zink_gfx_lib_cache *libs = rzalloc(NULL, struct zink_gfx_lib_cache); + struct zink_gfx_lib_cache *libs = CALLOC_STRUCT(zink_gfx_lib_cache); libs->stages_present = prog->stages_present; simple_mtx_init(&libs->lock, mtx_plain); if (generated_tcs) - _mesa_set_init(&libs->libs, libs, hash_pipeline_lib_generated_tcs, equals_pipeline_lib_generated_tcs); + _mesa_set_init(&libs->libs, NULL, hash_pipeline_lib_generated_tcs, equals_pipeline_lib_generated_tcs); else - _mesa_set_init(&libs->libs, libs, hash_pipeline_lib, equals_pipeline_lib); + _mesa_set_init(&libs->libs, NULL, hash_pipeline_lib, equals_pipeline_lib); return libs; }