Comment 7 for bug 1080947

Revision history for this message
Sam Spilsbury (smspillaz) wrote : Re: [Bug 1080947] Re: damageScreen() in UnityScreen::nuxDamageCompiz() severely hurts Unity performance

On Thu, Jan 3, 2013 at 4:26 PM, Daniel van Vugt
<email address hidden> wrote:
> I would suggest first remove the damageScreen and reintroduce the old
> code that it replaced. Then you will have solved this bug and probably
> only need to solve some flickering which the damageScreen call was
> introduced to work around.
>
> No changes to Nux should be required.
>

I have already done this in my experimental unity and nux branches.

No, the changes are not as simple as they might seem.

Calling WindowThread::RenderInterfaceFromForeignCmd renders the WHOLE
interface regardless of the damage region. It does this by painting a
bunch of textures back on-screen. Rendering outside the damage area is
always overdraw, so there needs to be special code to account for
that.

Please read my comments carefully before responding to them.

> --
> You received this bug notification because you are a bug assignee.
> https://bugs.launchpad.net/bugs/1080947
>
> Title:
> damageScreen() in UnityScreen::nuxDamageCompiz() severely hurts Unity
> performance
>
> Status in Unity:
> In Progress
> Status in “unity” package in Ubuntu:
> Triaged
>
> Bug description:
> There's a call to damageScreen in UnityScreen::nuxDamageCompiz that I
> had to put there to work around rendering bugs when we did the GLES
> port. It has a significant impact on performance however and should be
> removed ASAP, replaced with something like the old version of
> UnityScreen::nuxDamageCompiz.
>
> I think this is causing bug 1039942, and probably others too.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/unity/+bug/1080947/+subscriptions

--
Sam Spilsbury