Support permanent glSwapBuffer path

Review Request #107198 - Created Nov. 4, 2012 and submitted

Information
Thomas Lübking
kde-workspace
master
307965
Reviewers
kwin
graesslin, ralfjung
This refactors the flushBuffer of glxBackend to handle the requirement of swapping and copying independently.
A config option allows to swap and then copy damaged areas back to align front and backbuffers, by this use glSwapBuffer all the time (even for minor screen updates)

The patch has a minor optimization for the fullscreen painting case to shortcut into a plain buffer swap

Ratio:
glWaitVideoSync is reported to not be supported by the nvidia blob ever since and is no longer on SNA either, what means effecetively kwin does not provide GL v'syncing for those GPUs / drivers.

Pending issue:
the effectframes currently don't perform a clipped repaint (neither does beclock, but that's my problem) so this needs to be changed (for the option being enabled) to fix the various effectframe paints.
en- and disabled for OpenGL 2  + 1.3

Issues

  • 0
  • 6
  • 5
  • 11
Description From Last Updated
Thomas Lübking
Ralf Jung
Thomas Lübking
Thomas Lübking
Thomas Lübking
Ralf Jung
Ralf Jung
Thomas Lübking
Thomas Lübking
Ralf Jung
Ralf Jung
Thomas Lübking
Ralf Jung
Ralf Jung
Ralf Jung
Thomas Lübking
Thomas Lübking
Thomas Lübking
Thomas Lübking
Thomas Lübking
Fredrik Höglund
Ralf Jung
Thomas Lübking
Ralf Jung
Thomas Lübking
Martin Flöser
Thomas Lübking
Thomas Lübking
Ralf Jung
Thomas Lübking
Ralf Jung
Martin Flöser
Commit Hook
Thomas Lübking
Review request changed

Status: Closed (submitted)

Vladislav Voronkov
Hello.
I'm running KDE 4.11 RC2, Lenovo X220, Intel HD3000, ArchLinux with kde-unstable.
Since this is release candidate, I think I should write here.

"Automatic" (GLPreferBufferSwap=a) selects "Only when Cheap" (GLPreferBufferSwap=e) on my HD3000 I suppose. There is tearing in videos which are non-fullscreen or which are windowed but not close to fullscreen. Everything is fine with "Full scene repaints" (GLPreferBufferSwap=p) and amazingly horrible (unusable) with "Re-use screen content" (well, it should be, I have read the notice).

Please enable "Full scene repaints" when "Automatic" is selected on HD3000 in 4.11 release. Thanks a lot.
  1. Mesa 9.1.6
    xf86-video-intel (SNA) 2.21.14
    Kernel 3.10.5
  2. > "Automatic" (GLPreferBufferSwap=a) selects "Only when Cheap" (GLPreferBufferSwap=e) on my HD3000 I suppose.
    Yes. Intended. Full scene repaints can be quite expensive on CPU, GPU and esp. battery.
    
    > There is tearing in videos which are non-fullscreen or which are windowed but not close to fullscreen.
    Yes, that's what it's meant to be.
    
    > Please enable "Full scene repaints" when "Automatic" is selected on HD3000 in 4.11 release.
    The choice was for "Only when Cheap" because otherwise a blinking cursor or the blinking ":" in a clock triggers constant full screen repaints, including blurring and everything else.
    The assumption was that when you watch videos etc. or scroll a browser - ie. whenever you actually care about tearing - that will usually cover a pretty large section of the screen.
    It's heuristical and a trade-off until https://git.reviewboard.kde.org/r/110642/ makes it cheap to swap even on minor updates, but you're of course free to select the full scene repaints until then - if it fits you better.
Loading...