What's the way to go forward here? I think the most interesting question
is: Is it acceptable/a good idea to rely on the driver re-using the
backbuffer? The extension
https://www.opengl.org/registry/specs/EXT/glx_buffer_age.txt would
actually allow KWin to know when a backbuffer is re-used, but it is not
implemented in Mesa 8.

Looking at other compositors, if I understand the Clutter code properly
it performs a full-screen redraw each time. By only adding the full
screen to the damage area very late in KWin's paintSimpleScreen (after
calling prePaintWindow), I was able to significantly boost the
performance even with a full-screen blur region: It's ~45fps now. Maybe
the blur effect can be further optimized.

Weston seems to rely on backbuffer re-usage. It does not copy front-
buffer pixels to the backbuffer though, but instead keeps track of a
damaged region for each backbuffer (which, however, is equivalent to
remembering the last two or three damages) to know what to actually re-
paint. The problem is that KWin has effect plugins, which can extend to
the damaged region, so it is not straight forward to implement that
here: We need a place where the full region that will be re-painted for
the current frame is known, but nothing has been drawn yet so the region
to be re-drawn can be extended arbitrarily. I implemented this locally,
the observable behaviour is similar to the "copy from frontbuffer" patch
- I am unsure which version is preferable, but extending the re-drawn
area sounds cleaner to me (with my very limited GLX/OpenGL
experience...).

-- 
You received this bug notification because you are a member of Kubuntu
Bugs, which is subscribed to kde-workspace in Ubuntu.
https://bugs.launchpad.net/bugs/1069498

Title:
  KWin shows tearing despite of VSync

To manage notifications about this bug go to:
https://bugs.launchpad.net/kdebase-workspace/+bug/1069498/+subscriptions

-- 
kubuntu-bugs mailing list
kubuntu-b...@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kubuntu-bugs

Reply via email to