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