mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-01 17:40:25 +01:00
radeonsi: add helper to use si_screen::aux_context
This context needs to be locked before usage, and flushed after.
If it's forgotten, radeonsi may crash (eg #6666).
To avoid this kind of error, introduce 2 helpers.
cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17032>
(cherry picked from commit bda1c081bd)
This commit is contained in:
parent
9f199d0e02
commit
ebda38196a
3 changed files with 16 additions and 1 deletions
|
|
@ -526,7 +526,7 @@
|
|||
"description": "radeonsi: add helper to use si_screen::aux_context",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1433,3 +1433,16 @@ struct pipe_screen *radeonsi_screen_create(int fd, const struct pipe_screen_conf
|
|||
drmFreeVersion(version);
|
||||
return rw ? rw->screen : NULL;
|
||||
}
|
||||
|
||||
struct si_context* si_get_aux_context(struct si_screen *sscreen)
|
||||
{
|
||||
simple_mtx_lock(&sscreen->aux_context_lock);
|
||||
return (struct si_context*)sscreen->aux_context;
|
||||
}
|
||||
|
||||
void si_put_aux_context_flush(struct si_screen *sscreen)
|
||||
{
|
||||
struct pipe_context *c = &((struct si_context*)sscreen->aux_context)->b;
|
||||
c->flush(c, NULL, 0);
|
||||
simple_mtx_unlock(&sscreen->aux_context_lock);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1504,6 +1504,8 @@ void si_init_compute_functions(struct si_context *sctx);
|
|||
/* si_pipe.c */
|
||||
void si_init_compiler(struct si_screen *sscreen, struct ac_llvm_compiler *compiler);
|
||||
void si_init_aux_async_compute_ctx(struct si_screen *sscreen);
|
||||
struct si_context* si_get_aux_context(struct si_screen *sscreen);
|
||||
void si_put_aux_context_flush(struct si_screen *sscreen);
|
||||
|
||||
/* si_perfcounters.c */
|
||||
void si_init_perfcounters(struct si_screen *screen);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue