Closed Bug 794465 Opened 12 years ago Closed 12 years ago

Progressive tile painting causes seams to appear in updated content (such as animated gifs)

Categories

(Firefox for Android Graveyard :: Toolbar, defect)

ARM
Android
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Firefox 18

People

(Reporter: cwiiis, Assigned: cwiiis)

References

Details

Attachments

(1 file)

When progressive tile painting is enabled, seams can appear in updated content (commonly in animated gifs).

BenWa and I discussed a few strategies:
- Size-based - If an update is <= the screen size, don't update it progressively
- Number of tiles - Pick a number of tiles to handle per transaction (similar to above)
- Time-based - Spend X ms per transaction updating tiles

Another strategy I just thought of:
- Only do progressive updates when scrolling
Depends on: 771219
This pretty much does what we want.

One caveat, if you scroll around with an animated gif or some such, you'll see seams again. I'm not sure how much this matters, as coupled with the movement, it's not obvious (also, animated gifs seem to pause when moving quite a lot - not sure if this is a feature or a side-effect).

If we forced non-progressive in this case, interactivity would suffer, which I think would be worse. Ideally, animated gifs would be optimised to image layers and the animation could be handled async like video. Will file a bug for this.
Attachment #664991 - Flags: review?(bgirard)
Comment on attachment 664991 [details] [diff] [review]
Only do progressive tile drawing when scrolling

Review of attachment 664991 [details] [diff] [review]:
-----------------------------------------------------------------

again with the small nit. Nice patch

::: gfx/layers/basic/BasicTiledThebesLayer.cpp
@@ +261,1 @@
>    // Force immediate tile painting when the layer has changed resolution.

// Only draw progressively when we're panning at the same resolution.
Attachment #664991 - Flags: review?(bgirard) → review+
Comment changed + rebased, pushed to inbound:

https://hg.mozilla.org/integration/mozilla-inbound/rev/2786b171b97f
https://hg.mozilla.org/mozilla-central/rev/2786b171b97f
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Flags: in-testsuite-
Resolution: --- → FIXED
Target Milestone: --- → Firefox 18
Blocks: 795259
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: