Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(322)

Issue 12082087: Replace or exclude MMX intrinsics in yuv_convert_simd_x86 due to lack of VS2010 support for them in… (Closed)

Created:
7 years, 10 months ago by wolenetz
Modified:
7 years, 10 months ago
CC:
chromium-reviews, feature-media-reviews_chromium.org, scottmg
Visibility:
Public.

Description

Replace or exclude MMX intrinsics in yuv_convert_simd_x86 due to lack of VS2010 support for them in Win64 On Win64, exclude MMX version in ChooseFilterYUVRowsProc; still use faster SSE2 version. Replace _mm_empty() with new yasm that implements EmptyRegisterState_MMX() with emms in EmptyRegisterState(), ConvertYUVToRGB32_MMX(...), and ConvertYUVToRGB32_SSE(...). This patch does not fix other win64 media link errors; more work remains for bug 172938. BUG=172938, 166496

Patch Set 1 #

Patch Set 2 : Fix some lint errors #

Total comments: 17

Patch Set 3 : Fix header guards and remove trailing newline #

Patch Set 4 : Use a shared predefinition to gate yuv_convert_simd_x86 usage of MMX intrinsics #

Total comments: 2

Patch Set 5 : Fix readability nit #

Total comments: 4

Patch Set 6 : Localize use of new macro and yasm emms to yuv_convert.cc #

Total comments: 10

Patch Set 7 : Fix more nits #

Unified diffs Side-by-side diffs Delta from patch set Stats (+53 lines, -6 lines) Patch
M media/base/simd/convert_yuv_to_rgb_x86.cc View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
A media/base/simd/empty_register_state_mmx.asm View 1 2 3 4 5 6 1 chunk +22 lines, -0 lines 0 comments Download
M media/base/yuv_convert.h View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M media/base/yuv_convert.cc View 1 2 3 4 5 6 3 chunks +28 lines, -3 lines 0 comments Download
M media/media.gyp View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 16 (0 generated)
wolenetz
Please review. Alpha: All Scherkus: media.gyp and the rest as you see fit Thanks! Matt
7 years, 10 months ago (2013-01-31 01:04:45 UTC) #1
scherkus (not reviewing)
a few cosmetic nits -- deferring to hclam@ for reviewing the more detailed asm stuff ...
7 years, 10 months ago (2013-01-31 01:56:40 UTC) #2
Alpha Left Google
Just a few nits. In general this looks good. https://codereview.chromium.org/12082087/diff/5001/media/base/simd/convert_yuv_to_rgb_x86.cc File media/base/simd/convert_yuv_to_rgb_x86.cc (right): https://codereview.chromium.org/12082087/diff/5001/media/base/simd/convert_yuv_to_rgb_x86.cc#newcode41 media/base/simd/convert_yuv_to_rgb_x86.cc:41: ...
7 years, 10 months ago (2013-01-31 19:43:15 UTC) #3
wolenetz
On 2013/01/31 19:43:15, Alpha wrote: > Just a few nits. In general this looks good. ...
7 years, 10 months ago (2013-01-31 19:45:34 UTC) #4
wolenetz
Please review. Thanks! Matt https://codereview.chromium.org/12082087/diff/5001/media/base/simd/convert_yuv_to_rgb_x86.cc File media/base/simd/convert_yuv_to_rgb_x86.cc (right): https://codereview.chromium.org/12082087/diff/5001/media/base/simd/convert_yuv_to_rgb_x86.cc#newcode41 media/base/simd/convert_yuv_to_rgb_x86.cc:41: EmptyRegisterState_MMX(); On 2013/01/31 19:43:15, Alpha ...
7 years, 10 months ago (2013-01-31 22:13:45 UTC) #5
Alpha Left Google
LGTM after one nit. https://codereview.chromium.org/12082087/diff/13001/media/base/yuv_convert.cc File media/base/yuv_convert.cc (right): https://codereview.chromium.org/12082087/diff/13001/media/base/yuv_convert.cc#newcode105 media/base/yuv_convert.cc:105: if (has_mmx) nit: Use {} ...
7 years, 10 months ago (2013-01-31 22:20:48 UTC) #6
wolenetz
Readability nit fixed. Pending scherkus currently. Matt https://codereview.chromium.org/12082087/diff/13001/media/base/yuv_convert.cc File media/base/yuv_convert.cc (right): https://codereview.chromium.org/12082087/diff/13001/media/base/yuv_convert.cc#newcode105 media/base/yuv_convert.cc:105: if (has_mmx) ...
7 years, 10 months ago (2013-01-31 23:00:01 UTC) #7
scherkus (not reviewing)
nits as discussed offline, lets use the EmptyRegisterState() function and localize the changes to yuv_convert.cc ...
7 years, 10 months ago (2013-01-31 23:55:27 UTC) #8
wolenetz
Locally, win64 media builds without yuv link errors. Win32 and linux build media and run ...
7 years, 10 months ago (2013-02-01 00:57:26 UTC) #9
Alpha Left Google
LGTM.
7 years, 10 months ago (2013-02-01 01:08:18 UTC) #10
scherkus (not reviewing)
LGTM w/ a bunch of nits https://codereview.chromium.org/12082087/diff/3009/media/base/simd/empty_register_state_mmx.asm File media/base/simd/empty_register_state_mmx.asm (right): https://codereview.chromium.org/12082087/diff/3009/media/base/simd/empty_register_state_mmx.asm#newcode9 media/base/simd/empty_register_state_mmx.asm:9: ; is not ...
7 years, 10 months ago (2013-02-01 01:13:17 UTC) #11
wolenetz
Local Win64 shows no yuv link errors, local win32 and linux show no media_unittests or ...
7 years, 10 months ago (2013-02-01 02:42:07 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/wolenetz@chromium.org/12082087/27002
7 years, 10 months ago (2013-02-01 03:03:07 UTC) #13
commit-bot: I haz the power
Presubmit check for 12082087-27002 failed and returned exit status 1. Running presubmit commit checks ...
7 years, 10 months ago (2013-02-01 03:03:13 UTC) #14
wolenetz
On 2013/02/01 03:03:13, I haz the power (commit-bot) wrote: > Presubmit check for 12082087-27002 failed ...
7 years, 10 months ago (2013-02-01 07:26:15 UTC) #15
jschuh
7 years, 10 months ago (2013-02-01 14:37:10 UTC) #16
On 2013/02/01 07:26:15, wolenetz wrote:
> I will either need a committer to commit this for me, or wait until CQ is
> configured to svn commit new asm files.

I committed it for you as r180141.

Powered by Google App Engine
This is Rietveld 408576698