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

Issue 2425423006: libyuv r1629 roll for AVX2 optimized HalfFloatPlane and ExtractAlpha. (Closed)

Created:
4 years, 2 months ago by fbarchard1
Modified:
4 years, 2 months ago
Reviewers:
hubbe
CC:
chromium-reviews
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

libyuv r1629 roll for AVX2 optimized HalfFloatPlane and ExtractAlpha. Important changes included: AVX2 and NEON halffloat conversion. Add F16C cpu detection. Support for I411 removed. Side by side UV for I420 output improves memory coherency. HalfFloat AVX2 ported from SSE2 using same magic number method, which is 20% faster than vcvtps2ph method and produces identical results. HalfFloat Neon version adapted from inner loop of vectorized C, but folds shift and narrow into one instruction and uses element multiply instead of vector to save a register and dup instruction. Neon version is also full performance with -Os. This CL enables -O2 for libyuv_neon as well. ExtractAlpha ported to AVX2. ARGB4444ToI420 ported to MSA. F16C cpu detection for AVX hardware that has halffloat conversion support. Change log: https://chromium.googlesource.com/libyuv/libyuv/+log/198bce39..550cf829 Full changes https://chromium.googlesource.com/libyuv/libyuv/+/198bce39..550cf829 TEST=TestHalfFloatPlane_denormal BUG=libyuv:560, libyuv:650, libyuv:572, libyuv:645, libyuv:649 R=hubbe@chromium.org CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel Committed: https://crrev.com/6f32b27bf0f9e369fe4e94c499cec6afe2abb56e Cr-Commit-Position: refs/heads/master@{#426849}

Patch Set 1 #

Patch Set 2 : avoid reading off end of buffer VideoResourceUpdaterTest.MakeHalfFloatTest #

Total comments: 2

Patch Set 3 : avoid reading off end of buffer VideoResourceUpdaterTest.MakeHalfFloatTest #

Patch Set 4 : unittest change removed #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1 line, -1 line) Patch
M DEPS View 1 2 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 22 (15 generated)
fbarchard1
Previous roll was rolled back due to test failure in cc_unittests on Mac for HalfFloat ...
4 years, 2 months ago (2016-10-20 01:59:51 UTC) #3
hubbe
https://codereview.chromium.org/2425423006/diff/20001/cc/resources/video_resource_updater_unittest.cc File cc/resources/video_resource_updater_unittest.cc (right): https://codereview.chromium.org/2425423006/diff/20001/cc/resources/video_resource_updater_unittest.cc#newcode558 cc/resources/video_resource_updater_unittest.cc:558: if (i < num_values - 1) { Why is ...
4 years, 2 months ago (2016-10-20 18:55:11 UTC) #7
fbarchard1
The AVX2 version had a bug in the gcc version. This is fixed in 1629. ...
4 years, 2 months ago (2016-10-20 22:57:34 UTC) #11
hubbe
lgtm
4 years, 2 months ago (2016-10-20 23:16:25 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2425423006/60001
4 years, 2 months ago (2016-10-21 18:00:30 UTC) #18
commit-bot: I haz the power
Committed patchset #4 (id:60001)
4 years, 2 months ago (2016-10-21 18:27:07 UTC) #20
commit-bot: I haz the power
4 years, 2 months ago (2016-10-21 18:42:42 UTC) #22
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/6f32b27bf0f9e369fe4e94c499cec6afe2abb56e
Cr-Commit-Position: refs/heads/master@{#426849}

Powered by Google App Engine
This is Rietveld 408576698