summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-11-25 22:57:42 -0800
committerEric Anholt <eric@anholt.net>2014-01-30 16:40:25 -0800
commitf12d6d613acd3f85309e4a3063871b188c93a145 (patch)
tree1923f343106ddec685662cb2dc36557b4ad8f38c
parent09d6c1972037a5519488094afd225f793d2188d0 (diff)
dri3: Flush XCB before blocking for special events
XCB doesn't flush the output buffer automatically, so we have to call xcb_flush ourselves before waiting. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Eric Anholt <eric@anholt.net>
-rw-r--r--src/glx/dri3_glx.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c
index 79bc5f0214..c91f5000db 100644
--- a/src/glx/dri3_glx.c
+++ b/src/glx/dri3_glx.c
@@ -406,6 +406,7 @@ dri3_wait_for_event(__GLXDRIdrawable *pdraw)
xcb_generic_event_t *ev;
xcb_present_generic_event_t *ge;
+ xcb_flush(c);
ev = xcb_wait_for_special_event(c, priv->special_event);
if (!ev)
return false;
@@ -1075,6 +1076,7 @@ dri3_find_back(xcb_connection_t *c, struct dri3_drawable *priv)
if (!buffer->busy)
return b;
}
+ xcb_flush(c);
ev = xcb_wait_for_special_event(c, priv->special_event);
if (!ev)
return -1;