<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Lag on terminal with compositing after 1f6dfc9"
href="https://bugs.freedesktop.org/show_bug.cgi?id=97299#c4">Comment # 4</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Lag on terminal with compositing after 1f6dfc9"
href="https://bugs.freedesktop.org/show_bug.cgi?id=97299">bug 97299</a>
from <span class="vcard"><a class="email" href="mailto:chris@chris-wilson.co.uk" title="Chris Wilson <chris@chris-wilson.co.uk>"> <span class="fn">Chris Wilson</span></a>
</span></b>
<pre>Tracking through this the issue really appears to be that in dri2 there is a
synchronisation point in comptom with X when it acquires the textures for
composition, but in dri3 there is no equivalent X11 request. Instead it queries
the XserverRegion corresponding to the damage (rather than tracking the latest
damage through DamageNotifyEvents) which means that the rendering in the
compositor lags behind the last flush in X when sending the damage event.
As I understand it, it is lacking an appropriate glXWaitX() like:
diff --git a/src/opengl.c b/src/opengl.c
index 5a98f4e..c6cea55 100644
--- a/src/opengl.c
+++ b/src/opengl.c
@@ -1050,6 +1050,8 @@ glx_set_clip(session_t *ps, XserverRegion reg, const
reg_data_t *pcache_reg) {
rects = &rect_blank;
}
+ glXWaitX();
+
assert(nrects);
if (1 == nrects) {
glEnable(GL_SCISSOR_TEST);</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>