Module: Mesa
Branch: main
Commit: 0ba29bf641d0170d32dddc9eaa9fd89b9260a460
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0ba29bf641d0170d32dddc9eaa9fd89b9260a460

Author: Karmjit Mahil <[email protected]>
Date:   Fri Jul 14 13:36:46 2023 +0100

pvr: Use the correct size for the unified store allocation

Signed-off-by: Karmjit Mahil <[email protected]>
Reviewed-by: Frank Binns <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24209>

---

 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,

Reply via email to