Closed Bug 1164748 Opened 9 years ago Closed 9 years ago

Worse flickering of Image (worse than Firefox36)

Categories

(Core :: Graphics: ImageLib, defect)

37 Branch
x86
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED FIXED
Tracking Status
firefox38 --- wontfix
firefox38.0.5 --- wontfix
firefox39 --- wontfix
firefox40 --- wontfix
firefox41 --- wontfix
firefox42 --- fixed
firefox-esr31 --- unaffected
firefox-esr38 --- wontfix

People

(Reporter: alice0775, Assigned: seth)

References

Details

(Keywords: regression, Whiteboard: gfx-noted)

Worse flickering of Image on Firefox37 and later.
The flickering is relatively small on Firefox36.
No flickering on Chrome42.

Steps To Reproduce:
1. Clear cache if any
2. Open http://www.jma.go.jp/en/gms/smallc.html
3. Choose [Last 6 Hours] select box of "Animation for"
4. Click [Play]

Actual Results
Image significantly flickers

Expected Results:
Flickering, but relatively is small.



Regression Range:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=53d0b45c24c5&tochange=daf8243cd190
Just from looking at what the page is doing, I'd guess this is defeating our image visibility heuristics and we're not decoding the images until we paint them.

We may want to try other things as well, but the changes discussed in bug 1152147 should help this case as well.
Depends on: 1152147
But the image visibility heuristics didn't change in the regression range. Something else must be responsible for making this worse.
(In reply to Timothy Nikkel (:tn) from comment #2)
> But the image visibility heuristics didn't change in the regression range.
> Something else must be responsible for making this worse.

Yeah, that's true. I haven't debugged this, but assuming my theory about the cause is correct, I'm pretty sure that what made this worse is the run-to-completion decoding behavior we switched to in bug 1079627.

The reason is that with our current FIFO image decoding order, if we ever get behind, run-to-completion makes it hard to catch up, and that'll result in more obvious flickering. Prior to bug 1079627, we'd round-robin between all the images currently being decoded and decode a little bit of each one, which would mean that we'd start decoding new images immediately, reducing flicker.

One of the changes I plan to make in bug 1152147 is to switch us to a LIFO image decoding order, which should result in better behavior than Firefox 36, as we will be able to bring the full computational power of an entire thread to bear on decoding whichever image we most urgently need to decode. Before I can implement that, we need to land bug 1160421, though.
So now bug 1160421 has landed and bug 1166981 has been pushed to inbound. My testing suggests that bug 1166981 does indeed reduce flickering on this testcase. It'd be good to verify the fix once bug 1166981 has merged to central, but I think we may be ok here.
Bug 1177587 discusses how we can further reduce flicker on sites that use <img> elements for animation in this way.
See Also: → 1177587
Depends on: 1177587
Whiteboard: gfx-noted
OK. Bug 1177587 has totally eliminated flicker for this test case. I'm considering this resolved.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.