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

Author: Samuel Pitoiset <samuel.pitoi...@gmail.com>
Date:   Tue Mar 21 11:21:48 2023 +0100

radv: pass a radv_shader to radv_emit_dispatch_packets()

Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22102>

---

 src/amd/vulkan/radv_cmd_buffer.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 5c624e86943..1c1beb251ee 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -9592,10 +9592,9 @@ radv_CmdExecuteGeneratedCommandsNV(VkCommandBuffer 
commandBuffer, VkBool32 isPre
 
 static void
 radv_emit_dispatch_packets(struct radv_cmd_buffer *cmd_buffer,
-                           struct radv_compute_pipeline *pipeline,
+                           const struct radv_shader *compute_shader,
                            const struct radv_dispatch_info *info)
 {
-   struct radv_shader *compute_shader = 
pipeline->base.shaders[MESA_SHADER_COMPUTE];
    unsigned dispatch_initiator = cmd_buffer->device->dispatch_initiator;
    struct radeon_winsys *ws = cmd_buffer->device->ws;
    bool predicating = cmd_buffer->state.predicating;
@@ -9665,7 +9664,7 @@ radv_emit_dispatch_packets(struct radv_cmd_buffer 
*cmd_buffer,
       unsigned offsets[3] = {info->offsets[0], info->offsets[1], 
info->offsets[2]};
 
       if (info->unaligned) {
-         unsigned *cs_block_size = compute_shader->info.cs.block_size;
+         const unsigned *cs_block_size = compute_shader->info.cs.block_size;
          unsigned remainder[3];
 
          /* If aligned, these should be an entire block size,
@@ -9787,7 +9786,7 @@ radv_dispatch(struct radv_cmd_buffer *cmd_buffer, const 
struct radv_dispatch_inf
 
       radv_upload_compute_shader_descriptors(cmd_buffer, pipeline, bind_point);
 
-      radv_emit_dispatch_packets(cmd_buffer, pipeline, info);
+      radv_emit_dispatch_packets(cmd_buffer, compute_shader, info);
       /* <-- CUs are busy here --> */
 
       /* Start prefetches after the dispatch has been started. Both
@@ -9795,7 +9794,7 @@ radv_dispatch(struct radv_cmd_buffer *cmd_buffer, const 
struct radv_dispatch_inf
        * more important.
        */
       if (has_prefetch && pipeline_is_dirty) {
-         radv_emit_shader_prefetch(cmd_buffer, 
pipeline->base.shaders[MESA_SHADER_COMPUTE]);
+         radv_emit_shader_prefetch(cmd_buffer, compute_shader);
       }
    } else {
       /* If we don't wait for idle, start prefetches first, then set
@@ -9804,13 +9803,13 @@ radv_dispatch(struct radv_cmd_buffer *cmd_buffer, const 
struct radv_dispatch_inf
       si_emit_cache_flush(cmd_buffer);
 
       if (has_prefetch && pipeline_is_dirty) {
-         radv_emit_shader_prefetch(cmd_buffer, 
pipeline->base.shaders[MESA_SHADER_COMPUTE]);
+         radv_emit_shader_prefetch(cmd_buffer, compute_shader);
       }
 
       radv_upload_compute_shader_descriptors(cmd_buffer, pipeline, bind_point);
 
       radv_emit_compute_pipeline(cmd_buffer, pipeline);
-      radv_emit_dispatch_packets(cmd_buffer, pipeline, info);
+      radv_emit_dispatch_packets(cmd_buffer, compute_shader, info);
    }
 
    if (pipeline_is_dirty) {

Reply via email to