Closed Bug 4229 Opened 26 years ago Closed 26 years ago

Slowness in image rendering on unix.

Categories

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

Sun
Solaris
defect

Tracking

()

VERIFIED FIXED

People

(Reporter: bruce, Assigned: pavlov)

References

Details

(Whiteboard: Mar 26: Waiting for a Linux build >=3.26.99 that works.)

I ran Quantify on viewer last night (Solaris 2.6, totally debug build, gcc 2.7.2.3, GTK 1.2.0, etc) Doing a run like this: start up load example 0 go to example 4 and let it load exit nsImageGTK::Draw() is called some 250 or so times. 13-14% of execution time is spent within moz_gdk_draw_bgr_image() If you count the time spent in everything called by moz_gdk_draw_bgr_image(), then you are looking at around 84-85% of total execution time. about 85% of that time is spent within gdk_draw_bgr_image(), so it isn't entirely the fault of the bit twiddling that goes on there for some platforms (like mine). Some things to consider: Can we do the bit manipulations for the platforms that need it for RGB->BGR conversions in place in the image? Should we be dithering in GTK code? Is there any dithering happening in imglib? Why are we doing the RBG->RBG conversions on every draw? Why not cache this? Are we forcing the Xlib buffers to get flushed too often (and driving up network overhead)? Pavlov reported numbers a lot higher than I saw for that test run (about 399 calls to nsImageGTK::Draw(), also running viewer). I sent ramiro the quantify data that I had on this. Assigning to ramiro at pnunn's request.
Yes, dithering is handled in imglib. Ramiro, I'll be happy to work with you on the RGB/BGR ordering for all platforms once I get my carpool landed. email me. -pn
Assignee: ramiro → pavlov
reassigning to me. i'm pretty sure I know whats going on here and am working to fix it. Pam, I will have some questions for you later.
pavlov: Thanks for jumping in. You might want to scan the history on bug#1879. If this is the same/&or related problem, we've got to look at a fix for all platforms. tor's fix only worked for a code path through gtk. later, pnunn
Just a quick note. I may have a good fix for the RGB/BGR problem, but I've got to test like crazy and will need to coordinate with FE's of all platforms. -pn
post a patch to mozilla.patches & mozilla.unix! -Chris
Status: NEW → RESOLVED
Closed: 26 years ago
Resolution: --- → FIXED
i just checked in a fix for this. elig: if you want to verify the fix, try demo 4 on the viewer on a build before and after march 26.
*** Bug 4221 has been marked as a duplicate of this bug. ***
Whiteboard: Mar 26: Waiting for a Linux build >=3.26.99 that works.
Sure. Will check when we have a build that works. ;)
Status: RESOLVED → VERIFIED
I was able to get a build on this this morning and verify that it was much much faster. Quantify numbers show that with the old code, doing the same 'run' as my initial report spent 81% of total execution time in nsImageGTK::Draw() and with the new code, that is a bit less than 6%. This is great.
If it's good enough for Bruce, it's good enough for me! Thanks, Bruce!
sorry for bugzilla spam. trying to get these off my radar
Status: RESOLVED → VERIFIED
Re-flagging as Verified.
You need to log in before you can comment on or make changes to this bug.