SKIP_LIBRARY_CHECKS is "yes" on Windows, so SIMD of libjpeg turbo is turned off. We should turn on.
Created attachment 549720 [details] [diff] [review]
Do we have any idea when this changed?
(In reply to comment #2)
> Do we have any idea when this changed?
According to Bug 652399, for Gecko 6.
Setting tracking-? for FF6-8. This is a major (factor of 2?) jpeg decoding regression. This matters particularly much now that we aggressively discard images in background tabs.
Risk of taking this even on beta is low, because we had libjpeg-turbo enabled in FF4 and FF5.
Comment on attachment 549720 [details] [diff] [review]
We should fix this by moving the added check down to the libjpeg-turbo section.
We should also make it so that ./configure --with-system-jpeg --enable-libjpeg-turbo errors out.
I backed out bug 652399 on beta: http://hg.mozilla.org/releases/mozilla-beta/rev/f83956d23621
I didn't back out on Aurora, so we'll want to take this fix on Aurora.
The push from comment 6 was to the relbranch, not the default branch. Properly backed out on beta: http://hg.mozilla.org/releases/mozilla-beta/rev/eeabcaa28b68
Created attachment 550975 [details] [diff] [review]
Comment on attachment 550975 [details] [diff] [review]
>@@ -6317,16 +6316,20 @@ if test -n "$MOZ_LIBJPEG_TURBO"; then
>+ if test "$SYSTEM_JPEG" = 1; then
>+ AC_MSG_ERROR([cannot use --with-system-jpeg with --enable-libjpeg-turbo.])
I think this should be right after the MOZ_ARG_DISABLE_BOOL for libjpeg-turbo.
r=me with that.
landed with khuey's comment
Created attachment 551389 [details] [diff] [review]
Mozilla/5.0 (Windows NT 5.1; rv:7.0) Gecko/20100101 Firefox/7.0
Can anyone please help me with a test case or with STR / guidelines that I can use to verify this fix?
Find a very large JPEG image (not a solid color). Load it in a tab. In a new tab, load about:memory and click "minimize memory usage" -- this should cause the image to be discarded. Now switch back to the tab with the image. Time with a stopwatch how long it takes before the image is displayed onscreen. It should be significantly faster after this change than before.
Alternatively, you could profile a release build under a workload which spends most of its time decoding JPEGs, and examine the stack traces to see whether it's spending time in C or ASM routines.
You could also run a build in a debugger and see whether it's spending time in an ASM routine, executing SSE2 code.
qa- as no QA fix verification needed