Closed
Bug 41268
Opened 24 years ago
Closed 23 years ago
imglib should cache chrome animations
Categories
(Core :: Graphics: ImageLib, defect, P3)
Tracking
()
RESOLVED
FIXED
Future
People
(Reporter: warrensomebody, Assigned: pavlov)
References
Details
(Keywords: arch, perf)
Right now the situation is completely insane when the throbber kicks in. Animated GIFs aren't cached by imagelib, which causes us to end up fetching them again with necko. This ends up reading the file from disk because the file: protocol doesn't cache in the memory cache either. This also causes contention for the file transport, consumes inordinate amounts of memory, takes a lot of time, etc. Clearly, the throbber images should get cached somewhere, ideally by imagelib in their decoded state. We should extend the imagelib APIs to allow us to specify when an animated gif should be cached
W: I agree that the way the throbber works now is _less_ than ideal. but I think it would make more sense to cache throbber data in necko before it is decompressed. Decoding is cheap. We are already running into memory requirement problems on the mac. If we wanted to cache the decoded image data, what about using a different format? We handle streaming image data fine. Most apps use a 'doctored' format for internal images. We don't. but we could in this case. -P
Status: NEW → ASSIGNED
Reporter | ||
Comment 2•24 years ago
|
||
But that would require hooking up the file: and jar: protocols to the memory cache which doesn't seem like the right thing to do. It's very rare (except for the throbber case) that you'd try to retrieve the same file more than once. I think the image cache is a better place for this.
Comment 3•24 years ago
|
||
I agree with warren.
Comment 4•24 years ago
|
||
nominating for nsbeta2, this could be a big performance win.
Keywords: nsbeta2
Comment 5•24 years ago
|
||
If this throbber is really sucking down IO and CPU cycles... is there any chance that we could slow the refresh rate on the images until we have the real architectuural fix in place? For most users, a throbber that was a little slow/jerky would b ea nice tradeoff for a faster browser.
Reporter | ||
Comment 6•24 years ago
|
||
I think this is clearly a beta3 thing, but not a beta2 thing. Jar: You might be thinking of the time spent cycling through the animated gif, but I'm concerned about hitting the disk each time we start and end a load. Both should be looked at.
Agreed...giving [nsbeta2-] and putting on nsbeta3 nominee radar.
Whiteboard: [nsbeta2-]
I have some changes for bug#30852 (an nsbeta2+) that will give us a way to tell the throbber to _atleast_ get internal images from the necko cache. I noticed today that all chrome and internal images are requested with a 4402 and 4400 necko load attributes, which is FORCE_VALIDATION. This means even non animated images are not cached. The only way imglib can validate the freshness of an image is to tell it to not use the imgcache and go get it from necko. At this point necko should know whether it can get the data from its cache, or it should reload the data from the source (server, file, whatever). And I agree that this is a beta3 issue. -p
Also be aware that all animations are more costly on X than other platforms... and this may be due to the way we render on X. Pav had some good insights into ways we might speed things up. (window invalidation, reusing structures rather than using new ones...etc.)
Comment 10•24 years ago
|
||
*** Bug 46340 has been marked as a duplicate of this bug. ***
Comment 11•24 years ago
|
||
neeti has a potential fix for this! Check with her. making this nsbeta3+
Whiteboard: [nsbeta2-] → [nsbeta2-][nsbeta3+]
Reporter | ||
Comment 12•24 years ago
|
||
What is it? I really want the fix here to be "make file: protocol use memory cache".
Comment 13•24 years ago
|
||
*** Bug 49098 has been marked as a duplicate of this bug. ***
Comment 14•24 years ago
|
||
Changing summary to the generic problem. -p
Summary: throbber needs to cache images → imglib should cache chrome animations
Comment 15•24 years ago
|
||
Isn't this the same bug as bug 49097?
Comment 16•24 years ago
|
||
Not really. I have to handle animations for the first time in the imgcache. -p
Comment 17•24 years ago
|
||
*** Bug 49097 has been marked as a duplicate of this bug. ***
Comment 18•24 years ago
|
||
*** Bug 29536 has been marked as a duplicate of this bug. ***
Comment 19•24 years ago
|
||
*** Bug 36785 has been marked as a duplicate of this bug. ***
Comment 20•24 years ago
|
||
Not holding PR3 for this, marking nsbeta3-. Please nominate for rtm if we really have to fix this before shipping Seamonkey.
Whiteboard: [nsbeta2-][nsbeta3+] → [nsbeta2-][nsbeta3-]
Comment 22•24 years ago
|
||
this bug blocks a theme authors ability to animate buttons on rollover.
Comment 23•24 years ago
|
||
approving for rtm.
Whiteboard: [nsbeta2-][nsbeta3-] → [nsbeta2-][nsbeta3-][rtm+]
Comment 24•24 years ago
|
||
I'm still working on this. Its a non trivial fix. If we back out the PIN_CHROME changes by #undef'ing PIN_CHROME, it will also unblock "theme authors ability to animate buttons on rollover". The PIN_CHROME changes prevent the unloading of chrome images in the img cache and was put in to help performance. Unfortunately, there are several unpleasant side effects.
Comment 25•24 years ago
|
||
Can we get enough of the necko memory cache working for chrome animations?
Comment 27•24 years ago
|
||
Marking "needinfo". This seems like a bad thing, but we need a patch, review and super review to clear for checkin.
Whiteboard: [nsbeta2-][nsbeta3-][rtm+] → [nsbeta2-][nsbeta3-][rtm+ needinfo]
Comment 28•24 years ago
|
||
I am still working on this one. Its not ready for testing or initial reviews. -p
Updated•24 years ago
|
Whiteboard: [nsbeta2-][nsbeta3-][rtm+ needinfo] → [nsbeta2-][nsbeta3-][rtm+ need info]
Comment 29•24 years ago
|
||
After 2 weeks, is this dead for RTM?
Comment 30•24 years ago
|
||
I'm working on it. I'm working on it. Crashers have priority over performance and mozilla is demanding alot of attention these days. Thanks for asking, -p
Comment 31•24 years ago
|
||
Changing this from [rtm+ need info] to [rtm need info], since the [rtm+ need info] state doesn't exist.
Whiteboard: [nsbeta2-][nsbeta3-][rtm+ need info] → [nsbeta2-][nsbeta3-][rtm need info]
Comment 32•24 years ago
|
||
No fix in sight for rtm.
Whiteboard: [nsbeta2-][nsbeta3-][rtm need info] → [nsbeta2-][nsbeta3-][rtm-]
Updated•24 years ago
|
Comment 33•23 years ago
|
||
All pnunn bugs reassigned to Pav, who is taking over the imglib.
Assignee: pnunn → pavlov
Status: ASSIGNED → NEW
Assignee | ||
Comment 34•23 years ago
|
||
new imagelib caches all chrome animations
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 35•23 years ago
|
||
er, not just chrome animations. all animations including chrome ones.
You need to log in
before you can comment on or make changes to this bug.
Description
•