From 0ba29bf641d0170d32dddc9eaa9fd89b9260a460 Mon Sep 17 00:00:00 2001 From: Karmjit Mahil Date: Fri, 14 Jul 2023 13:36:46 +0100 Subject: [PATCH] pvr: Use the correct size for the unified store allocation Signed-off-by: Karmjit Mahil Reviewed-by: Frank Binns Part-of: --- src/imagination/vulkan/pvr_cmd_buffer.c | 2 +- src/imagination/vulkan/pvr_private.h | 1 + src/imagination/vulkan/pvr_query_compute.c | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/imagination/vulkan/pvr_cmd_buffer.c b/src/imagination/vulkan/pvr_cmd_buffer.c index 805c53c61bd..b4db621650e 100644 --- a/src/imagination/vulkan/pvr_cmd_buffer.c +++ b/src/imagination/vulkan/pvr_cmd_buffer.c @@ -4425,7 +4425,7 @@ void pvr_compute_update_kernel_private( .sd_type = PVRX(CDMCTRL_SD_TYPE_NONE), .usc_unified_size = - DIV_ROUND_UP(pipeline->coeff_regs_count << 2U, + DIV_ROUND_UP(pipeline->unified_store_regs_count << 2U, PVRX(CDMCTRL_KERNEL0_USC_UNIFIED_SIZE_UNIT_SIZE)), /* clang-format off */ diff --git a/src/imagination/vulkan/pvr_private.h b/src/imagination/vulkan/pvr_private.h index 00be6f8438d..f527fa62b55 100644 --- a/src/imagination/vulkan/pvr_private.h +++ b/src/imagination/vulkan/pvr_private.h @@ -1001,6 +1001,7 @@ struct pvr_private_compute_pipeline { uint32_t pds_data_size_dw; uint32_t pds_temps_used; uint32_t coeff_regs_count; + uint32_t unified_store_regs_count; VkExtent3D workgroup_size; /* Used by pvr_compute_update_shared_private(). */ diff --git a/src/imagination/vulkan/pvr_query_compute.c b/src/imagination/vulkan/pvr_query_compute.c index b15095f9f60..619c1279ce4 100644 --- a/src/imagination/vulkan/pvr_query_compute.c +++ b/src/imagination/vulkan/pvr_query_compute.c @@ -553,6 +553,7 @@ VkResult pvr_add_query_program(struct pvr_cmd_buffer *cmd_buffer, pipeline.pds_temps_used = query_prog->primary_num_temps; pipeline.coeff_regs_count = shader_factory_info->coeff_regs; + pipeline.unified_store_regs_count = shader_factory_info->input_regs; pipeline.const_shared_regs_count = shader_factory_info->const_shared_regs; const_buffer = vk_alloc(&cmd_buffer->vk.pool->alloc,