Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

DLBI has landed

1,620 views
Skip to first unread message

Robert O'Callahan

unread,
Jul 1, 2012, 7:52:32 AM7/1/12
to dev-pl...@lists.mozilla.org
Matt Woodrow landed display-list-based-invalidation yesterday. This is a
large Gecko architectural change that was not possible to land behind a
flag. It simplifies a lot of layout code, speeds up reflow and greatly
reduces the amount of repainting we have to do when the user interacts with
large complex pages (e.g. GMail and Facebook). But a change of this
magnitude will cause regressions and we've already found some --- a few new
intermittent oranges, a few invalidation bugs on Web sites and a few
performance regressions. Matt and I will double down to fix those bugs as
fast as we can over the next couple of weeks. Regressions should block bug
'dlbi'. If the regressions become overwhelming we can back out but that
will be super painful so our last resort.

One class of performance regressions will not be completely fixable: we
expect a performance regression for scrolling large pages with text over
fixed backgrounds, with non-GPU-accelerated layers. This is because
pre-DLBI, a component-alpha BasicThebesLayer would be handled by drawing
the layer's content directly into the backbuffer during layer compositing.
With DLBI, we no longer ever paint any ThebesLayer contents during layer
compositing, and we didn't want to have to support CPU-based component
alpha compositing (slow), so we avoid creating component-alpha
BasicThebesLayers by mashing layers together. That means on some pages we
have to redraw viewport-sized BasicThebesLayers every time we scroll. (We
mitigated some of the damage by caching background-attachment:fixed
backgrounds for faster painting.) We needed to make this change to enable
OMTC for BasicLayers, anyway. None of this affects GPU-accelerated layers
in any way.

Rob
--
“You have heard that it was said, ‘Love your neighbor and hate your enemy.’
But I tell you, love your enemies and pray for those who persecute you,
that you may be children of your Father in heaven. ... If you love those
who love you, what reward will you get? Are not even the tax collectors
doing that? And if you greet only your own people, what are you doing more
than others?" [Matthew 5:43-47]

Asa Dotzler

unread,
Jul 1, 2012, 1:08:08 PM7/1/12
to
On 7/1/2012 4:52 AM, Robert O'Callahan wrote:
> Matt Woodrow landed display-list-based-invalidation yesterday. This is a
> large Gecko architectural change that was not possible to land behind a
> flag. It simplifies a lot of layout code, speeds up reflow and greatly
> reduces the amount of repainting we have to do when the user interacts with
> large complex pages (e.g. GMail and Facebook). But a change of this
> magnitude will cause regressions and we've already found some --- a few new
> intermittent oranges, a few invalidation bugs on Web sites and a few
> performance regressions. Matt and I will double down to fix those bugs as
> fast as we can over the next couple of weeks. Regressions should block bug
> 'dlbi'. If the regressions become overwhelming we can back out but that
> will be super painful so our last resort.

What does an "invalidation bug" look like?

Do you have any guidance for associating bugs with this change? What
kinds of regressions, other than performance, should we be looking for?

- A

Robert O'Callahan

unread,
Jul 1, 2012, 5:26:01 PM7/1/12
to Asa Dotzler, dev-pl...@lists.mozilla.org
On Mon, Jul 2, 2012 at 5:08 AM, Asa Dotzler <a...@mozilla.org> wrote:

> What does an "invalidation bug" look like?
>
> Do you have any guidance for associating bugs with this change? What kinds
> of regressions, other than performance, should we be looking for?
>

An invalidation bug is when something dynamically changes the state of the
page but it doesn't repaint everything that needs to be repainted.

Jet Villegas

unread,
Jul 2, 2012, 6:45:03 PM7/2/12
to rob...@ocallahan.org, dev-pl...@lists.mozilla.org
Replying in case folks missed this message over the weekend...

This is HUGE! DLBI (display-list-based-invalidation) is an enormous undertaking that was months in the making. Check out the patch queue on bug 539356 to see what I mean. I'm really excited to see young engineers like Matt Woodrow making serious fundamental changes to Gecko that dramatically improve our architecture and the hackability of our Layout Engine. Kudos!

-- Jet

----- Original Message -----
From: "Robert O'Callahan" <rob...@ocallahan.org>
To: dev-pl...@lists.mozilla.org
Sent: Sunday, July 1, 2012 4:52:32 AM
Subject: DLBI has landed

Matt Woodrow landed display-list-based-invalidation yesterday. This is a
large Gecko architectural change that was not possible to land behind a
flag. It simplifies a lot of layout code, speeds up reflow and greatly
reduces the amount of repainting we have to do when the user interacts with
large complex pages (e.g. GMail and Facebook). But a change of this
magnitude will cause regressions and we've already found some --- a few new
intermittent oranges, a few invalidation bugs on Web sites and a few
performance regressions. Matt and I will double down to fix those bugs as
fast as we can over the next couple of weeks. Regressions should block bug
'dlbi'. If the regressions become overwhelming we can back out but that
will be super painful so our last resort.

One class of performance regressions will not be completely fixable: we
expect a performance regression for scrolling large pages with text over
fixed backgrounds, with non-GPU-accelerated layers. This is because
pre-DLBI, a component-alpha BasicThebesLayer would be handled by drawing
the layer's content directly into the backbuffer during layer compositing.
With DLBI, we no longer ever paint any ThebesLayer contents during layer
compositing, and we didn't want to have to support CPU-based component
alpha compositing (slow), so we avoid creating component-alpha
BasicThebesLayers by mashing layers together. That means on some pages we
have to redraw viewport-sized BasicThebesLayers every time we scroll. (We
mitigated some of the damage by caching background-attachment:fixed
backgrounds for faster painting.) We needed to make this change to enable
OMTC for BasicLayers, anyway. None of this affects GPU-accelerated layers
in any way.

Rob
--
“You have heard that it was said, ‘Love your neighbor and hate your enemy.’
But I tell you, love your enemies and pray for those who persecute you,
that you may be children of your Father in heaven. ... If you love those
who love you, what reward will you get? Are not even the tax collectors
doing that? And if you greet only your own people, what are you doing more
than others?" [Matthew 5:43-47]
_______________________________________________
dev-platform mailing list
dev-pl...@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Justin Dolske

unread,
Jul 2, 2012, 10:49:38 PM7/2/12
to
On 7/1/12 10:08 AM, Asa Dotzler wrote:

> What does an "invalidation bug" look like?

http://mrdoob.com/lab/javascript/effects/ie6/ :-)

Justin

Robert O'Callahan

unread,
Jul 3, 2012, 7:04:12 PM7/3/12
to dev-pl...@lists.mozilla.org
On Sun, Jul 1, 2012 at 11:52 PM, Robert O'Callahan <rob...@ocallahan.org>wrote:

> If the regressions become overwhelming we can back out but that will be
> super painful so our last resort.
>

We are going to back it out today.

Jet Villegas

unread,
Jul 3, 2012, 7:26:07 PM7/3/12
to rob...@ocallahan.org, dev-pl...@lists.mozilla.org
We'll need to devise a different landing strategy for this one but I'm still confident that this is the right direction for Gecko. A change of this magnitude often comes with some churn...

-- Jet

----- Original Message -----
From: "Robert O'Callahan" <rob...@ocallahan.org>
To: dev-pl...@lists.mozilla.org

Andreas Gal

unread,
Jul 3, 2012, 7:29:22 PM7/3/12
to Jet Villegas, dev-pl...@lists.mozilla.org, rob...@ocallahan.org

Can you summarize the regressions you are seeing? This is really critical for a bunch of animation performance issues we have with B2G, so I wonder if more hands can help make this stick.

Andreas

Robert O'Callahan

unread,
Jul 3, 2012, 7:56:52 PM7/3/12
to Andreas Gal, dev-pl...@lists.mozilla.org, Jet Villegas
On Wed, Jul 4, 2012 at 11:29 AM, Andreas Gal <andre...@gmail.com> wrote:

> Can you summarize the regressions you are seeing? This is really critical
> for a bunch of animation performance issues we have with B2G, so I wonder
> if more hands can help make this stick.
>

We don't have more hands, and even if we did, I don't think we can make it
stick this time around. Matt is going on vacation (which I think he
desperately needs) tomorrow and he'll be off until the Aurora uplift on the
16th. We have very many outstanding regressions, both in performance and
functionality, some of which we understand and some of which we do not.
B2G will be negatively affected as much as anyone. Pulling people off other
important projects and trying to get them ramped up to fix these
regressions over the next week just doesn't seem reasonable to me.

Ehsan Akhgari

unread,
Jul 3, 2012, 9:03:40 PM7/3/12
to rob...@ocallahan.org, dev-pl...@lists.mozilla.org, Andreas Gal, Jet Villegas
FYI: I just finished backing out DLBI and a few fixes on top of it on
both m-c and m-i.

Cheers,
Ehsan

Robert O'Callahan

unread,
Jul 3, 2012, 10:31:31 PM7/3/12
to Ehsan Akhgari, dev-pl...@lists.mozilla.org, Andreas Gal, Jet Villegas
On Wed, Jul 4, 2012 at 1:03 PM, Ehsan Akhgari <ehsan....@gmail.com>wrote:

> FYI: I just finished backing out DLBI and a few fixes on top of it on both
> m-c and m-i.
>

Thank you so very much!

jonath...@gmail.com

unread,
Jul 4, 2012, 7:53:22 AM7/4/12
to Ehsan Akhgari, dev-pl...@lists.mozilla.org, Andreas Gal, Jet Villegas, rob...@ocallahan.org
Hello all,

First : thanks for making Firefox even better :-)

I think that I have found 2 invalidation bugs :
* drop-down list in forms seams to behave strangely since this change
* Google Maps using MapsGL only display the initial map but don't refresh on zoom/drag

Can someone more experimented confirm ?

Thank you again.

Regards.

Jean-Marc Desperrier

unread,
Jul 4, 2012, 9:32:44 AM7/4/12
to
jonath...@gmail.com a écrit :
> I think that I have found 2 invalidation bugs :
> * drop-down list in forms seams to behave strangely since this change
> * Google Maps using MapsGL only display the initial map but don't refresh on zoom/drag
>
> Can someone more experimented confirm ?

Do you mean you see this with the latest nightly 2012-07-04 03:05:38 /
87db9617a885 build that has been built just after the back out ?

If not, then as said above, the patch has just been backed out because
of the regressions.

It does sound like a dedicated branch could be useful before trying
again to land it. Or, just having Matt make some try server builds
available.

Ehsan Akhgari

unread,
Jul 4, 2012, 4:29:11 PM7/4/12
to jonath...@gmail.com, Andreas Gal, Jet Villegas, dev-pl...@lists.mozilla.org, rob...@ocallahan.org, mozilla.de...@googlegroups.com
On 12-07-04 7:53 AM, jonath...@gmail.com wrote:
> Hello all,
>
> First : thanks for making Firefox even better :-)
>
> I think that I have found 2 invalidation bugs :
> * drop-down list in forms seams to behave strangely since this change

Are you talking about https://bugzilla.mozilla.org/show_bug.cgi?id=770069?

> * Google Maps using MapsGL only display the initial map but don't refresh on zoom/drag

This is https://bugzilla.mozilla.org/show_bug.cgi?id=770686 I believe.

Cheers,
Ehsan
0 new messages