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