Fennec/NativeUI/checkerboarding: Difference between revisions

no edit summary
No edit summary
 
(11 intermediate revisions by 5 users not shown)
Line 8: Line 8:
===Where do we spend our time?===
===Where do we spend our time?===
# Zoomed in panning on CNN.com: http://bit.ly/HdccVU
# Zoomed in panning on CNN.com: http://bit.ly/HdccVU
#* 43ms PresShell::Paint (6ms displaylist building, 4ms compute visibility, 14ms drawthebeslayer (9ms DrawBackgroundImage), 6ms buffer rotation)
#* 43ms PresShell::Paint
#** 6ms displaylist building
#** 4ms compute visibility
#** 14ms drawthebeslayer (9ms DrawBackgroundImage)
#** 6ms buffer rotation  
# Zoomed in panning on nytimes.com: http://bit.ly/HdceNy
# Zoomed in panning on nytimes.com: http://bit.ly/HdceNy
#* 34m PresShell::Paint (5ms displaylist building, 2ms compute visibility, 10ms drawthebeslayer (4ms text drawing, 2ms DrawBackgroundImage), 3ms buffer rotation, 8ms waiting for compositor, 4ms ContainerState::ProcessDisplayItems)
#* 34ms PresShell::Paint
#** 5ms displaylist building
#** 2ms compute visibility
#** 10ms drawthebeslayer (4ms text drawing, 2ms DrawBackgroundImage)
#** 3ms buffer rotation
#** 8ms waiting for compositor
#** 4ms ContainerState::ProcessDisplayItems
# Zoom out on nytimes.com: http://bit.ly/HjC3eD (409ms paint) http://bit.ly/HIMqas (371ms paint)
# Zoom out on nytimes.com: http://bit.ly/HjC3eD (409ms paint) http://bit.ly/HIMqas (371ms paint)
#* mostly drawing text. We run into {{bug|742134}}
#* mostly drawing text. We run into {{bug|742134}}


* Painting
* Painting
Line 20: Line 33:


=== Work in progress ===
=== Work in progress ===
* Fixing up touch overhead at the beginning of pans (Some set of bugs) (kats)
* Fixing up touch overhead at the beginning of pans - {{bug|740883}} and dependent bugs (kats)
* TiledThebesLayer {{bug|739679}} (bgirard) - This will help remove buffer rotation overhead and will make it so we can resize the display port with less cost.
* TiledThebesLayer {{bug|739679}} (bgirard) - This will help remove buffer rotation overhead and will make it so we can resize the display port with less cost.
* 16 bit drawing {{bug|733607}} (roc)
* 16 bit drawing {{bug|733607}} (roc)
Line 41: Line 54:


==== Other ideas? ====
==== Other ideas? ====
* Building database of common pages/gestures
* On-demand/interruptable drawing (depends somewhat on tiles)


==Pan/Zoom Jank==
==Pan/Zoom Jank==
Line 61: Line 76:
== Eideticker ==
== Eideticker ==
* Needs to use a page other than http://taskjs.org/
* Needs to use a page other than http://taskjs.org/
** See [https://bugzilla.mozilla.org/show_bug.cgi?id=742086 bug 742086] to track this (with some initial ideas)
* Native browser on Gingerbread won't ever checkerboard it just paints slower
* Native browser on Gingerbread won't ever checkerboard it just paints slower
* XUL and native fennec run the page at different zoom levels and scroll to different locations
* XUL and native fennec run the page at different zoom levels and scroll to different locations
* Should wait for onload before zooming to get more reliable results
* Eideticker is useful for cross-browser comparisons, but should we consider using other/methods tools (i.e. ones that don't require specialized hardware) for testing performance as well?
* Tracking FPS of scroll & zoom would be most useful.


== When are we done? ==
== When are we done? ==
* What criteria do we have for being good enough?
* What criteria do we have for being good enough?
* Not checkerboarding too much!
Confirmed users
523

edits