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

Author: Marek Olšák <[email protected]>
Date:   Sun Dec  3 20:16:28 2023 -0500

winsys/amdgpu: pass amdgpu_buffer_list* to amdgpu_add_bo_fences_to_dependencies

Reviewed-by: Yogesh Mohan Marimuthu <[email protected]>
Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547>

---

 src/gallium/winsys/amdgpu/drm/amdgpu_cs.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c 
b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
index b65b967142b..4f07d83f20d 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
@@ -1315,11 +1315,12 @@ static void amdgpu_inc_bo_num_active_ioctls(unsigned 
num_buffers,
 static void amdgpu_add_bo_fences_to_dependencies(struct amdgpu_cs *acs,
                                                  struct amdgpu_cs_context *cs,
                                                  struct pipe_fence_handle 
*fence,
-                                                 unsigned num_buffers,
-                                                 struct amdgpu_cs_buffer 
*buffers)
+                                                 struct amdgpu_buffer_list 
*list)
 {
+   unsigned num_buffers = list->num_buffers;
+
    for (unsigned i = 0; i < num_buffers; i++) {
-      struct amdgpu_cs_buffer *buffer = &buffers[i];
+      struct amdgpu_cs_buffer *buffer = &list->buffers[i];
       struct amdgpu_winsys_bo *bo = buffer->bo;
 
       amdgpu_add_bo_fence_dependencies(acs, cs, buffer);
@@ -1386,15 +1387,8 @@ static void amdgpu_cs_submit_ib(void *job, void *gdata, 
int thread_index)
    /* Since the kernel driver doesn't synchronize execution between different
     * rings automatically, we have to add fence dependencies manually.
     */
-   amdgpu_add_bo_fences_to_dependencies(acs, cs, cs->fence,
-                                        
cs->buffer_lists[AMDGPU_BO_REAL].num_buffers,
-                                        
cs->buffer_lists[AMDGPU_BO_REAL].buffers);
-   amdgpu_add_bo_fences_to_dependencies(acs, cs, cs->fence,
-                                        
cs->buffer_lists[AMDGPU_BO_SLAB].num_buffers,
-                                        
cs->buffer_lists[AMDGPU_BO_SLAB].buffers);
-   amdgpu_add_bo_fences_to_dependencies(acs, cs, cs->fence,
-                                        
cs->buffer_lists[AMDGPU_BO_SPARSE].num_buffers,
-                                        
cs->buffer_lists[AMDGPU_BO_SPARSE].buffers);
+   for (unsigned i = 0; i < ARRAY_SIZE(cs->buffer_lists); i++)
+      amdgpu_add_bo_fences_to_dependencies(acs, cs, cs->fence, 
&cs->buffer_lists[i]);
    simple_mtx_unlock(&ws->bo_fence_lock);
 
    struct drm_amdgpu_bo_list_entry *bo_list = NULL;

Reply via email to