mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 17:58:26 +02:00
radeonsi: Fix dead lock with aux_context_lock in si_screen_clear_buffer.
After disable SDMA on Arcturus(gfx9), dead lock with aux_context_lock is detected since si_screen_clear_buffer is called recursively before release lock. The call trace is: si_clear_render_target->si_compute_clear_render_target-> si_launch_grid_internal->si_launch_grid->si_emit_cache_flush-> si_prim_discard_signal_next_compute_ib_start->u_suballocator_alloc-> si_resource_create->si_buffer_create->si_alloc_resource-> si_screen_clear_buffer->simple_mtx_lock-> si_sdma_clear_buffer->si_pipe_clear_buffer-> si_clear_buffer->si_compute_do_clear_or_copy-> si_launch_grid_internal->si_launch_grid->si_emit_cache_flush-> si_prim_discard_signal_next_compute_ib_start->u_suballocator_alloc-> si_resource_create->si_buffer_create->si_alloc_resource-> si_screen_clear_buffer->simple_mtx_lock Fixes:07a49bf597"radeonsi: disable SDMA on gfx9" Signed-off-by: James Zhu <James.Zhu@amd.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6941> (cherry picked from commit5e8791a0bf)
This commit is contained in:
parent
ed7f0f2d90
commit
556d6b099e
2 changed files with 3 additions and 1 deletions
|
|
@ -1210,7 +1210,7 @@
|
|||
"description": "radeonsi: Fix dead lock with aux_context_lock in si_screen_clear_buffer.",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"master_sha": null,
|
||||
"because_sha": "07a49bf59766b7c40d35608a98bd4a5796dcc2fe"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -588,6 +588,8 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, unsign
|
|||
si_initialize_prim_discard_tunables(sscreen, is_aux_context,
|
||||
&sctx->prim_discard_vertex_count_threshold,
|
||||
&sctx->index_ring_size_per_ib);
|
||||
} else {
|
||||
sctx->prim_discard_vertex_count_threshold = UINT_MAX;
|
||||
}
|
||||
|
||||
/* Initialize SDMA functions. */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue