diff options
author | Marek Olšák <[email protected]> | 2017-07-09 23:44:57 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-07-17 10:56:51 -0400 |
commit | 5fb80a1e84ee41dc485cc4fcb96821c92b13a427 (patch) | |
tree | 08d10601057b9fd6fcdc903d82a28861bb46a800 /src/gallium/drivers | |
parent | ddbd2f4c540425a30e36bf18df845b8f5c41495d (diff) |
radeonsi: prevent a crash with DBG_CHECK_VM and u_threaded_context
by setting PIPE_CONTEXT_DEBUG in the caller
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_pipe.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index 8a4bc41a4ed..371d3372aa9 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -165,9 +165,6 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, if (!sctx) return NULL; - if (sscreen->b.debug_flags & DBG_CHECK_VM) - flags |= PIPE_CONTEXT_DEBUG; - if (flags & PIPE_CONTEXT_DEBUG) sscreen->record_llvm_ir = true; /* racy but not critical */ @@ -378,7 +375,12 @@ static struct pipe_context *si_pipe_create_context(struct pipe_screen *screen, void *priv, unsigned flags) { struct si_screen *sscreen = (struct si_screen *)screen; - struct pipe_context *ctx = si_create_context(screen, flags); + struct pipe_context *ctx; + + if (sscreen->b.debug_flags & DBG_CHECK_VM) + flags |= PIPE_CONTEXT_DEBUG; + + ctx = si_create_context(screen, flags); if (!(flags & PIPE_CONTEXT_PREFER_THREADED)) return ctx; |