Closed
Bug 802440
Opened 12 years ago
Closed 12 years ago
Some elements are invalidated when other elements are scrolled off the screen
Categories
(Core :: Layout, defect)
Tracking
()
RESOLVED
FIXED
mozilla20
People
(Reporter: jwatt, Assigned: jwatt)
References
Details
(Keywords: perf, regression)
Attachments
(3 files, 1 obsolete file)
506 bytes,
text/html
|
Details | |
297 bytes,
image/svg+xml
|
Details | |
4.69 KB,
patch
|
roc
:
review+
akeybl
:
approval-mozilla-aurora+
akeybl
:
approval-mozilla-beta+
|
Details | Diff | Splinter Review |
Related to bug 802321, and with the two patches from that bug applied, I'm seeing invalidation of transformed elements when scrolling down as the items are scrolled off the top of the screen. Specifically, in this testcase, as the bottom of the top circle is just disappearing off/appearing on the screen, we seem to invalidate an area bounding all five circles. Scrolling up and down by about one pixel at that position shows the bug. It seems really undesirable to be invalidating content that is scrolling _off_ the screen.
This testcase is a reduction of more severe invalidation that I'm seeing in http://www.jasondavies.com/factorisation-diagrams/ with the two patches from bug 802321 applied. If the fix for this testcase doesn't fix invalidation of the top/bottom rows when scrolling them on/off screen let me know and I'll make more reduced testcases.
Assignee | ||
Updated•12 years ago
|
Assignee | ||
Comment 1•12 years ago
|
||
Assignee | ||
Comment 2•12 years ago
|
||
With this testcase it's pretty clear that when the first line is scrolled out of view we invalidate the area of the second line.
Assignee | ||
Comment 3•12 years ago
|
||
The problem is that ContainerLayerProperties::ComputeChangeInternal will invalidate children at a given index if they are not the same object in both the old and new list. As a result, when we scroll an item off the screen (causing it to be removed from the new list), then all subsequent siblings will be invalidated.
Assignee | ||
Comment 4•12 years ago
|
||
Assignee | ||
Comment 5•12 years ago
|
||
Attachment #683819 -
Attachment is obsolete: true
Attachment #683819 -
Flags: review?(roc)
Attachment #683822 -
Flags: review?(roc)
Comment on attachment 683822 [details] [diff] [review]
patch
Review of attachment 683822 [details] [diff] [review]:
-----------------------------------------------------------------
::: gfx/layers/LayerTreeInvalidation.cpp
@@ +223,4 @@
> for (Layer* child = container->GetFirstChild(); child; child = child->GetNextSibling()) {
> + bool invalidateChildsCurrentArea = false;
> + if (i < mChildren.Length()) {
> + uint32_t childs_old_index;
childsOldIndex
Attachment #683822 -
Flags: review?(roc) → review+
Assignee | ||
Comment 7•12 years ago
|
||
Comment 8•12 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla20
Assignee | ||
Updated•12 years ago
|
Summary: Transformed elements invalidating while scrolling off the screen → Some elements are invalidated when other elements are scrolled off the screen
Assignee | ||
Updated•12 years ago
|
status-firefox17:
--- → unaffected
status-firefox18:
--- → affected
status-firefox19:
--- → affected
status-firefox20:
--- → fixed
tracking-firefox18:
--- → ?
tracking-firefox19:
--- → ?
OS: Mac OS X → All
Hardware: x86 → All
Assignee | ||
Comment 9•12 years ago
|
||
Comment on attachment 683822 [details] [diff] [review]
patch
[Approval Request Comment]
Bug caused by (feature/regressing bug #): bug 539356
User impact if declined: performance regressions, particularly when scrolling
Testing completed (on m-c, etc.): baked on m-c for several days
Risk to taking this patch (and alternatives if risky): none
String or UUID changes made by this patch: none
Attachment #683822 -
Flags: approval-mozilla-beta?
Attachment #683822 -
Flags: approval-mozilla-aurora?
Assignee | ||
Updated•12 years ago
|
Keywords: regression
Updated•12 years ago
|
Comment 10•12 years ago
|
||
Comment on attachment 683822 [details] [diff] [review]
patch
DLBI regression - let's land on branches.
Attachment #683822 -
Flags: approval-mozilla-beta?
Attachment #683822 -
Flags: approval-mozilla-beta+
Attachment #683822 -
Flags: approval-mozilla-aurora?
Attachment #683822 -
Flags: approval-mozilla-aurora+
Comment 11•12 years ago
|
||
Comment 12•12 years ago
|
||
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:20.0) Gecko/20100101 Firefox/20.0
Mozilla/5.0 (X11; Linux i686; rv:20.0) Gecko/20100101 Firefox/20.0
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
Verified as fixed based on test cases from comment 0 and comment 1 on Firefox 20.0 (buildId: 20130326150557)
You need to log in
before you can comment on or make changes to this bug.
Description
•