From 43b85b151b418a815fe91a3c12d03a4fbf3c62f9 Mon Sep 17 00:00:00 2001 From: Olivia Lee Date: Thu, 20 Nov 2025 02:54:04 -0800 Subject: [PATCH] panvk/csf: enable allow_merging_workgroups when possible Now that all of the additional cases are handled, we can hook up the allow_merging_workgroups flag in panvk. Signed-off-by: Olivia Lee Reviewed-by: Caterina Shablia Reviewed-by: Lars-Ivar Hesselberg Simonsen Reviewed-by: Faith Ekstrand Reviewed-by: Eric R. Smith Part-of: --- src/panfrost/vulkan/csf/panvk_vX_cmd_dispatch.c | 2 +- src/panfrost/vulkan/csf/panvk_vX_cmd_precomp.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/panfrost/vulkan/csf/panvk_vX_cmd_dispatch.c b/src/panfrost/vulkan/csf/panvk_vX_cmd_dispatch.c index 222d71299c8..b1bf45483ee 100644 --- a/src/panfrost/vulkan/csf/panvk_vX_cmd_dispatch.c +++ b/src/panfrost/vulkan/csf/panvk_vX_cmd_dispatch.c @@ -222,7 +222,7 @@ cmd_dispatch(struct panvk_cmd_buffer *cmdbuf, struct panvk_dispatch_info *info) cfg.workgroup_size_x = cs->cs.local_size.x; cfg.workgroup_size_y = cs->cs.local_size.y; cfg.workgroup_size_z = cs->cs.local_size.z; - cfg.allow_merging_workgroups = false; + cfg.allow_merging_workgroups = cs->info.cs.allow_merging_workgroups; } cs_move32_to(b, cs_sr_reg32(b, COMPUTE, WG_SIZE), wg_size.opaque[0]); diff --git a/src/panfrost/vulkan/csf/panvk_vX_cmd_precomp.c b/src/panfrost/vulkan/csf/panvk_vX_cmd_precomp.c index c7858dad129..bd302847aec 100644 --- a/src/panfrost/vulkan/csf/panvk_vX_cmd_precomp.c +++ b/src/panfrost/vulkan/csf/panvk_vX_cmd_precomp.c @@ -95,7 +95,8 @@ panvk_per_arch(dispatch_precomp)(struct panvk_precomp_ctx *ctx, cfg.workgroup_size_x = shader->cs.local_size.x; cfg.workgroup_size_y = shader->cs.local_size.y; cfg.workgroup_size_z = shader->cs.local_size.z; - cfg.allow_merging_workgroups = false; + cfg.allow_merging_workgroups = + shader->info.cs.allow_merging_workgroups; } cs_move32_to(b, cs_sr_reg32(b, COMPUTE, WG_SIZE), wg_size.opaque[0]);