From de8423ef2abe2b7cd1d5d14c9cd0f668a4608395 Mon Sep 17 00:00:00 2001 From: Lars-Ivar Hesselberg Simonsen Date: Thu, 15 May 2025 13:39:56 +0200 Subject: [PATCH] panvk/v10+: Remove unnecessary alloc in dispatch_precomp The CSF version of dispatch_precomp allocates TLS/WLS prior to calling cmd_dispatch_prepare_tls, which will do the same. This commit removes this unnecessary allocation. Fixes: cc02c5deb42 ("panvk: Implement precomp dispatch") Reviewed-by: Eric R. Smith Reviewed-by: John Anthony Part-of: (cherry picked from commit a6c7a774aba6b158ed829c4f88518486ddfe6ecb) --- .pick_status.json | 2 +- .../vulkan/csf/panvk_vX_cmd_precomp.c | 33 ------------------- 2 files changed, 1 insertion(+), 34 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 7f4dc22c3b1..13f216e2c36 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -5164,7 +5164,7 @@ "description": "panvk/v10+: Remove unnecessary alloc in dispatch_precomp", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "cc02c5deb42f1f89b227ac3e4816a32a573b6bcf", "notes": null diff --git a/src/panfrost/vulkan/csf/panvk_vX_cmd_precomp.c b/src/panfrost/vulkan/csf/panvk_vX_cmd_precomp.c index aafe0917fee..7bf2c7a59d6 100644 --- a/src/panfrost/vulkan/csf/panvk_vX_cmd_precomp.c +++ b/src/panfrost/vulkan/csf/panvk_vX_cmd_precomp.c @@ -46,39 +46,6 @@ panvk_per_arch(dispatch_precomp)(struct panvk_precomp_ctx *ctx, bifrost_precompiled_kernel_prepare_push_uniforms(push_uniforms.cpu, data, data_size, &sysvals); - struct pan_tls_info tlsinfo = {.tls = {.size = shader->info.tls_size}, - .wls = {.size = shader->info.wls_size}}; - - if (tlsinfo.tls.size) { - unsigned thread_tls_alloc = - panfrost_query_thread_tls_alloc(&phys_dev->kmod.props); - unsigned core_id_range; - panfrost_query_core_count(&phys_dev->kmod.props, &core_id_range); - - unsigned size = panfrost_get_total_stack_size( - tlsinfo.tls.size, thread_tls_alloc, core_id_range); - tlsinfo.tls.ptr = panvk_cmd_alloc_dev_mem(cmdbuf, tls, size, 4096).gpu; - assert(tlsinfo.tls.ptr); - } - - if (tlsinfo.wls.size) { - unsigned core_id_range; - panfrost_query_core_count(&phys_dev->kmod.props, &core_id_range); - - struct pan_compute_dim wg_count = {.x = grid.count[0], - .y = grid.count[1], - .z = grid.count[2]}; - tlsinfo.wls.instances = pan_wls_instances(&wg_count); - - unsigned wls_total_size = pan_wls_adjust_size(tlsinfo.wls.size) * - tlsinfo.wls.instances * core_id_range; - - tlsinfo.wls.ptr = - panvk_cmd_alloc_dev_mem(cmdbuf, tls, wls_total_size, 4096).gpu; - - assert(tlsinfo.wls.ptr); - } - struct pan_compute_dim dim = {.x = grid.count[0], .y = grid.count[1], .z = grid.count[2]};