mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
radv/amdgpu: Change extra_cs to array in get_bo_list.
This is necessary because we are going to want to allow using more than just 1 preamble. Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20010>
This commit is contained in:
parent
f0492a6efb
commit
e10b2f273e
1 changed files with 14 additions and 12 deletions
|
|
@ -751,8 +751,9 @@ radv_amdgpu_cs_execute_secondary(struct radeon_cmdbuf *_parent, struct radeon_cm
|
|||
static VkResult
|
||||
radv_amdgpu_get_bo_list(struct radv_amdgpu_winsys *ws, struct radeon_cmdbuf **cs_array,
|
||||
unsigned count, struct radv_amdgpu_winsys_bo **extra_bo_array,
|
||||
unsigned num_extra_bo, struct radeon_cmdbuf *extra_cs,
|
||||
unsigned *rnum_handles, struct drm_amdgpu_bo_list_entry **rhandles)
|
||||
unsigned num_extra_bo, struct radeon_cmdbuf **extra_cs_array,
|
||||
unsigned num_extra_cs, unsigned *rnum_handles,
|
||||
struct drm_amdgpu_bo_list_entry **rhandles)
|
||||
{
|
||||
struct drm_amdgpu_bo_list_entry *handles = NULL;
|
||||
unsigned num_handles = 0;
|
||||
|
|
@ -768,7 +769,7 @@ radv_amdgpu_get_bo_list(struct radv_amdgpu_winsys *ws, struct radeon_cmdbuf **cs
|
|||
handles[i].bo_priority = ws->global_bo_list.bos[i]->priority;
|
||||
num_handles++;
|
||||
}
|
||||
} else if (count == 1 && !num_extra_bo && !extra_cs &&
|
||||
} else if (count == 1 && !num_extra_bo && !num_extra_cs &&
|
||||
!radv_amdgpu_cs(cs_array[0])->num_virtual_buffers && !ws->global_bo_list.count) {
|
||||
struct radv_amdgpu_cs *cs = (struct radv_amdgpu_cs *)cs_array[0];
|
||||
if (cs->num_buffers == 0)
|
||||
|
|
@ -790,8 +791,9 @@ radv_amdgpu_get_bo_list(struct radv_amdgpu_winsys *ws, struct radeon_cmdbuf **cs
|
|||
total_buffer_count += radv_amdgpu_winsys_bo(cs->virtual_buffers[j])->bo_count;
|
||||
}
|
||||
|
||||
if (extra_cs) {
|
||||
total_buffer_count += ((struct radv_amdgpu_cs *)extra_cs)->num_buffers;
|
||||
if (num_extra_cs) {
|
||||
for (unsigned i = 0; i < num_extra_cs; ++i)
|
||||
total_buffer_count += ((struct radv_amdgpu_cs *)extra_cs_array[i])->num_buffers;
|
||||
}
|
||||
|
||||
total_buffer_count += ws->global_bo_list.count;
|
||||
|
|
@ -808,11 +810,11 @@ radv_amdgpu_get_bo_list(struct radv_amdgpu_winsys *ws, struct radeon_cmdbuf **cs
|
|||
handles[i].bo_priority = extra_bo_array[i]->priority;
|
||||
}
|
||||
|
||||
for (unsigned i = 0; i < count + !!extra_cs; ++i) {
|
||||
for (unsigned i = 0; i < count + num_extra_cs; ++i) {
|
||||
struct radv_amdgpu_cs *cs;
|
||||
|
||||
if (i == count)
|
||||
cs = (struct radv_amdgpu_cs *)extra_cs;
|
||||
if (i >= count)
|
||||
cs = (struct radv_amdgpu_cs *)extra_cs_array[i - count];
|
||||
else
|
||||
cs = (struct radv_amdgpu_cs *)cs_array[i];
|
||||
|
||||
|
|
@ -936,7 +938,7 @@ radv_amdgpu_winsys_cs_submit_chained(struct radv_amdgpu_ctx *ctx, int queue_idx,
|
|||
u_rwlock_rdlock(&aws->global_bo_list.lock);
|
||||
|
||||
/* Get the BO list. */
|
||||
result = radv_amdgpu_get_bo_list(cs0->ws, cs_array, cs_count, NULL, 0, initial_preamble_cs,
|
||||
result = radv_amdgpu_get_bo_list(cs0->ws, cs_array, cs_count, NULL, 0, &initial_preamble_cs, 1,
|
||||
&num_handles, &handles);
|
||||
if (result != VK_SUCCESS)
|
||||
goto fail;
|
||||
|
|
@ -998,8 +1000,8 @@ radv_amdgpu_winsys_cs_submit_fallback(struct radv_amdgpu_ctx *ctx, int queue_idx
|
|||
u_rwlock_rdlock(&aws->global_bo_list.lock);
|
||||
|
||||
/* Get the BO list. */
|
||||
result = radv_amdgpu_get_bo_list(cs0->ws, &cs_array[0], cs_count, NULL, 0, initial_preamble_cs,
|
||||
&num_handles, &handles);
|
||||
result = radv_amdgpu_get_bo_list(cs0->ws, &cs_array[0], cs_count, NULL, 0, &initial_preamble_cs,
|
||||
1, &num_handles, &handles);
|
||||
if (result != VK_SUCCESS) {
|
||||
goto fail;
|
||||
}
|
||||
|
|
@ -1202,7 +1204,7 @@ radv_amdgpu_winsys_cs_submit_sysmem(struct radv_amdgpu_ctx *ctx, int queue_idx,
|
|||
|
||||
result =
|
||||
radv_amdgpu_get_bo_list(cs0->ws, &cs_array[i], cnt, (struct radv_amdgpu_winsys_bo **)bos,
|
||||
number_of_ibs, preamble_cs, &num_handles, &handles);
|
||||
number_of_ibs, &preamble_cs, 1, &num_handles, &handles);
|
||||
if (result != VK_SUCCESS) {
|
||||
free(ibs);
|
||||
free(bos);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue