<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_REOPENED "
title="REOPENED - [sna suse] ddx assertion hits"
href="https://bugs.freedesktop.org/show_bug.cgi?id=70461#c132">Comment # 132</a>
on <a class="bz_bug_link
bz_status_REOPENED "
title="REOPENED - [sna suse] ddx assertion hits"
href="https://bugs.freedesktop.org/show_bug.cgi?id=70461">bug 70461</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>If we move the skip-on-stale check ahead of the assert, does that paper over
the bug?
diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c
index 2ed698d..4b6fdad 100644
--- a/src/sna/sna_dri2.c
+++ b/src/sna/sna_dri2.c
@@ -3302,15 +3302,15 @@ sna_dri2_schedule_swap(ClientPtr client, DrawablePtr
draw, DRI2BufferPtr front,
assert(get_private(front)->refcnt);
assert(get_private(back)->refcnt);
- assert(get_private(back)->bo != get_private(front)->bo);
- assert(get_private(front)->bo->refcnt);
- assert(get_private(back)->bo->refcnt);
-
if (get_private(back)->stale) {
DBG(("%s: stale back buffer\n", __FUNCTION__));
goto skip;
}
+ assert(get_private(back)->bo != get_private(front)->bo);
+ assert(get_private(front)->bo->refcnt);
+ assert(get_private(back)->bo->refcnt);
+
if (draw->type != DRAWABLE_PIXMAP) {
WindowPtr win = (WindowPtr)draw;
struct dri2_window *priv = dri2_window(win);</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>