diff options
author | Michel Dänzer <[email protected]> | 2018-09-04 12:18:19 +0200 |
---|---|---|
committer | Michel Dänzer <[email protected]> | 2018-09-12 16:53:58 +0200 |
commit | aefac10fecc9ec70feb5923ce3200902f67182ba (patch) | |
tree | f5b82cdc0a973551c367561c83fa8716565b8503 /src/loader | |
parent | 9b5c0c520f6e41f19b3568a4e0532c836bc522e4 (diff) |
loader/dri3: Only wait for back buffer fences in dri3_get_buffer
We don't need to wait before drawing to the fake front buffer, as front
buffer rendering by definition is allowed to produce artifacts.
Fixes hangs in some cases when re-using the fake front buffer, due to it
still being busy (i.e. in use for presentation).
Cc: [email protected]
Bugzilla: https://bugs.freedesktop.org/106404
Bugzilla: https://bugs.freedesktop.org/107757
Tested-by: Olivier Fourdan <[email protected]>
Reviewed-by: Thomas Hellstrom <[email protected]>
Diffstat (limited to 'src/loader')
-rw-r--r-- | src/loader/loader_dri3_helper.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c index b6252148583..258678a6662 100644 --- a/src/loader/loader_dri3_helper.c +++ b/src/loader/loader_dri3_helper.c @@ -1818,7 +1818,9 @@ dri3_get_buffer(__DRIdrawable *driDrawable, buffer = new_buffer; draw->buffers[buf_id] = buffer; } - dri3_fence_await(draw->conn, draw, buffer); + + if (buffer_type == loader_dri3_buffer_back) + dri3_fence_await(draw->conn, draw, buffer); /* * Do we need to preserve the content of a previous buffer? |