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;
