Closed
Bug 924788
Opened 12 years ago
Closed 12 years ago
Bad homescreen scrolling performance on high screen resolution device
Categories
(Firefox OS Graveyard :: Gaia::Homescreen, defect)
Tracking
(Not tracked)
RESOLVED
DUPLICATE
of bug 924942
1.2 C3(Oct25)
People
(Reporter: jerry, Unassigned)
Details
(Keywords: perf, Whiteboard: [c= p= s= u=])
Attachments
(1 file)
|
219.29 KB,
image/jpeg
|
Details |
When we start to scroll the homescreen, first it paints the current and the next page into two full screen size textures.
Then, homescreen app only draws these two static textures until we stop dragging. It prevents parsing css rule and redrawing icons when scrolling.
Thus we can get better performance in dragging mode.
But when we scroll at high resolution device, we spend a large time for the first two screen draw calls.
We will get a little delay when we start scrolling.
Can we always preserve the static textures and show these texture all the time?
We only need to update these static textures if the content of page change.
It will use more memory, but get better performance for user experience.
Comment 2•12 years ago
|
||
Hi all,
How does the current code work?
The homescreen defines previous, current and next pages as display block (although translated to -100% and 100% respectively, I mean, out of viewport) [1]. E.g. Imagine what we are on the page 3 then pages 2, 3 and 4 define the display property like block. So when we start scrolling, the pages should be visible BUT a patch about accessibility introduced a new visibility property where previous and next pages are hidden before touchmove event [3].
So, I have an idea, please disable the changes on grid.css created on this commit[2]. If the performance is better, it could show the path.
[1] https://github.com/mozilla-b2g/gaia/blob/master/apps/homescreen/js/grid.js#L439
[2] https://github.com/mozilla-b2g/gaia/commit/08ba523403475799861b06166391811226c8a0c8
[3] https://github.com/mozilla-b2g/gaia/blob/master/apps/homescreen/js/grid.js#L225
Flags: needinfo?(crdlc)
| Reporter | ||
Comment 3•12 years ago
|
||
(In reply to Cristian Rodriguez (:crdlc) from comment #2)
> So, I have an idea, please disable the changes on grid.css created on
> this commit[2]. If the performance is better, it could show the path.
Hi Cristian, do you means that:
--- a/apps/homescreen/style/grid.css
+++ b/apps/homescreen/style/grid.css
@@ -19,7 +19,8 @@
*/
border-bottom: 0.01px solid rgba(0,0,0,0.01);
- visibility: hidden;
+ visibility: visible;
}
change this visibility property to visible?
After modification, we still have no performance boost.
Sorry for the confusion. I want to make sure that I really know the homescreen's implementation. Is the following paragraph correct?
"When we start to scroll the homescreen, first it paints the current and the next page into two full screen size textures.
Then, homescreen app only draws these two static textures until we stop dragging. It prevents parsing css rule and redrawing icons when scrolling.
Thus we can get better performance in dragging mode."
Thanks!
Flags: needinfo?(crdlc)
Comment 4•12 years ago
|
||
I meant what you should remove all these changes about CSS
https://github.com/mozilla-b2g/gaia/commit/08ba523403475799861b06166391811226c8a0c8#diff-6a28e825b6a0ed8f688d6c11d4adddb5R17
-----
I don't know what gecko does here :) but from JS code we define the display prop to block for current page and the previous and next one. Maybe gecko doesn't paint them until they are on viewport (they're translated to -100% and 100% respectively) before scrolling
-----
Quick question, are we talking about panning/scrolling or dragging in edit mode?
Thnaks
Flags: needinfo?(crdlc)
| Reporter | ||
Comment 5•12 years ago
|
||
| Reporter | ||
Comment 6•12 years ago
|
||
(In reply to Cristian Rodriguez (:crdlc) from comment #4)
> Quick question, are we talking about panning/scrolling or dragging in edit
> mode?
>
> Thnaks
scrolling the homescreen page as the attachment 814825 [details]
Comment 7•12 years ago
|
||
Cristian - This feels like the fix for bug 924942 could also fix this bug potentially. Do you think we should mark this as a dupe?
Flags: needinfo?(crdlc)
Whiteboard: [c= p= s= u=]
Updated•12 years ago
|
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
Updated•12 years ago
|
Whiteboard: [c= p= s= u=] → [c= p= s=2013.10.18 u=]
Updated•12 years ago
|
Target Milestone: --- → 1.2 C3(Oct25)
Updated•12 years ago
|
Whiteboard: [c= p= s=2013.10.18 u=] → [c= p= s= u=]
You need to log in
before you can comment on or make changes to this bug.
Description
•