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
