Closed Bug 73969 Opened 24 years ago Closed 24 years ago

Should throttle interlaced GIF loading redraws

Categories

(Core :: Graphics: ImageLib, defect, P2)

All
Mac System 8.5
defect

Tracking

()

VERIFIED FIXED
mozilla0.9.1

People

(Reporter: sfraser_bugs, Assigned: saari)

References

Details

(Keywords: perf, Whiteboard: [imglib])

When loading interlaced GIFs, we do the funky draw-in-stripes thing. However, with imglih2, loading these types of images feels slower than it did before. It seems that we're redrawing the image frame many times as the interlaced GIF is loading, which slows down the loading process. We should throttle these redraws, only redrawing the frame every 250ms or so.
Keywords: perf
Yeah, we're not throttling the GIF decoder at all right now. We used to only update every 10 scan lines I believe, and that appears to be about what IE does. Right now we update for every scan line. For interlaced GIFs in particular, we used to do this funky thing where we'd replicate the scan line so you didn't see stripes, but rather a pixelization that progressively sharpens, so maybe that is changing your perception too (in addition to us doing too many updates). Any image in particular that feels slow to you?
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla0.9
Whiteboard: [imglib]
Going off-topic a touch, but if the previous style of progressive display of interlaced GIFs isn't coming back any time soon then you need to be clearing the image's mask to all-transparent before drawing, since you're not truly validating the image's valid rect (just sparse scanlines within it) and hence you're drawing uncleared rubbish-memory in between the truly validated scanlines (very evident on X11).
->moz0.9.1
Target Milestone: mozilla0.9 → mozilla0.9.1
Blocks: 66967
Blocks: 56612
Priority: -- → P2
Hyatt checked in the throttle code
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Hmm, coding issue, marking verified
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.