Commit Graph

15 Commits

Author SHA1 Message Date
Chris Lord
6d06b90bbe Bug 724230 - Backout ondemand tiling. r=blassey, kats
This backs out changes d8fc13006aa4, ddde7a49f6f7, 34b1cc9454d2 and
8919c54229e1, leaving in some initialisation fixes that were introduced when
rebasing.

This work may be re-applied at a later date.
2012-02-04 18:49:59 -05:00
Chris Lord
c77fe02e1b Bug 717349 - Add optional render and checkerboarding profiling. r=kats
This adds checkerboard profiling to LayerRenderer, that can be enabled either
by enabling debug logging of the "GeckoLayerRendererProf" tag, or via
reflection using PanningPerfAPI.
2012-02-02 09:02:32 +00:00
Chris Lord
61c399548c Bug 722068 - Fix invalidation during animations in MultiTileLayer. r=pcwalton
The buffer in MultiTileLayer is invalidated each time the origin or resolution
changes. MultiTileLayer was using the last updated origin/resolution instead of
the last set, so if Gecko was animating and locked the layer for long enough,
the buffer would be incorrectly invalidated due to the origin/resolution not
being updated.
2012-01-31 09:36:02 +00:00
Chris Lord
06edecb7c5 Bug 721070 - Checkerboarding at bottom after pinch zooming out. r=kats,pcwalton
Certain conditions would cause MultiTileLayer to incorrectly invalidate tiles,
or to reuse tiles incorrectly, which would cause checkerboarding (sometimes
permanent until a redraw occurs).

This addresses said issues:

- Removes manual invalidation on Document:Shown and Tab:Selected. This is
  unnecessary, as the entire buffer will be invalidated when this happens
  anyway. Sometimes Document:Shown happens *after* drawing has occurred,
  which caused the entire screen to checkerboard incorrectly.
- Fix re-using off-screen tiles with the incorrect resolution. Tiles are stored
  in a hash-map based on their unscaled position. As only tiles that intersect
  with the update region in tile-space are invalidated, sometimes tiles that
  were off-screen, but whose unscaled tile origin appears on-screen would be
  incorrectly re-used. Fix this by checking that a tile's resolution matches the
  current resolution before reusing it.
2012-01-26 20:19:35 +00:00
Chris Lord
8825134fee Bug 721100 - After panning, tap area is offset at wrong place. r=pcwalton
When rendering with an offset for MultiTileLayer, the tile origin was moved
to compensate, but this lead to there being a mismatch between Gecko's
displayport origin and the one recorded on the Java side.

Instead of altering the origin, allow setting a render offset on MultiTileLayer
instead, so the origin remains correct.
2012-01-26 20:18:47 +00:00
Chris Lord
9a81bc09ee Bug 717283 - Use tiles on-demand. r=pcwalton, snorp
Instead of tying the tile-buffer in MultiTileLayer directly to the back-buffer
of the page, make sure rendering is always aligned to the tile grid and use
tiles on-demand. This makes better use of tiles when panning/zooming, and opens
up the route for further optimisations.
2012-01-24 15:39:53 +00:00
Chris Lord
e089f6c80c Bug 717283 - Store sub-tile metrics on the tile object. r=pcwalton
Instead of deriving sub-tile metrics on each iteration, create a SingleTileLayer
sub-class and store them there.
2012-01-24 15:38:29 +00:00
Ed Morley
c1585c7af3 Backout 91eebc6bdb59 & 7d776b291014 (bug 717283) for Android native reftest crashes 2012-01-22 11:55:18 +00:00
Chris Lord
d994084581 Bug 717283 - Use tiles on-demand. r=pcwalton, snorp
Instead of tying the tile-buffer in MultiTileLayer directly to the back-buffer
of the page, make sure rendering is always aligned to the tile grid and use
tiles on-demand. This makes better use of tiles when panning/zooming, and opens
up the route for further optimisations.
2012-01-22 09:40:37 +00:00
Chris Lord
bf21638f44 Bug 717283 - Store sub-tile metrics on the tile object. r=pcwalton
Instead of deriving sub-tile metrics on each iteration, create a SingleTileLayer
sub-class and store them there.
2012-01-22 09:40:26 +00:00
Matt Brubeck
3017d8c4c6 Back out 47584f117727 and e05a8743389a (bug 717283) because of native Android startup crashes 2012-01-20 11:42:34 -08:00
Chris Lord
94b277a126 Bug 717283 - Use tiles on-demand. r=pcwalton, snorp
Instead of tying the tile-buffer in MultiTileLayer directly to the back-buffer
of the page, make sure rendering is always aligned to the tile grid and use
tiles on-demand. This makes better use of tiles when panning/zooming, and opens
up the route for further optimisations.
2012-01-20 17:36:56 +00:00
Chris Lord
5c431829f0 Bug 717283 - Store sub-tile metrics on the tile object. r=pcwalton
Instead of deriving sub-tile metrics on each iteration, create a SingleTileLayer
sub-class and store them there.
2012-01-20 17:35:14 +00:00
Chris Lord
21e7ac3639 Bug 709120 - Update non-visible tiles asynchronously. r=pcwalton
Only update tiles that intersect with the screen, and asynchronously update
invisible tiles over multiple subsequent frames. This has the effect of
spreading out non-critical texture-upload over time and removes some juddering
on devices that don't support gralloc.
2012-01-06 11:22:52 +00:00
Chris Lord
362960fc3a Bug 709120 - Add MultiTileLayer to Android native fennec. r=pcwalton
This adds a new layer type that uses multiple SingleTileLayer's to implement
tiled layer support. This also assumes a back-buffer that is tiled, so that
texture updates can remain fast (relatively speaking).
2012-01-06 11:22:24 +00:00