<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Redraw lag on Ivy Bridge since 1f6dfc9df678"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=97914#c11">Comment # 11</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Redraw lag on Ivy Bridge since 1f6dfc9df678"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=97914">bug 97914</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>I think I'm starting to understand. It's not a missing wait/flush for the
target drawable, but missing flushes on the source textures, i.e.

mesa diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
index ee05f39..d63c89b 100644
--- a/src/glx/dri2_glx.c
+++ b/src/glx/dri2_glx.c
@@ -1007,8 +1007,7 @@ dri2_bind_tex_image(Display * dpy,
    if (pdraw != NULL) {
       psc = (struct dri2_screen *) base->psc;

-      if (!pdp->invalidateAvailable && psc->f &&
-           psc->f->base.version >= 3 && psc->f->invalidate)
+      if (psc->f && psc->f->base.version >= 3 && psc->f->invalidate)
         psc->f->invalidate(pdraw->driDrawable);

       if (psc->texBuffer->base.version >= 2 &&</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>