- 31 Mar, 2018 1 commit
-
-
Martin Storsjö authored
When detected, add the necessary defines to actually use it. Change-Id: I540c3e11e480be8aaab154ad91ee08cdc52319de Reviewed-on: https://chromium-review.googlesource.com/988432 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
- 30 Mar, 2018 3 commits
-
-
Martin Storsjö authored
In these cases, CLANG_HAS_AVX2 is defined, but _MSC_VER isn't. The corresponding codepaths are in source/compare_win.cc, and the whole file is guarded with a defined(_MSC_VER). This is the same fix as in d8680893, but this issue wasn't noticed since compare.o wasn't linked in in earlier tested configurations. Change-Id: Ifff6d4bd7b1071256df1169881490a52026c183b Reviewed-on: https://chromium-review.googlesource.com/988573Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
Martin Storsjö authored
Change-Id: Ib6367fa94c60f7239fe02ace81c06054b1b4a837 Reviewed-on: https://chromium-review.googlesource.com/988532Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
Bug: libyuv:789 Test: builds locally on linux with clang Change-Id: I3000494d4b0b18f59d7852bc1bc0c9e422d2d63a Reviewed-on: https://chromium-review.googlesource.com/987331Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
- 28 Mar, 2018 4 commits
-
-
Frank Barchard authored
Scalar multiply expects a 'd' register. The "w" (float) uses 's' for float and wont work with the multiply in 32 bit (it does in 64 bit). A vector 2 of float passes as 'd' register. A vector 4 of float passes as 'q' register. This change copies the float into the first entry of a vector 2 and passes that. The optimizer removes the extra copy, allowing the single float to use referenced as Test: LibYUVPlanarTest.TestByteToFloat Bug: libyuv:786 Change-Id: I8773c5bae043c7b84e1d1db7fdea6731aa0b1323 Reviewed-on: https://chromium-review.googlesource.com/973984 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Miguel Casas <mcasas@chromium.org>
-
Martin Storsjö authored
In these cases, CLANG_HAS_AVX2 is defined, but _MSC_VER isn't. The corresponding codepaths are in source/row_win.cc, and the whole file is guarded with an defined(_MSC_VER). Change-Id: Idf0cfced3a0ef28c07b1393fe605a904420fd50f Reviewed-on: https://chromium-review.googlesource.com/983592Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
row.h adds CLANG_HAS_AVX512 function ifdefs in row.h for avx512 source code ifdefed function by function for avx512 and avx2. Bug: libyuv:778 Test: LibYUVConvertTest.NV21ToRGB24_Opt Change-Id: If32b51459685d0d5785c5c1e94c8f668f8e74b55 Reviewed-on: https://chromium-review.googlesource.com/982402 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
Frank Barchard authored
undo clang-tidy change that introduced empty functions. Bug: libyuv:788 Test: try bots build Change-Id: I093aa72c421bace654394726026bc531a761d51d Reviewed-on: https://chromium-review.googlesource.com/982410Reviewed-by: Weiyong Yao <braveyao@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
- 26 Mar, 2018 1 commit
-
-
Jay Civelli authored
Adds a method that forces the CPU flags. Useful when using libyuv inside a sandboxed process which may not have access to the file system. Bug: libyuv:787 Change-Id: I01f71e39a7301085d9de388eba930b4cac0fd7be Reviewed-on: https://chromium-review.googlesource.com/972338 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
- 20 Mar, 2018 2 commits
-
-
Patrik Höglund authored
This is what Chromium is moving to, and what WebRTC is using. Next step: pull xcode via CIPD. Bug:chromium:633032 Change-Id: I6a21aa0e5b212a3a9cb4e7cc79ebb614a89f73ed Reviewed-on: https://chromium-review.googlesource.com/915921 Commit-Queue: Patrik Höglund <phoglund@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
Move getenv to unittest.cc to allow libyuv to be run in sandbox for x86, x64 and aarch64 Bug: libyuv:767 Test: unittests still run and respect environment variables Change-Id: I84cb1717977828776142b51c029774b3e6b142a3 Reviewed-on: https://chromium-review.googlesource.com/969645Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
- 10 Mar, 2018 2 commits
-
-
Frank Barchard authored
Use VMBI instructions but on AVX2 registers to avoid clockrate change. Bug: libyuv:778 Test: LibYUVConvertTest.NV21ToRGB24_Opt Change-Id: Id4f8ad1e0e142a380c8a46c5eab90ce145a10edd Reviewed-on: https://chromium-review.googlesource.com/956609Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
Frank Barchard authored
Change unittest flags to decimal so they can be used for --libyuv_cpu_info= Add environment variables to disable AVX 512 bits. Bug: libyuv:784 Test: LibYUVBaseTest.TestCpuHas Change-Id: Iea6704368fbe9f6d3395933da7993fb2a3453225 Reviewed-on: https://chromium-review.googlesource.com/957704Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
- 08 Mar, 2018 1 commit
-
-
Frank Barchard authored
AVX2 port of SSSE3 conversion to output 24 bit RGB Bug: libyuv:778 Test: LibYUVConvertTest.NV21ToRGB24_Opt Change-Id: I14f7815522d1b790ecd2bb39d9a3441e803b694a Reviewed-on: https://chromium-review.googlesource.com/953303 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
- 07 Mar, 2018 1 commit
-
-
Frank Barchard authored
Use 2 step conversion for NV21ToRGB24 to leverage AVX2 low levels instead of C. Was C NV21ToRGB24_Opt (882 ms) Now SSSE3 NV21ToRGB24_Opt (218 ms) Bug: libyuv:778 Test: LibYUVConvertTest.NV21ToRGB24_Opt Change-Id: I58faf766bbec4cc595aab2e217f6c874dd4b4363 Reviewed-on: https://chromium-review.googlesource.com/951629 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
- 02 Mar, 2018 1 commit
-
-
Frank Barchard authored
Unit tests to convert YUV to RGB previously allowed some error for differences in implementation between C and SIMD versions, and there were differences with Intel SSE2 vs ARM NEON. Now those differences are resolved, the unittest can expect exactness. Bug: libyuv:447 Test: LibYUVConvertTest.I420ToARGB_Any Change-Id: I00fe342523deba9420eb71812d09a8e89dc641a0 Reviewed-on: https://chromium-review.googlesource.com/946563Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
- 27 Feb, 2018 2 commits
-
-
Frank Barchard authored
Bug: None Test: try bots and lint pass Change-Id: I7429b394c89450c13732205dae672793e4bb6f44 Reviewed-on: https://chromium-review.googlesource.com/939844Reviewed-by: Noah Richards <noahric@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
Make parameters match in the code to the header. TBR=braveyao@chromium.org Bug: libyuv:782 Test: try bots still build Change-Id: Id53fa2fe988aee5e125d87bc5fe70cce6b275403 Reviewed-on: https://chromium-review.googlesource.com/938948Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
- 24 Feb, 2018 1 commit
-
-
Frank Barchard authored
Each byte is converted to float (0.0 to 255.0) and then multiplied by a scale parameter. Bug: None Test: arm 64 build passes. Change-Id: I04736798540b8d985f60abdf0388e24a209d075b Reviewed-on: https://chromium-review.googlesource.com/930226 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Ian Field <ianfield@google.com>
-
- 22 Feb, 2018 2 commits
-
-
Frank Barchard authored
32 bit thumb2 performance: NV12ToARGB_Opt (472 ms) NV21ToARGB_Opt (466 ms) NV12ToRGB24_Opt (457 ms) NV21ToRGB24_Opt (457 ms) NV12ToRGB565_Opt (501 ms) Bug: libyuv:778 Test: add new NV21ToRGB24 test Change-Id: I330585789835c79ee4b4da61d164716598268df3 Reviewed-on: https://chromium-review.googlesource.com/924646Reviewed-by: Cheng Wang <wangcheng@google.com>
-
Patrik Höglund authored
Manual changes: * Rewrite sysroot download (similar to https://webrtc-review.googlesource.com/c/50183/) * Do the same as https://webrtc-review.googlesource.com/c/21400/. * Add dep on findbugs for Android. Change log: https://chromium.googlesource.com/chromium/src/+log/ff3b31782d..80f0c55706 Full diff: https://chromium.googlesource.com/chromium/src/+/ff3b31782d..80f0c55706 Changed dependencies: * src/base: https://chromium.googlesource.com/chromium/src/base/+log/9b543d487c..ac3d2b8118 * src/build: https://chromium.googlesource.com/chromium/src/build/+log/156ba982d7..39738e75b2 * src/buildtools: https://chromium.googlesource.com/chromium/buildtools.git/+log/f6d165d9d8..a09e064635 * src/ios: https://chromium.googlesource.com/chromium/src/ios/+log/39c4b2fcf7..299ef76e84 * src/testing: https://chromium.googlesource.com/chromium/src/testing/+log/cc96d3d66b..5f7e36cad6 * src/third_party: https://chromium.googlesource.com/chromium/src/third_party/+log/72c52c224c..2c0ced3ddb * src/third_party/android_tools: https://chromium.googlesource.com/android_tools.git/+log/aadb2fed04..9a70d48fcd * src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/aa736cc76e..e7298f36f7 * src/third_party/googletest/src: https://chromium.googlesource.com/external/github.com/google/googletest.git/+log/7f8fefabed..0062e4869f * src/third_party/icu: https://chromium.googlesource.com/chromium/deps/icu.git/+log/08cb956852..d888fd2a1b * src/third_party/robolectric/robolectric: https://chromium.googlesource.com/external/robolectric.git/+log/b02c65cc6d..7e067f1112 * src/tools: https://chromium.googlesource.com/chromium/src/tools/+log/eceb2c420b..6202b67fc4 * src/tools/swarming_client: https://chromium.googlesource.com/infra/luci/client-py.git/+log/5e8001d9a7..88229872dd DEPS diff: https://chromium.googlesource.com/chromium/src/+/ff3b31782d..80f0c55706/DEPS Clang version changed 313786:324578 Details: https://chromium.googlesource.com/chromium/src/+/ff3b31782d..80f0c55706/tools/clang/scripts/update.py BUG=libyuv:768 Rewrite sysroot download Change-Id: Ie3cb0ba873c6c40877870b655ed299450726eac2 Reviewed-on: https://chromium-review.googlesource.com/918461Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Patrik Höglund <phoglund@chromium.org>
-
- 21 Feb, 2018 4 commits
-
-
Frank Barchard authored
row_neon.cc manually editted for clang format bugs TBR=braveyao@chromium.org Bug: None Test: local arm builds still pass Change-Id: Ida4aac2f4ee354e2c1bd354b06e76a26b3c0becc Reviewed-on: https://chromium-review.googlesource.com/930165Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
This reverts commit cfff527a. Reason for revert: <INSERT REASONING HERE> Original change's description: > clang-tidy and clang-format applied > > TBR=braveyao@chromium.org > Bug: None > Test: local arm builds still pass > Change-Id: Iac042fbaad940e01fc4ce228a104d3d561b80f92 > Reviewed-on: https://chromium-review.googlesource.com/929999 > Reviewed-by: Frank Barchard <fbarchard@chromium.org> TBR=fbarchard@chromium.org,braveyao@chromium.org Change-Id: I4ee92ceeaa3c34bce3f20bf759dd30593807ad3f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: None Reviewed-on: https://chromium-review.googlesource.com/930141Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
TBR=braveyao@chromium.org Bug: None Test: local arm builds still pass Change-Id: Iac042fbaad940e01fc4ce228a104d3d561b80f92 Reviewed-on: https://chromium-review.googlesource.com/929999Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
ARGB rotation using scaling code. Previously it had forward declarations of the low level row functions used. This CL uses the header and hooks up Any and MSA versions of the code. Bug: libyuv:779 Test: perf record out/Release/libyuv_unittest --gtest_filter=*ARGBRotate90_Opt --libyuv_width=640 --libyuv_height=359 --libyuv_repeat=999 Change-Id: Ifacd58b26bb17a236181a404fad589fd2543b911 Reviewed-on: https://chromium-review.googlesource.com/927530Reviewed-by: Weiyong Yao <braveyao@chromium.org>
-
- 16 Feb, 2018 2 commits
-
-
Michael Achenbach authored
Depends on: https://crrev.com/c/924114 Bug: chromium:756691 Change-Id: I4fb6dcbdf0d5e134ef3756b231d8f98d9d41b403 Reviewed-on: https://chromium-review.googlesource.com/924617Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
-
Frank Barchard authored
AR30ToARGB will vectorize if the output is masked together as an int instead of 4 byte stores. Performance is 2x faster Was AR30ToARGB_Opt (1585 ms) Now AR30ToARGB_Opt (746 ms) Bug: libyuv:777 Test:LibYUVConvertTest.AR30ToARGB_Opt Change-Id: Idd47ae599d5d125207bb53e618d6d7e784d4a37c Reviewed-on: https://chromium-review.googlesource.com/923169Reviewed-by: Miguel Casas <mcasas@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
- 15 Feb, 2018 2 commits
-
-
Frank Barchard authored
Bug: libyuv:777 Test: None Change-Id: I69b81f51c50d7739cfdb3cfb0c3d315c32bd63d2 Reviewed-on: https://chromium-review.googlesource.com/923042Reviewed-by: Miguel Casas <mcasas@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
BGR variation of 10 bit conversion using swapped U and V and mirrored matrix to produce AB30 format instead of AR30. Bug: libyuv:777 Test: LibYUVConvertTest.H010ToAB30_Opt Change-Id: I96d115a5d1e12138f40cb548871e03aa3ab210eb Reviewed-on: https://chromium-review.googlesource.com/922284 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Miguel Casas <mcasas@chromium.org>
-
- 12 Feb, 2018 2 commits
-
-
Frank Barchard authored
This reverts commit 724dbeba. Reason for revert: bots remain red after revert. Original change's description: > Revert "Fixing libyuv gn check." > > This reverts commit b625f7b9. > > Reason for revert: ios builds broke shortly after this CL, so trying a revert to get builds back to green. > > Original change's description: > > Fixing libyuv gn check. > > > > Starting from [1], GN is able to ensure that the inclusion or headers > > with relative paths is matched by a GN dependency. > > > > This CL fixes the libyuv build graph according to GN. > > > > [1] - https://chromium-review.googlesource.com/c/chromium/src/+/827014 > > > > Bug: webrtc:8850 > > Change-Id: I7e0f9a8bd1ae2d205213dc75bf322be587efd1f5 > > Reviewed-on: https://chromium-review.googlesource.com/903843 > > Reviewed-by: Frank Barchard <fbarchard@chromium.org> > > Commit-Queue: Frank Barchard <fbarchard@chromium.org> > > TBR=fbarchard@chromium.org,mbonadei@chromium.org > > # Not skipping CQ checks because original CL landed > 1 day ago. > > Bug: webrtc:8850 > Change-Id: I8585de252bd83e2c628a37b0a0d5324ed961209e > Reviewed-on: https://chromium-review.googlesource.com/912178 > Reviewed-by: Frank Barchard <fbarchard@chromium.org> > Commit-Queue: Frank Barchard <fbarchard@chromium.org> TBR=fbarchard@chromium.org,mbonadei@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: webrtc:8850 Change-Id: Idfd37e0e20d278b374c57d7e2c5465971aae3a52 Reviewed-on: https://chromium-review.googlesource.com/914529Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
Using clang-tidy 7. warnings=-*,mpi-*,objc-*,llvm-*,hicpp-*,-hicpp-use-noexcept,llvm-*,-hicpp-deprecated-headers,-hicpp-use-auto,bugprone-*,cert-*,google-*,-google-readability-casting,misc-*,,-misc-unused-parameters,-misc-macro-parentheses,cppcoreguidelines-*,-cppcoreguidelines-pro-type-member-init,readability-*,-readability-non-const-parameter,-readability-implicit-bool-conversion,fuchsia-*,-fuchsia-multiple-inheritance,-android-cloexec-* ~/bin/clang-tidy -fix-errors -format-style=file -checks=$warnings $* -- -Iinclude -D__ARM_NEON__ -D__arm__ -D__clang__ -D__clang_major__=6 -DHAVE_JPEG ~/bin/clang-tidy -fix-errors -format-style=file -checks=$warnings $* -- -Iinclude -D__mips_msa -D__clang__ -D__clang_major__=6 -DHAVE_JPEG ~/bin/clang-tidy -fix-errors -format-style=file -checks=$warnings $* -- -Iinclude -D__aarch64__ -D__clang__ -D__clang_major__=6 -DHAVE_JPEG ~/bin/clang-tidy -fix-errors -format-style=file -checks=$warnings $* -- -Iinclude -D_MSC_VER=1600 -D_M_IX86 -D__clang__ -D__clang_major__=6 -DHAVE_JPEG ~/bin/clang-tidy -fix-errors -format-style=file -checks=$warnings $* -- -Iinclude -D_MSC_VER=1600 -D_M_X64 -D__clang__ -D__clang_major__=6 -DHAVE_JPEG ~/bin/clang-tidy -fix-errors -format-style=file -checks=$warnings $* -- -Iinclude -D__i386__ -D__clang__ -D__clang_major__=6 -DHAVE_JPEG ~/bin/clang-tidy -fix-errors -format-style=file -checks=$warnings $* -- -Iinclude -D__x86_64__ -D__clang__ -D__clang_major__=6 -DHAVE_JPEG Bug: libyuv:750 Test: builds and runs and passes more tidy tests Change-Id: Ieb0f026c5b5a1d2daf8aca18b9290927fdaaa55c Reviewed-on: https://chromium-review.googlesource.com/907853Reviewed-by: Weiyong Yao <braveyao@chromium.org>
-
- 10 Feb, 2018 1 commit
-
-
Frank Barchard authored
This reverts commit b625f7b9. Reason for revert: ios builds broke shortly after this CL, so trying a revert to get builds back to green. Original change's description: > Fixing libyuv gn check. > > Starting from [1], GN is able to ensure that the inclusion or headers > with relative paths is matched by a GN dependency. > > This CL fixes the libyuv build graph according to GN. > > [1] - https://chromium-review.googlesource.com/c/chromium/src/+/827014 > > Bug: webrtc:8850 > Change-Id: I7e0f9a8bd1ae2d205213dc75bf322be587efd1f5 > Reviewed-on: https://chromium-review.googlesource.com/903843 > Reviewed-by: Frank Barchard <fbarchard@chromium.org> > Commit-Queue: Frank Barchard <fbarchard@chromium.org> TBR=fbarchard@chromium.org,mbonadei@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: webrtc:8850 Change-Id: I8585de252bd83e2c628a37b0a0d5324ed961209e Reviewed-on: https://chromium-review.googlesource.com/912178Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
- 09 Feb, 2018 1 commit
-
-
Frank Barchard authored
This reverts commit 7b9ff4a0. Reason for revert: ios build bots are red Original change's description: > tidy applied with readability-* > > TBR=braveyao@chromium.org > Bug: libyuv:750 > Test: builds and runs and passes more tidy tests > Change-Id: I316822f7d13b370b88b92a693912e880b21f92c8 > Reviewed-on: https://chromium-review.googlesource.com/907371 > Reviewed-by: Frank Barchard <fbarchard@chromium.org> TBR=fbarchard@chromium.org,braveyao@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: libyuv:750 Change-Id: I4a73ffee2b71664c6cb93f38f2b5d70ebd76953e Reviewed-on: https://chromium-review.googlesource.com/912175Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
- 08 Feb, 2018 1 commit
-
-
Frank Barchard authored
TBR=braveyao@chromium.org Bug: libyuv:750 Test: builds and runs and passes more tidy tests Change-Id: I316822f7d13b370b88b92a693912e880b21f92c8 Reviewed-on: https://chromium-review.googlesource.com/907371Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
- 07 Feb, 2018 2 commits
-
-
Frank Barchard authored
TBR=braveyao@chromium.org Bug: libyuv:750 Test: builds and runs and passes more tidy tests Change-Id: I1400a915ee5734c38d19dab9cf1f210ca43d17fc Reviewed-on: https://chromium-review.googlesource.com/905810Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
Bug: libyuv:750 Test: builds and runs and passes more tidy tests Change-Id: I023699a7aa61ea3f5e4a21647112691ea5739281 Reviewed-on: https://chromium-review.googlesource.com/902170Reviewed-by: Weiyong Yao <braveyao@chromium.org>
-
- 06 Feb, 2018 1 commit
-
-
Mirko Bonadei authored
Starting from [1], GN is able to ensure that the inclusion or headers with relative paths is matched by a GN dependency. This CL fixes the libyuv build graph according to GN. [1] - https://chromium-review.googlesource.com/c/chromium/src/+/827014 Bug: webrtc:8850 Change-Id: I7e0f9a8bd1ae2d205213dc75bf322be587efd1f5 Reviewed-on: https://chromium-review.googlesource.com/903843Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
- 05 Feb, 2018 1 commit
-
-
Frank Barchard authored
Bug: libyuv:750 Test: builds and runs and passes more tidy tests Change-Id: I5a6654876bc2e79cfdbbe5c11d5aec2b10b05ef6 Reviewed-on: https://chromium-review.googlesource.com/899844Reviewed-by: Weiyong Yao <braveyao@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
- 02 Feb, 2018 2 commits
-
-
Frank Barchard authored
I422ToUYVYRow_AVX2 optimized from 7 cycles per 32 pixels to 4.6 cycles. Instead of 2 vpermq and vpunpcklbw: vmovdqu (%1),%%xmm2 vmovdqu 0x00(%1,%2,1),%%xmm3 vpermq $0xd8,%%ymm2,%%ymm2 vpermq $0xd8,%%ymm3,%%ymm3 vpunpcklbw %%ymm3,%%ymm2,%%ymm2 ..use vpmovzxbd to expand the bytes to shorts, then vpslld and vpor vpmovzxbd (%1),%%ymm2 vpmovzxbd 0x00(%1,%2,1),%%ymm3 vpslld $0x10,%%ymm3,%%ymm3 vpor %%ymm3,%%ymm2,%%ymm2 which reduces the port 5 bottleneck by 1 cycle. Bug: libyuv:556 Test: out/Release/libyuv_unittest --gtest_filter=*I42?To*UY*Opt Change-Id: I53799e53cc6b090a1a695c839094c193be3eecaf Reviewed-on: https://chromium-review.googlesource.com/899873 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com> Reviewed-by: Cheng Wang <wangcheng@google.com>
-
Frank Barchard authored
I422ToYUY2Row_AVX2 optimized from 7 cycles per 32 pixels to 6 cycles. Instead of 2 vpermq and vpunpcklbw: vmovdqu (%1),%%xmm2 vmovdqu 0x00(%1,%2,1),%%xmm3 lea 0x10(%1),%1 vpermq $0xd8,%%ymm2,%%ymm2 vpermq $0xd8,%%ymm3,%%ymm3 vpunpcklbw %%ymm3,%%ymm2,%%ymm2 ..use vpmovzxbd to expand the bytes to shorts, then vpslld and vpor vpmovzxbd (%1),%%ymm2 vpmovzxbd 0x00(%1,%2,1),%%ymm3 vpslld $0x10,%%ymm3,%%ymm3 vpor %%ymm3,%%ymm2,%%ymm2 which reduces the port 5 bottleneck by 1 cycle. Bug: libyuv:556 Test: out/Release/libyuv_unittest --gtest_filter=*I42?To*UY*Opt I422ToYUY2Row_AVX2 optimization Improve performance of AVX2 code by avoiding vpermq Bug: libyuv:556 Test: /usr/local/google/home/fbarchard/iaca-lin64/bin/iaca.sh -reduceout -arch BDW out/Release/obj/libyuv_internal/row_gcc.o Change-Id: Ie36732da23ecea1ffcc6b297bacc962780b59ef1 Reviewed-on: https://chromium-review.googlesource.com/898067 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
-