mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 20:28:04 +02:00
radv: allow NULL initial_preamble_cs in radv_amdgpu_winsys_cs_submit_sysmem()
In case of mcbp, shadowed_regs is initialized early in radv_queue_init() function by submitting the command buffer. The command buffer is submitted in radv_init_shadowed_regs_buffer_state() function. When RADV_DEBUG=noibs is used radv_amdgpu_winsys_cs_submit_sysmem() function is used to submit command buffer. radv_amdgpu_winsys_cs_submit_sysmem() crashes here because initial_preamble_cs is NULL. This patch fixes the radv_amdgpu_winsys_cs_submit_sysmem() function to support NULL initial_preamble_cs. Signed-off-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com> Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18301>
This commit is contained in:
parent
c6702e1530
commit
44f25792d5
1 changed files with 4 additions and 3 deletions
|
|
@ -1056,7 +1056,7 @@ static VkResult
|
|||
radv_amdgpu_winsys_cs_submit_sysmem(struct radv_amdgpu_ctx *ctx, int queue_idx,
|
||||
struct radv_winsys_sem_info *sem_info,
|
||||
struct radeon_cmdbuf **cs_array, unsigned cs_count,
|
||||
struct radeon_cmdbuf *initial_preamble_cs,
|
||||
struct radeon_cmdbuf **initial_preamble_cs,
|
||||
struct radeon_cmdbuf *continue_preamble_cs,
|
||||
bool uses_shadow_regs)
|
||||
{
|
||||
|
|
@ -1075,7 +1075,8 @@ radv_amdgpu_winsys_cs_submit_sysmem(struct radv_amdgpu_ctx *ctx, int queue_idx,
|
|||
for (unsigned i = 0; i < cs_count;) {
|
||||
struct radv_amdgpu_cs_ib_info *ibs;
|
||||
struct radeon_winsys_bo **bos;
|
||||
struct radeon_cmdbuf *preamble_cs = i ? continue_preamble_cs : initial_preamble_cs;
|
||||
struct radeon_cmdbuf *preamble_cs = i ? continue_preamble_cs :
|
||||
initial_preamble_cs ? initial_preamble_cs[0] : NULL;
|
||||
struct radv_amdgpu_cs *cs = radv_amdgpu_cs(cs_array[i]);
|
||||
struct drm_amdgpu_bo_list_entry *handles = NULL;
|
||||
unsigned num_handles = 0;
|
||||
|
|
@ -1348,7 +1349,7 @@ radv_amdgpu_winsys_cs_submit_internal(struct radv_amdgpu_ctx *ctx,
|
|||
assert(submit->preamble_count <= 1);
|
||||
result = radv_amdgpu_winsys_cs_submit_sysmem(
|
||||
ctx, submit->queue_index, sem_info, submit->cs_array, submit->cs_count,
|
||||
submit->initial_preamble_cs[0], submit->continue_preamble_cs, submit->uses_shadow_regs);
|
||||
submit->initial_preamble_cs, submit->continue_preamble_cs, submit->uses_shadow_regs);
|
||||
} else if (can_patch) {
|
||||
result = radv_amdgpu_winsys_cs_submit_chained(
|
||||
ctx, submit->queue_index, sem_info, submit->cs_array, submit->cs_count,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue