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
Created attachment 664991 [details] [diff] [review] Only do progressive tile drawing when scrolling 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
Status: ASSIGNED → RESOLVED
Last Resolved: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 18
You need to log in before you can comment on or make changes to this bug.