Closed Bug 976877 Opened 11 years ago Closed 11 years ago

Categories

(Core :: Graphics, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla30

People

(Reporter: BenWa, Assigned: mattwoodrow)

References

Details

Attachments

(2 files, 2 obsolete files)

STR: Scroll http://davidad.github.io/blog/2014/02/25/overkilling-the-8-queens-problem/ Seeing about 500ms. Most of the time is in 'argb32_image_mark_argb32'.
There's a CSS rule that sets opacity:0.99 on all divs. Deactivating that improves scrolling a lot.
(In reply to Markus Stange [:mstange] from comment #2) > There's a CSS rule that sets opacity:0.99 on all divs. Some men just want to watch the world burn.
Assignee: nobody → matt.woodrow
Attached patch Don't simplify regions (obsolete) — Splinter Review
This page exposed a few invalidation bugs. Bug 977418 is probably the solution for best performance though. This is hurting us pretty badly on this page, and we have fast region code now so it shouldn't matter.
Attachment #8382767 - Flags: review?(roc)
ContainerState frequently decides to ignore the result of GetLayerState and decide something else. We should pass this new value down so that further down we don't have to call GetLayerState again (and potentially get the wrong value).
Attachment #8382768 - Flags: review?(roc)
If we scroll content off the page so that a layer is now only a solid color, then we're switching to a ColorLayer. LayerTreeInvalidation spots the new layer and invalidates the entire area, which is pretty sad for an inactive layer. Let's not do that.
Attachment #8382769 - Flags: review?(roc)
Comment on attachment 8382768 [details] [diff] [review] Pass layer state into build layer Review of attachment 8382768 [details] [diff] [review]: ----------------------------------------------------------------- ::: layout/base/FrameLayerBuilder.cpp @@ +3058,5 @@ > offset = nsIntPoint( > NS_lround(NSAppUnitsToDoublePixels(appUnitOffset.x, appUnitsPerDevPixel)*aIncomingScale.mXScale), > NS_lround(NSAppUnitsToDoublePixels(appUnitOffset.y, appUnitsPerDevPixel)*aIncomingScale.mYScale)); > } > + transform = transform * gfx3DMatrix::Translation(offset.x, offset.y, 0); What's this change doing here?
Attachment #8382768 - Flags: review?(roc) → review-
Attachment #8382768 - Attachment is obsolete: true
(In reply to Robert O'Callahan (:roc) (Mozilla Corporation) from comment #7) > Comment on attachment 8382768 [details] [diff] [review] > Pass layer state into build layer > > Review of attachment 8382768 [details] [diff] [review]: > ----------------------------------------------------------------- > > ::: layout/base/FrameLayerBuilder.cpp > @@ +3058,5 @@ > > offset = nsIntPoint( > > NS_lround(NSAppUnitsToDoublePixels(appUnitOffset.x, appUnitsPerDevPixel)*aIncomingScale.mXScale), > > NS_lround(NSAppUnitsToDoublePixels(appUnitOffset.y, appUnitsPerDevPixel)*aIncomingScale.mYScale)); > > } > > + transform = transform * gfx3DMatrix::Translation(offset.x, offset.y, 0); > > What's this change doing here? Cancelling out the change to ContainerLayerParameters where we now include the parent offset. But I debugged this further, and this change doesn't actually fix anything properly. It was just changing coordinates slightly so we were no longer losing to a different set of SimplifyOutward calls, for this page at least.
Don't simplify in even more places. These just keep failing and simplify outwards to the entire region, and we repaint way too much.
Attachment #8382767 - Attachment is obsolete: true
Attachment #8383349 - Flags: review?(roc)
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla30
Depends on: 978844
Depends on: 836325
Depends on: 1001845
No longer depends on: 836325
Regressions: 836325
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: