mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-08 19:20:12 +01:00
st/dri: fix deadlock when waiting on android fences
Android fences can't be deferred, because st/dri calls fence_finish with ctx = NULL, so the driver can't flush u_threaded_context. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
881f6e741f
commit
3a71eac783
3 changed files with 2 additions and 6 deletions
|
|
@ -147,8 +147,7 @@ enum st_attachment_type {
|
|||
#define ST_FLUSH_FRONT (1 << 0)
|
||||
#define ST_FLUSH_END_OF_FRAME (1 << 1)
|
||||
#define ST_FLUSH_WAIT (1 << 2)
|
||||
#define ST_FLUSH_DEFERRED (1 << 3)
|
||||
#define ST_FLUSH_FENCE_FD (1 << 4)
|
||||
#define ST_FLUSH_FENCE_FD (1 << 3)
|
||||
|
||||
/**
|
||||
* Value to st_manager->get_param function.
|
||||
|
|
|
|||
|
|
@ -116,8 +116,7 @@ dri2_create_fence_fd(__DRIcontext *_ctx, int fd)
|
|||
|
||||
if (fd == -1) {
|
||||
/* exporting driver created fence, flush: */
|
||||
stapi->flush(stapi, ST_FLUSH_DEFERRED | ST_FLUSH_FENCE_FD,
|
||||
&fence->pipe_fence);
|
||||
stapi->flush(stapi, ST_FLUSH_FENCE_FD, &fence->pipe_fence);
|
||||
} else {
|
||||
/* importing a foreign fence fd: */
|
||||
ctx->create_fence_fd(ctx, &fence->pipe_fence, fd);
|
||||
|
|
|
|||
|
|
@ -634,8 +634,6 @@ st_context_flush(struct st_context_iface *stctxi, unsigned flags,
|
|||
|
||||
if (flags & ST_FLUSH_END_OF_FRAME)
|
||||
pipe_flags |= PIPE_FLUSH_END_OF_FRAME;
|
||||
if (flags & ST_FLUSH_DEFERRED)
|
||||
pipe_flags |= PIPE_FLUSH_DEFERRED;
|
||||
if (flags & ST_FLUSH_FENCE_FD)
|
||||
pipe_flags |= PIPE_FLUSH_FENCE_FD;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue