Fennec/NativeUI/checkerboarding: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
| Line 47: | Line 47: | ||
* Kats recently started drawing on double tap out so it's possible we introduced some jank during that operation. | * Kats recently started drawing on double tap out so it's possible we introduced some jank during that operation. | ||
If we need to, it should be possible to postpone the upload of until the end of zoom operation, or use another technique to bound the time we spend uploading. | If we need to, it should be possible to postpone the upload of until the end of zoom operation, or use another technique to bound the time we spend uploading. | ||
=== Work in progress === | === Work in progress === | ||
* {{bug|730718}} EGLImage (pcwalton) | * {{bug|730718}} EGLImage (pcwalton) | ||
Revision as of 18:31, 4 April 2012
Intro
- Where are we bad right now?/What are the biggest problems? (Erin can lead this?)
- Zoom in (dbl tap, pinch 2 zoom)
- Zoom out (dbl tap, pinch 2 zoom)
- Scrolling
- Panning
Where do we spend our time?
- 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)
- 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)
- 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
- Painting
- Upload/Syncing with compositing thread
- Layout
- Other (bug 742060, bug 742128)
Work in progress
- Fixing up touch overhead at the beginning of pans (Some set of 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.
- 16 bit drawing bug 733607 (roc)
Todo
Front end
- Slow down panning bug 742115
- Adapt DisplayPort control for TiledThebesLayer bug 737510
- Lower/Remove Viewport:Change observer overhead bug 742128
- Round zoom level to avoid churning glyph cache?
GFX
- Improve text drawing bug 742134 (This needs root causing still) (jfkthame)
- Make sure we're drawing background images efficiently bug 735895
- Cache tiles at different zoom levels/Don't discard visible tiles (bgirard)
Layout
- Unnecessary copies during image painting bug 733941
- Avoid compositing basic layers (this doesn't show up much on profiles yet but is still a waste) bug 735303
- ComputeVisibility slowness bug 735893
- DisplayList construction bug 735898
Other ideas?
Pan/Zoom Jank
- Our only known source of jank is texture upload.
- Currently we should never jank during zoom because we do not do any uploads then.
- Kats recently started drawing on double tap out so it's possible we introduced some jank during that operation.
If we need to, it should be possible to postpone the upload of until the end of zoom operation, or use another technique to bound the time we spend uploading.
Work in progress
- bug 730718 EGLImage (pcwalton)
- bug 729538 gralloc (bgirardish)
QA
- Would be good to get some subjective comparisons of checkerboard with us vs. XUL
Eideticker
- Needs to use a page other than http://taskjs.org/
- 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
- Should wait for onload before zooming to get more reliable results
When are we done?
- What criteria do we have for being good enough?