SIMD of libjpeg turbo is disabled on Windows

RESOLVED FIXED in Firefox 6

Status

()

Core
Build Config
RESOLVED FIXED
6 years ago
6 years ago

People

(Reporter: m_kato, Assigned: m_kato)

Tracking

({regression})

Trunk
mozilla8
All
Windows Vista
regression
Points:
---
Bug Flags:
in-testsuite -

Firefox Tracking Flags

(firefox5 unaffected, firefox6+ fixed, firefox7+ fixed, firefox8+ fixed)

Details

(Whiteboard: [qa-])

Attachments

(2 attachments, 1 obsolete attachment)

(Assignee)

Description

6 years ago
SKIP_LIBRARY_CHECKS is "yes" on Windows, so SIMD of libjpeg turbo is turned off.  We should turn on.
(Assignee)

Comment 1

6 years ago
Created attachment 549720 [details] [diff] [review]
fix
(Assignee)

Updated

6 years ago
Attachment #549720 - Flags: review?(khuey)
(Assignee)

Updated

6 years ago
Component: ImageLib → Build Config
QA Contact: imagelib → build-config
(Assignee)

Updated

6 years ago
Keywords: regression
(Assignee)

Updated

6 years ago
Blocks: 652399
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.
status-firefox6: --- → affected
status-firefox7: --- → affected
status-firefox8: --- → affected
tracking-firefox6: --- → ?
tracking-firefox7: --- → ?
tracking-firefox8: --- → ?
Comment on attachment 549720 [details] [diff] [review]
fix

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.
Attachment #549720 - Flags: review?(khuey) → review-
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.
status-firefox6: affected → fixed
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

Updated

6 years ago
status-firefox5: --- → unaffected
tracking-firefox6: ? → +
tracking-firefox7: ? → +
tracking-firefox8: ? → +
(Assignee)

Comment 8

6 years ago
Created attachment 550975 [details] [diff] [review]
fix v2
Attachment #549720 - Attachment is obsolete: true
(Assignee)

Updated

6 years ago
Attachment #550975 - Flags: review?(khuey)
Comment on attachment 550975 [details] [diff] [review]
fix v2

>@@ -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.])
>+    fi
>+

I think this should be right after the MOZ_ARG_DISABLE_BOOL for libjpeg-turbo.

r=me with that.
Attachment #550975 - Flags: review?(khuey) → review+
(Assignee)

Comment 10

6 years ago
landed with khuey's comment
http://hg.mozilla.org/integration/mozilla-inbound/rev/5f5c92568eb8
Whiteboard: [inbound]
(Assignee)

Comment 11

6 years ago
Created attachment 551389 [details] [diff] [review]
for aurora
(Assignee)

Updated

6 years ago
Attachment #551389 - Flags: approval-mozilla-aurora?
http://hg.mozilla.org/mozilla-central/rev/5f5c92568eb8
Status: NEW → RESOLVED
Last Resolved: 6 years ago
Flags: in-testsuite-
Resolution: --- → FIXED
Target Milestone: --- → mozilla8

Updated

6 years ago
Attachment #551389 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
(Assignee)

Comment 13

6 years ago
http://hg.mozilla.org/releases/mozilla-aurora/rev/ddc2fd44b7fa
status-firefox7: affected → fixed
status-firefox8: affected → fixed
Whiteboard: [inbound]
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?

Thanks!
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
Whiteboard: [qa-]
You need to log in before you can comment on or make changes to this bug.