1942 Commits

Author SHA1 Message Date
Frank Barchard
68f852d835 Remove DISABLE_CLANG_MSA
cleanup to remove ifdefs around functions affected by
a clang bug.

gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\"mips64el\" mips_arch_variant=\"r6\" mips_use_msa=true is_component_build=true is_clang=true"
ninja -v -C out/Release libyuv_unittest

Bug: libyuv:634
Test: build for mips with clang
Change-Id: I278b368dbb2fe89082240e280267d0a27a214c78
Reviewed-on: https://chromium-review.googlesource.com/757980
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-11-08 19:55:14 +00:00
Frank Barchard
d997ac287d Revert "Enable SSE2 code without -msse"
This reverts commit 01e994d74e4e3937ee1a3efdc048320a1e51f818.

Change-Id: Ie76710d0f4e641e071889c5125fd3be23cdcdb59
Reviewed-on: https://chromium-review.googlesource.com/758499
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-11-08 19:33:09 +00:00
Frank Barchard
01e994d74e Enable SSE2 code without -msse
Bug: libyuv:754
Test: CC=clang CXX=clang++ CFLAGS="-m32" CXXFLAGS="-m32 -mno-sse -O2" make -f linux.mk
Change-Id: I74bf8d032013694e65ea7637bc38d3253db53ff2
Reviewed-on: https://chromium-review.googlesource.com/758043
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-11-08 02:54:41 +00:00
Frank Barchard
12084cd068 SSSE3 scaling test detect SSSE3 before running
Bug: libyuv:755
Test: ~/intelsde/sde -p4p -- out/Release/libyuv_unittest --gtest_filter=LibYUVScaleTest*
Change-Id: Ibb0c908c38efc49dc56e86fa54ae7bd48ced02b5
Reviewed-on: https://chromium-review.googlesource.com/756363
Reviewed-by: Cheng Wang <wangcheng@google.com>
2017-11-07 19:34:10 +00:00
Frank Barchard
522fd699e6 AVX512 feature detects for cnl and icl
Key instruction sets added for each microarchitecture:

AVX512BW, AVX512VL, AVX512DQ - skylake server or later
AVX512_VBMI, AVX512_IFMA - cannon lake or later
AVX512_BITALG, AVX512_VBMI2, AVX512_VPOPCNTDQ, AVX512_VNNI, GFNI, VAES, VPCLMULQDQ - ice lake or later

Bug: libyuv:752
Test: ~/intelsde/sde -icl -- out/Release/libyuv_unittest --gtest_filter=*Cpu*
Change-Id: I9ee28904c90009d66721b9f805a440c5fc2da122
Reviewed-on: https://chromium-review.googlesource.com/755617
Reviewed-by: Frank Barchard <fbarchard@google.com>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2017-11-07 00:56:37 +00:00
Frank Barchard
afa98e1f08 HammingDistance_SSSE3 use movd not vmovd
vmovd is an AVX instruction.  This will crash on an older CPU with
only SSSE3 but not AVX.  Use movd instead.

Bug: libyuv:753
Test: ~/intelsde/sde -mrm -- out/Release/libyuv_unittest --gtest_filter=LibYUVCompareTest.BenchmarkHammingDistance_Opt
Change-Id: I1fb0026039d5f83d124f5d03fed7dc0d2d723e49
Reviewed-on: https://chromium-review.googlesource.com/756200
Reviewed-by: Cheng Wang <wangcheng@google.com>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2017-11-07 00:48:52 +00:00
Frank Barchard
a0c32b9e49 MergeUV10Row_AVX2 for converting H010 to P010
H010 is 10 bit planar format with 10 bits in lower bits.
P010 is 10 bit biplanar format with 10 bits in upper bits.
This function weaves the U and V channels and shifts the bits
into the upper bits.

Bug: libyuv:751
Test: LibYUVPlanarTest.MergeUV10Row_Opt
Change-Id: I4a0bac0ef1ff95aa1b8d68261ec8e8e86f2d1fbf
Reviewed-on: https://chromium-review.googlesource.com/752692
Reviewed-by: Cheng Wang <wangcheng@google.com>
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-11-03 18:55:36 +00:00
Frank Barchard
75ec56b55a documentation - iaca, yuvconvert, clang-cl doc updates
Bug: None
Test: None
Change-Id: Ie7cab948b7e879b08e5e5efaae008977513a0a80
Reviewed-on: https://chromium-review.googlesource.com/749895
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Patrik Höglund <phoglund@chromium.org>
2017-11-02 22:34:14 +00:00
Frank Barchard
258057f988 Use -Werror in external/libyuv/files
Bug: libyuv:750
Test: build with WITH_TIDY=1
Change-Id: I09b7c24f52d0daa72fe7d1928d11a56208526bd1
Reviewed-on: https://chromium-review.googlesource.com/748307
Reviewed-by: Patrik Höglund <phoglund@chromium.org>
2017-11-01 17:30:10 +00:00
Frank Barchard
de8e9ae10b HammingDistance_SSE42 register optimized to avoid push
Bug: libyuv:701
Test: objdump to confirm code gen
Change-Id: Ibdcb2cc6bc9bf14b4ccb874c49fc9ff664650e1a
Reviewed-on: https://chromium-review.googlesource.com/745390
Reviewed-by: Frank Barchard <fbarchard@google.com>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2017-10-31 21:12:32 +00:00
Frank Barchard
ffc4811863 clang-format fixes
Bug: None
Test: lint passes
Change-Id: I1fd40d3506bab1f4f9100902f633a9c9e7b96337
Reviewed-on: https://chromium-review.googlesource.com/745038
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-10-31 02:25:01 +00:00
Frank Barchard
80077a80c2 HammingDistance_X86 using popcnt assembly
popcnt has a fake dependency on the destination.
This assembly avoids the dependency by using a different
register for each popcnt.

Bug: libyuv:701
Test: LIBYUV_DISABLE_SSSE3=1 out/Release/libyuv_unittest --gtest_filter=*Ham*Opt --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=9999 --libyuv_flags=-1 --libyuv_cpu_info=-1
Change-Id: Ie1d202e2613b7fa8a3c02acd433940e92c80eafa
Reviewed-on: https://chromium-review.googlesource.com/731826
Reviewed-by: Cheng Wang <wangcheng@google.com>
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-10-23 21:15:12 +00:00
Frank Barchard
3e5bbea5bf Add test programs to Android.bp
Bug: libyuv:746
Test: mm cpuid yuvconvert compare psnr libyuv_unittest
Change-Id: I08f6d5b519151f274e6baee993eb74950161ef53
Reviewed-on: https://chromium-review.googlesource.com/726749
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-10-19 01:20:17 +00:00
Frank Barchard
af37f9c1d3 cpuid util fix for build warning
Bug: libyuv:747
Test: mm cpuid under android builds
Change-Id: I7fff13006b47a59873f29f8992bb3faf9bdb85f1
Reviewed-on: https://chromium-review.googlesource.com/727263
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-10-19 00:08:53 +00:00
Frank Barchard
e4aa6aad48 Add Android.bp build file for Android master
Bug: libyuv:746
Test: mm from android repo
Change-Id: I7c124acfacc87cc263b19483cea79a63084f3f96
Reviewed-on: https://chromium-review.googlesource.com/724237
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-10-18 18:36:37 +00:00
Frank Barchard
8fa02df3c0 mingw fix ifdefs to use gcc source
mingw gcc sets the macro _M_IX86 which is normally only set
by Visual C and clangcl which are Visual C style source code
style for assembly, but gcc is not Visual C compatible.
Add _MSC_VER to most ifdefs to detect that its really Visual C
or clangcl and not mingw gcc so the gcc source code will be used.

Bug: libyuv:744
Test: CXXFLAGS=-m32 CXX=~/prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/bin/x86_64-w64-mingw32-g++ make -f linux.mk
Change-Id: I3431aa486eb769b145faa8d5eb75ed639f9d6f5e
Reviewed-on: https://chromium-review.googlesource.com/722319
Reviewed-by: Cheng Wang <wangcheng@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-10-17 17:36:35 +00:00
Andrii Shyshkalov
15d48f1e83 Remove Rietveld CQ config.
Rietveld CQ has already been disabled and is no longer supoorted.

TBR=phoglund@chromium.org

No-Try: True
Bug: chromium:770592
Change-Id: I2679e9193dfb5ec751bdc76d35fe5d835b44bd0a
Reviewed-on: https://chromium-review.googlesource.com/714302
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
2017-10-12 06:43:30 +00:00
Frank Barchard
1cebe2c622 TestHammingDistance_Opt to test low level matches C reference.
The low level hamming distance functions have size limitations
based on counter sizes.  The higher level calls the low level
in blocks that avoid overflow and then accumulators in int64.
This test compares the results of the low levels to the high
level and against a known value (all ones) to ensure the
count is correct for any specified size.
The the size is very large, the result is expected to be
different.

Bug: libyuv:701
Test: TestHammingDistance_Opt
Change-Id: I6716af7cd09ac4d88a8afa25bc845a1b62af7c93
Reviewed-on: https://chromium-review.googlesource.com/710800
Reviewed-by: Frank Barchard <fbarchard@google.com>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-10-11 20:21:31 +00:00
Frank Barchard
e23b27d040 Reduce HammingDistance block size to 32k to avoid overflow
Bug: libyuv:701
Test: HammingDistance unittest with large size
Change-Id: Id41a2c27eb8922d03b3a21dab32fa2e7b015ba38
Reviewed-on: https://chromium-review.googlesource.com/708335
Reviewed-by: Cheng Wang <wangcheng@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-10-10 18:42:47 +00:00
Frank Barchard
60f433fbd9 Revert "ComputeHammingDistance reduce SIMD loop to 1 call when possible."
This reverts commit ec75df5894845b8d6b1341885a78db1de83decd8.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> ComputeHammingDistance reduce SIMD loop to 1 call when possible.
> 
> 32 bit x86 has high overhead due to -fpic.  So this reduces the
> number of calls by 1.
> 
> TBR=kjellander@chromium.org
> Bug: libyuv:701
> Test: BenchmarkHammingDistance
> Change-Id: I7f557ef047920db65eab362a5f93abbd274ca051
> Reviewed-on: https://chromium-review.googlesource.com/701755
> Reviewed-by: Frank Barchard <fbarchard@google.com>
> Reviewed-by: Cheng Wang <wangcheng@google.com>

TBR=rrwinterton@gmail.com,fbarchard@google.com,wangcheng@google.com

Change-Id: Ia61e8558a8f083c14be5f51e0e141550b6f2b5c1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: libyuv:701
Reviewed-on: https://chromium-review.googlesource.com/707823
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-10-10 01:16:15 +00:00
Frank Barchard
ec75df5894 ComputeHammingDistance reduce SIMD loop to 1 call when possible.
32 bit x86 has high overhead due to -fpic.  So this reduces the
number of calls by 1.

TBR=kjellander@chromium.org
Bug: libyuv:701
Test: BenchmarkHammingDistance
Change-Id: I7f557ef047920db65eab362a5f93abbd274ca051
Reviewed-on: https://chromium-review.googlesource.com/701755
Reviewed-by: Frank Barchard <fbarchard@google.com>
Reviewed-by: Cheng Wang <wangcheng@google.com>
2017-10-09 22:51:23 +00:00
Patrik Höglund
b7b5374263 kjellander -> phoglund in OWNERS
R=kjellander@chromium.org

Bug:libyuv:741
Change-Id: I6bc18e94ec82e00518f34695cf3b97deed82c76d
Reviewed-on: https://chromium-review.googlesource.com/699996
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Patrik Höglund <phoglund@chromium.org>
2017-10-09 11:40:28 +00:00
Frank Barchard
1734712a6f Fix odd length HammingDistance
If length of HammingDistance was not a multiple of 4,
the result was incorrect.  The old tests did not catch this
so a new test is done to count 1s.

Bug: libyuv:740
Test: LibYUVCompareTest.TestHammingDistance
Change-Id: I93db5437821c597f1f162ac263d4a594bb83231f
Reviewed-on: https://chromium-review.googlesource.com/699614
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Reviewed-by: Cheng Wang <wangcheng@google.com>
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-10-04 22:21:36 +00:00
Frank Barchard
fecd741794 Port HammingDistance to SSSE3
Bug: libyuv:701
Test: BenchmarkHammingDistance_Opt
Change-Id: Ibdd5d382677ebef4f82a62e0d5c3b88614a3b6e4
Reviewed-on: https://chromium-review.googlesource.com/696290
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Cheng Wang <wangcheng@google.com>
2017-10-03 19:11:05 +00:00
Frank Barchard
bde789b176 Hamming Distance SSE2 and AVX2 optimized
Bug: None
Test: None
Change-Id: Id52663f9c957aac3172fba92d888ad1b041d5cf0
Reviewed-on: https://chromium-review.googlesource.com/692981
Reviewed-by: Cheng Wang <wangcheng@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-10-02 22:32:54 +00:00
Frank Barchard
311add63c2 CopyRow_NEON use ldp instead of ld1 for better performance.
Under cache thrashing circumstances, ldp/stp perform better than
ld1/st1 on QC820/QC821 CPUs.  Same performance when hitting cache.

Bug: libyuv:738
Test: LibYUVPlanarTest.TestCopySamples_Opt (445 ms)
Change-Id: Ib6a0a5d5e6a1b7ef667b9bb2edb39d681cf3614c
Reviewed-on: https://chromium-review.googlesource.com/691281
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Cheng Wang <wangcheng@google.com>
2017-09-29 01:52:29 +00:00
Frank Barchard
ccd6d6fc57 add TestCopySamples_Opt unittest as reference for TestScaleSamples_Opt
TestScaleSamples_Opt can be slow on ARM if the size of the buffer is 1 MB.
This test does a memcpy and behaves the same.

Bug: libyuv:738
Test: LibYUVPlanarTest.TestCopySamples_Opt
Change-Id: Ia9f30190ed76ea350ebe054c9b899d5268e7e135
Reviewed-on: https://chromium-review.googlesource.com/685751
Reviewed-by: Cheng Wang <wangcheng@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-09-27 19:04:12 +00:00
Henrik Kjellander
a49fb674e1 Remove kjellander@ and torbjorng@ from OWNERS.
torbjorng@ has left Google and kjellander@ will in a month.
Replacing remaining ownership (after some cleanup) with
phoglund@.

BUG=libyuv:739
NOTRY=True

Change-Id: I228f2d87008f5f9cbce1ac88dc51c7f2ad6192c0
Reviewed-on: https://chromium-review.googlesource.com/680934
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Henrik Kjellander <kjellander@chromium.org>
2017-09-26 18:48:09 +00:00
Frank Barchard
065217cb9a Roll chromium_revision 9e319197e5..ff3b31782d (502732:503850)
Change log: 9e319197e5..ff3b31782d
Full diff: 9e319197e5..ff3b31782d

Changed dependencies:
* src/base: 6afcd86a32..9b543d487c
* src/build: f3edcd4990..156ba982d7
* src/buildtools: cbc33b9c0a..f6d165d9d8
* src/ios: 86201d6b56..39c4b2fcf7
* src/testing: d7f8718a82..cc96d3d66b
* src/third_party: c1de82c542..72c52c224c
* src/third_party/catapult: 441164c72d..aa736cc76e
* src/tools: 7653ce02e1..eceb2c420b
DEPS diff: 9e319197e5..ff3b31782d/DEPS

Clang version changed 313222:313786
Details: 9e319197e5..ff3b31782d/tools/clang/scripts/update.py

TBR=kjellander@chromium.org
BUG=libyuv:737
TEST=gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\"mips64el\" mips_arch_variant=\"r6\" mips_use_msa=true is_component_build=true is_clang=true"
ninja -v -C out/Release libyuv_unittest

Change-Id: I44c37d2ac6b2d853cf4005beec87f81b888c7999
Reviewed-on: https://chromium-review.googlesource.com/679554
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-09-22 21:50:47 +00:00
Frank Barchard
0b0a891cb2 Change TestScaleSumSamples_C test to allow for some float error in sum.
The sum of floats can optimize differently with vectorization, producing
a different result between NEON and C.
Adjust the unittest to allow for some difference in the sum.

The NEON version is 8 samples at a time, so the test now rounds up
the number of values to multiple of 8.

TBR=kjellander@chromium.org
Bug: libyuv:717
Test: LibYUVPlanarTest.TestScaleSumSamples_Opt


Change-Id: I2a0783780c7e0f240f7a8e4700b2a4d3e6b52d87
Reviewed-on: https://chromium-review.googlesource.com/673708
Reviewed-by: Cheng Wang <wangcheng@google.com>
2017-09-22 18:58:11 +00:00
Frank Barchard
efbf15754a Step thru full color test by increments of 5 for better test speed.
Full color test is the slowest of the unittests, and not catching any
additional bugs at the moment.  Step thru range of 0 to 255 in steps of
5 to speed up the test.  255 is 3 * 5 * 17, so any of those primes would
hit 0 and 255 exactly.

Was LibYUVColorTest.TestFullYUV (896 ms)
Now LibYUVColorTest.TestFullYUV (212 ms)

TBR=kjellander@chromium.org
Bug: libyuv:736
Test: LibYUVColorTest.TestFullYUV
Change-Id: I5b55fb07ada0dc7bdc3c3c20569d36bf09bb3804
Reviewed-on: https://chromium-review.googlesource.com/672064
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-09-19 02:01:53 +00:00
Frank Barchard
3886069dc9 Roll chromium_revision 3a3410e0eb..9e319197e5 (502042:502732)
Change log: 3a3410e0eb..9e319197e5
Full diff: 3a3410e0eb..9e319197e5

Changed dependencies:
* src/base: b120cdc8d8..6afcd86a32
* src/build: 800cde0e9e..f3edcd4990
* src/ios: a4c7e58966..86201d6b56
* src/testing: 8ca56a609f..d7f8718a82
* src/third_party: 5d202b9b7d..c1de82c542
* src/third_party/catapult: 1a2a373481..441164c72d
* src/tools: 9069575d37..7653ce02e1
DEPS diff: 3a3410e0eb..9e319197e5/DEPS

Clang version changed 312679:313222
Details: 3a3410e0eb..9e319197e5/tools/clang/scripts/update.py

TBR=kjellander@chromium.org
BUG=libyuv:721, chromium:766322

Change-Id: I38430171fa76ade415fafe20edb2055181e12818
Reviewed-on: https://chromium-review.googlesource.com/672043
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-09-19 01:05:03 +00:00
Henrik Kjellander
5b1af9a335 Suppress UBsan infinite recursion error.
UBsan goes into an infinite recursion when __dynamic_cast instrumented with
"vptr". See crbug.com/609786.

Similar WebRTC change: https://codereview.webrtc.org/2983583002

BUG=None
TBR=fbarchard@chromium.org

Change-Id: Ia37635e639550d60f9a79df927447c7cfaacdc93
Reviewed-on: https://chromium-review.googlesource.com/671367
Commit-Queue: Henrik Kjellander <kjellander@chromium.org>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
2017-09-18 20:41:02 +00:00
Frank Barchard
00c501fe43 Cast xgetbv from int64 to int to avoid Visual C warning.
TBR=kjellander@chromium.org
Bug: libyuv:735
Test: try bots
Change-Id: I00dc06689cd0a23847865c0c8edeb538b0cc81ac
Reviewed-on: https://chromium-review.googlesource.com/669142
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-09-15 22:00:52 +00:00
Frank Barchard
7f4caafd9a Override compiler to c++11
gcc 4.8 does not support c++14 so override the default
c++14 that chromium is now set to.

TBR=kjellander@chromium.org
Bug: libyuv:734
Test: gn gen out/Release "--args=is_debug=false is_clang=false use_sysroot=false target_cpu=\"x64\""
Change-Id: Ic414c79fee90e89ee3539fd1a373da260aecdc2b
Reviewed-on: https://chromium-review.googlesource.com/668031
Reviewed-by: Frank Barchard <fbarchard@google.com>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
2017-09-15 21:45:47 +00:00
Henrik Kjellander
dd972e8659 Suppress gtest leak for memcheck
BUG=libyuv:729
TBR=fbarchard@chromium.org
NOTRY=True

Change-Id: Ica6bbdd5ff3112813fde61f9b335fd68fa61c731
Reviewed-on: https://chromium-review.googlesource.com/667105
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Henrik Kjellander <kjellander@chromium.org>
2017-09-15 06:19:16 +00:00
Frank Barchard
dfc8840639 Roll chromium_revision e0c00467d6..3a3410e0eb (501048:502042)
Change log: e0c00467d6..3a3410e0eb
Full diff: e0c00467d6..3a3410e0eb

Changed dependencies:
* src/base: 7b6dbc8d1f..b120cdc8d8
* src/build: d78169a36f..800cde0e9e
* src/ios: 32847e75d6..a4c7e58966
* src/testing: 52eccfe830..8ca56a609f
* src/third_party: 726415ed49..5d202b9b7d
* src/third_party/catapult: 99ec818780..1a2a373481
* src/third_party/ced/src: 910cca22d8..94c367a1fe
* src/tools: f3bc46f72e..9069575d37
DEPS diff: e0c00467d6..3a3410e0eb/DEPS

No update to Clang.

purpose of the roll is to fix a gcc build error with g++14 option.

TBR=kjellander@chromium.org
BUG=libyuv:734
TEST=try bots pass.
Change-Id: Ifad9fecf0b62ca4f06f918e96fc9734173aefd02
Reviewed-on: https://chromium-review.googlesource.com/667970
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-09-14 22:56:04 +00:00
Frank Barchard
0a3d23c898 fix clang-format-ing for row arm functions
TBR=kjellander@chromium.org
BUG=None
TEST=git cl lint

Change-Id: I45ecd7f8279981ba037dc051f521f6b6d5506f64
Reviewed-on: https://chromium-review.googlesource.com/664345
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-09-14 21:35:06 +00:00
Frank Barchard
753a91cbcb fix fmov build error on gcc 4.7 for neon64
TBR=kjellander@chromium.org
BUG=libyuv:732
TEST=LibYUVPlanarTest.TestScaleSumSamples_Opt

Change-Id: If80e9510ad5668b080b9384e656c0bd73cf5b4a6
Reviewed-on: https://chromium-review.googlesource.com/663764
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Frank Barchard <fbarchard@google.com>
Reviewed-by: Cheng Wang <wangcheng@google.com>
2017-09-12 22:46:33 +00:00
Frank Barchard
831da079eb Update msan instructions to show release build
The current documentation shows a debug build.
When you attempt that an assert is triggered suggesting
a release build.  Update the documentation to reflect that.

TBR=kjellander@chromium.org
BUG=libyuv:731
TEST=gn gen out/Deb^C "--args=is_debug=true is_msan=true"

Change-Id: Ib78e3a7859aa391ac359fa38234aaef0554d0df4
Reviewed-on: https://chromium-review.googlesource.com/663882
Reviewed-by: Cheng Wang <wangcheng@google.com>
2017-09-12 19:14:31 +00:00
Frank Barchard
80e27fc747 Add MaskCpuFlags(benchmark_cpu_info_) to unittest initialization
When command line --libyuv_cpu_info is used the individual tests
used to need to set the cpumask.  This CL moves that to the init
for each test class so the individual tests dont need to set it.

TBR=kjellander@chromium.org
BUG=libyuv:720
TEST=LibYUVBaseTest.TestCpuHas

Change-Id: I6ae180388debf6cf76be6df5b81cfffeb35ee2eb
Reviewed-on: https://chromium-review.googlesource.com/662367
Reviewed-by: Cheng Wang <wangcheng@google.com>
2017-09-12 19:13:06 +00:00
Mirko Bonadei
6e80fc10ab Roll chromium_revision 21e78fbe27..e0c00467d6 (500243:501048)
Change log: 21e78fbe27..e0c00467d6
Full diff: 21e78fbe27..e0c00467d6

Changed dependencies:
* src/base: bdaf4d9893..7b6dbc8d1f
* src/build: 92ccaf1432..d78169a36f
* src/ios: 436ef979f7..32847e75d6
* src/testing: dcfc1809e9..52eccfe830
* src/third_party: 36421e57a8..726415ed49
* src/third_party/catapult: c9667ecd29..99ec818780
* src/tools: 5d14bcccf1..f3bc46f72e
* src/tools/swarming_client: 72b6a2dc60..5e8001d9a7
DEPS diff: 21e78fbe27..e0c00467d6/DEPS

Clang version changed 310694:312679
Details: 21e78fbe27..e0c00467d6/tools/clang/scripts/update.py

TBR=kjellander@chromium.org
BUG=libyuv:727, chromium:763354

Change-Id: I3d2974de13d5a2c680f324790501661933eedcbe
Reviewed-on: https://chromium-review.googlesource.com/661497
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-09-12 00:12:00 +00:00
Frank Barchard
1200ef4a37 Gauss unittest reduce buffer sizes on stack
Reduce buffers for test to 640 from 1280 to avoid
bit stack warning.

TBR=kjellander@chromium.org
BUG=libyuv:730
TEST=LibYUVPlanarTest.TestGaussRow_Opt and LibYUVPlanarTest.TestGaussCol_Opt

Change-Id: I710af3e952f9a4d1c0c0c8f73922c1d98ad9aa29
Reviewed-on: https://chromium-review.googlesource.com/660662
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-09-11 21:59:43 +00:00
Frank Barchard
1e16cb5c38 SplitRGBPlane and MergeRGBPlane functions added
Converts packed RGB to planar and back.

TBR=kjellander@chromium.org
BUG=libyuv:728
TEST=MergeRGBPlane_Opt and SplitRGBPlane_Opt unittests added

Change-Id: Ida59af940afcb1fc4a48bbf62c714f592665c3cc
Reviewed-on: https://chromium-review.googlesource.com/658069
Reviewed-by: Frank Barchard <fbarchard@google.com>
Reviewed-by: Cheng Wang <wangcheng@google.com>
2017-09-11 21:02:04 +00:00
Frank Barchard
367c0d8f81 enable MSA for clang
clang version 6.0.0 (trunk 310694) is able to compile MSA code.
Previous versions had an issue with _msa_fill_w(v32)
In this CL the macro DISABLE_CLANG_MSA is not set, allowing clang
to build the full MSA source.

TBR=kjellander@chromium.org
BUG=libyuv:715
TEST=gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\"mips64el\" mips_arch_variant=\"r6\" mips_use_msa=true is_component_build=true is_clang=true"
ninja -v -C out/Release libyuv_unittest

Change-Id: I47401e3b1a3e4c57d9626ec2d3cd131c3ccf613c
Reviewed-on: https://chromium-review.googlesource.com/656501
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-09-07 23:50:12 +00:00
Henrik Kjellander
9c2748c7d0 CQ: Remove android_clang as default trybot
Android has been building with Clang by default for quite some
time since the NDK has deprecated GCC. The bot will go away shortly.

TBR=fbarchard@chromium.org
NOTRY=True

Change-Id: Ie4d80daf7f91f55aa4a27089e725960c0646e051
Reviewed-on: https://chromium-review.googlesource.com/654997
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Henrik Kjellander <kjellander@chromium.org>
2017-09-07 11:48:22 +00:00
Henrik Kjellander
a67c93eeb8 Roll chromium_revision da6245e7c4..21e78fbe27 (488751:500243) + fix DEPS
Manually change DEPS URL for src/tools/swarming_client to match Chromium
Similar to 4ccd9c1493%5E%21/#F0

Also add downloading of third_party/bazel/desugar since it's not required
by the build toolchain on Android.

Change log: da6245e7c4..21e78fbe27
Full diff: da6245e7c4..21e78fbe27

Changed dependencies:
* src/base: 8c06e7a9f6..bdaf4d9893
* src/build: 5a3f439e92..92ccaf1432
* src/buildtools: 5ad14542a6..cbc33b9c0a
* src/ios: e5a58b0b43..436ef979f7
* src/testing: ebf1c4622e..dcfc1809e9
* src/third_party: d58cf433a5..36421e57a8
* src/third_party/android_tools: https://chromium.googlesource.com/android_tools.git/+log/e9d4018e14..aadb2fed04
* src/third_party/catapult: 9629af7533..c9667ecd29
* src/third_party/googletest/src: 42bc671f47..7f8fefabed
* src/third_party/icu: 1fec0c83e9..08cb956852
* src/third_party/robolectric/robolectric: 2a0b6ba221..b02c65cc6d
* src/third_party/yasm/source/patched-yasm: 7da28c6c7c..b98114e18d
* src/tools: f79809d034..5d14bcccf1
* src/tools/swarming_client: a56c2b39ca..72b6a2dc60
DEPS diff: da6245e7c4..21e78fbe27/DEPS

Clang version changed 308728:310694
Details: da6245e7c4..21e78fbe27/tools/clang/scripts/update.py

TBR=fbarchard@google.com
BUG=None
NOTRY=True

Change-Id: Ic0fdefb7def1407e69e74d2c87e4316c323b383b
Reviewed-on: https://chromium-review.googlesource.com/654639
Commit-Queue: Henrik Kjellander <kjellander@chromium.org>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
2017-09-07 11:46:19 +00:00
Henrik Kjellander
50e4465cb4 Add psutil to vpython dependencies (used on builder bots)
This is copied from https://chromium-review.googlesource.com/639357
and should solve the psutil missing import problems
happening during Android test execution.

BUG=chromium:761720
NOTRY=True
TBR=fbarchard@chromium.org

Change-Id: I36c4febd6f2dcf6419dbc846ee4717b22e2525e6
Reviewed-on: https://chromium-review.googlesource.com/654600
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Henrik Kjellander <kjellander@chromium.org>
2017-09-07 07:21:25 +00:00
Frank Barchard
8f5e9cd9eb ScaleRowUp2_16_C port of NEON to C
Single pass upsample with bilinear filter.
NEON version optimized - Pixel Sailfish QC821

Was TestScaleRowUp2_16 (5741 ms)
Now TestScaleRowUp2_16 (4484 ms)
C   TestScaleRowUp2_16 (6555 ms)

TBR=kjellander@chromium.org
BUG=libyuv:718
TEST=LibYUVScaleTest.TestScaleRowUp2_16 (709 ms)

Change-Id: Ib04ceb53e0ab644a392c39c3396e313530161d92
Reviewed-on: https://chromium-review.googlesource.com/646701
Reviewed-by: Frank Barchard <fbarchard@google.com>
Reviewed-by: Cheng Wang <wangcheng@google.com>
2017-09-05 21:40:39 +00:00
Manojkumar Bhosale
2621c91bf1 Add MSA optimized HammingDistance and SumSquareError functions
TBR=kjellander@chromium.org
R=fbarchard@google.com

Bug:libyuv:634
Change-Id: Id0126ba5aff38817525b1efa6044f1dc2cfa1a36
Reviewed-on: https://chromium-review.googlesource.com/625739
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-09-05 21:32:33 +00:00