winsys/amdgpu: pass r/w bo to w/r list in userq_wait ioctl

bo with write usage should wait for read and write fence. bo
with read usage should wait for write fence. Currently wrote bos
are passed to write list and read bos are passed to read like.
This patch fixes the issue.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35963>
This commit is contained in:
Yogesh Mohan Marimuthu 2025-07-07 13:44:06 +05:30 committed by Marge Bot
parent 9e5d11bff3
commit d9e5e8f5fc

View file

@ -1495,13 +1495,15 @@ static int amdgpu_cs_submit_ib_userq(struct amdgpu_userq *userq,
.syncobj_handles = (uintptr_t)syncobj_dependencies_list,
.syncobj_timeline_handles = (uintptr_t)&syncobj_timeline_dependency,
.syncobj_timeline_points = (uintptr_t)&syncobj_timeline_dependency_point,
.bo_read_handles = (uintptr_t)shared_buf_kms_handles_read,
.bo_write_handles = (uintptr_t)shared_buf_kms_handles_write,
/* Wait for previous reads/writes to complete before writing to these BOs. */
.bo_read_handles = (uintptr_t)shared_buf_kms_handles_write,
/* Wait for previous writes to complete before reading from these BOs. */
.bo_write_handles = (uintptr_t)shared_buf_kms_handles_read,
.num_syncobj_timeline_handles = num_syncobj_timeline_dependencies,
.num_fences = 0,
.num_syncobj_handles = num_syncobj_dependencies,
.num_bo_read_handles = num_shared_buf_read,
.num_bo_write_handles = num_shared_buf_write,
.num_bo_read_handles = num_shared_buf_write,
.num_bo_write_handles = num_shared_buf_read,
.out_fences = (uintptr_t)NULL,
};