aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichel Dänzer <[email protected]>2018-09-04 12:18:19 +0200
committerMichel Dänzer <[email protected]>2018-09-12 16:53:58 +0200
commitaefac10fecc9ec70feb5923ce3200902f67182ba (patch)
treef5b82cdc0a973551c367561c83fa8716565b8503
parent9b5c0c520f6e41f19b3568a4e0532c836bc522e4 (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]>
-rw-r--r--src/loader/loader_dri3_helper.c4
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?