Hmm, would you accept a fix to this if it worked in the normal case, but
had a slight feedback loop in the case where GLX_EXT_buffer_age was
supported ?

The best way to handle this problem is to add support for geometry
clipping to nux (eg, give nux a list of rectangles, and when it draws
textures, it will determine the correct vertices + texcoords for the
drawn textures to remain within those rectangles). However, adding
support for geometry clipping to nux is not trivial. Worth doing if we
can, but we need to talk with the relevant people about that.

Currently, my approach is to give nux the damage region, and have it
determine which BaseWindows need to be presented to the screen. We also
get back that list, and ensure that the damage region covers that area
too (to prevent overdraw). However, that approach is slightly flawed
when the backbuffer is partially defined, as we have to mark the nux
areas as damaged, and then that feeds back into the next time we redraw,
when we just re-present the nux windows again because their area was
damaged on a previous frame.

(Sorry, I can't make that any more terse, its a complicated problem and
I've been looking into it for days).

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

Title:
  damageScreen() in UnityScreen::nuxDamageCompiz() severely hurts Unity
  performance

To manage notifications about this bug go to:
https://bugs.launchpad.net/unity/+bug/1080947/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to