<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEEDINFO "
title="NEEDINFO --- - KDE Konsole very slow scrolling with TearFree and QT graphics system native"
href="https://bugs.freedesktop.org/show_bug.cgi?id=77436#c121">Comment # 121</a>
on <a class="bz_bug_link
bz_status_NEEDINFO "
title="NEEDINFO --- - KDE Konsole very slow scrolling with TearFree and QT graphics system native"
href="https://bugs.freedesktop.org/show_bug.cgi?id=77436">bug 77436</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>Something that's been bothering me is that I think we end up not calling the
BlockHandler often enough. That's called after a client uses up his time slice
or has no more commands to execute.
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index e0995ce..4eaf1d5 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -719,6 +719,9 @@ sna_block_handler(BLOCKHANDLER_ARGS_DECL)
sna->BlockHandler(BLOCKHANDLER_ARGS);
+ ErrorF("%s (tv=%ld.%06ld), shadow?=%d\n", __FUNCTION__,
+ *tv ? (*tv)->tv_sec : -1, *tv ? (*tv)->tv_usec : 0,
has_shadow(sna));
+
if (*tv == NULL || ((*tv)->tv_usec | (*tv)->tv_sec) || has_shadow(sna))
sna_accel_block_handler(sna, tv);
}
Would give a rough indication of how often we are called, and how often we
would proceed. The complication here is that whilst TearFree is active,
continuation is done immediately after the flip.
On that front, "trace-cmd record -e drm -e i915" during the lag would be
useful. Attach the output of "trace-cmd report". (See
<a href="http://git.kernel.org/cgit/linux/kernel/git/rostedt/trace-cmd.git">http://git.kernel.org/cgit/linux/kernel/git/rostedt/trace-cmd.git</a>)</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>