<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Ksnapshot (KDE) broken when using xf86-video-intel-2.99.916 + DRI3"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=90836#c12">Comment # 12</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Ksnapshot (KDE) broken when using xf86-video-intel-2.99.916 + DRI3"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=90836">bug 90836</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>(In reply to Loïc Yhuel from <a href="show_bug.cgi?id=90836#c11">comment #11</a>)
<span class="quote">> (In reply to Chris Wilson from <a href="show_bug.cgi?id=90836#c9">comment #9</a>)
> Great, I can confirm the issue is fixed :)

> (In reply to Chris Wilson from <a href="show_bug.cgi?id=90836#c8">comment #8</a>)
> > (In reply to Loïc Yhuel from <a href="show_bug.cgi?id=90836#c5">comment #5</a>)
> > > (In reply to Chris Wilson from <a href="show_bug.cgi?id=90836#c4">comment #4</a>)
> > > > Let's narrow down the reproduction steps then. How do you have kwin
> > > > configured?
> > > Compositing type : OpenGL 2.0
> > > Tearing Prevention : Full scene repaints
> > > IIRC with this config and DRI3, kwin uses the GLX_EXT_buffer_age extension
> > > (this is why I enable DRI3, else I have to choose between tear-free and
> > > performance when I use two screens).
> > 
> > Note that there a few caveats here. GLX_EXT_buffer_age in the client without
> > support in mesa means that damage is not propagated back to the display
> > server so that if you are using vnc, or udl, or something else like that it
> > only sees full screen repaints and is so much slower than expected.
> With Wayland, there would be EGL_EXT_swap_buffers_with_damage, I guess
> something like this could be useful on GLX.</span >

And even trivial to implement. 

<span class="quote">> > The other caveat is that DRI3 does not support single CRTC flipping like
> > DRI2. That is you cannot have a single fullscreen application on one CRTC
> > updating independently with the second screen (e.g. having a game/video on
> > the primary monitor whilst reading email on the second). In this case DRI3
> > forces both screens to flip (and the compositor to repaint as required to
> > correct damage), whereas ideally we would only update the single active CRTC
> > and not touch the idle CRTC/buffer at all.
> I don't think kwin supports flipping a single CRTC, else I wouldn't see any
> performance difference in animations on the primary monitor when I plug the
> second one.</span >

All that is required is for the compositor to unredirect the single-monitor
"fullscreen" app.

<span class="quote">> Anyway, I need to set kwin to "full scene repaints" to avoid tearing, with
> DRI3 it does in fact partial repaints using GLX_EXT_buffer_age, which is
> faster than real full screen repaints with DRI2.</span >

Yes. As above, GLX_EXT_buffer_age can easily be done with DRI2 as well. I am
just warning that GLX_EXT_buffer_age without a "GLX_MESA_swap_with_damage"
extension has performance issues with PRIME setups or other extended desktop
techniques(like VNC, screen capture).</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are on the CC list for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>