Jay Civelli
fdad6299d6
Add a method to force the CPU flags
...
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>
2018-03-26 19:31:00 +00:00
Frank Barchard
004954c969
cpu disables for AVX 512 and unittest show decimal
...
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/957704
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2018-03-10 00:59:14 +00:00
Frank Barchard
3b81288ece
Remove Mips DSPR2 code
...
Bug: libyuv:765
Test: build for mips still passes
Change-Id: I99105ad3951d2210c0793e3b9241c178442fdc37
Reviewed-on: https://chromium-review.googlesource.com/826404
Reviewed-by: Weiyong Yao <braveyao@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2017-12-14 18:22:16 +00:00
Frank Barchard
3541e46a7e
Add H010ToARGB for 10 bit YUV to ARGB
...
Bug: libyuv:751
Test: LibYUVConvertTest.H010ToARGB_Opt
Change-Id: I668d3f3810e59a4fb6611503aae1c8edc7d596e7
Reviewed-on: https://chromium-review.googlesource.com/815015
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2017-12-07 20:17:50 +00:00
Frank Barchard
e26b0a7e0e
casting for c89 compatibility and lint cleanup
...
Bug: libyuv:756
Test: CFLAGS="-m32 -static -std=gnu89 -mno-sse -O2" CXXFLAGS="-m32 -x c -static -std=gnu99 -mno-sse -O2" make -f linux.mk libyuv.a
Change-Id: Ic362f93e01ccbb0bea14f361a58585e79297e7d2
Reviewed-on: https://chromium-review.googlesource.com/759423
Reviewed-by: Frank Barchard <fbarchard@google.com>
Reviewed-by: Patrik Höglund <phoglund@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-11-09 18:22:17 +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
7bffe5e1c5
lint warning fixes for CpuID
...
The CpuId function is a wrapper for the intrinsic, or
implemented with inline if unavailable. It had been
using uint32, but the intrinsics use int, so it was causing
casting and lint warnings. This change makes the internal
implementation use int.
Casting was also done for xgetbv, and the cast is simply
removed, and is not causing a build error.
MipCpuCaps was doing strlen to check for white space after the
instruction set. Arm also does this but with a hard coded offset.
This was causing a cast from size_t to int, which produced a lint
warning. The change removes the white space detect.
In theory the code could be used to detect SSE vs SSE2, and it would
need to check SSE is followed by a space or end of line. But this
code is only used on Arm and Mips, where there there is one form
of SIMD detected. e.g. MSA for mips. If a new instruction set is
added with a similar name, the write space check could be reintroduced.
But its more likely the code can be rewritten to use a better form
of detection by then. Or remove detection and require the instructions
BUG=libyuv:641
TEST=try bots build on all platforms without error and lint is clean
Change-Id: I9f55f8e57bba0f78571bdddbe63b945dea3e8809
Reviewed-on: https://chromium-review.googlesource.com/514524
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Cheng Wang <wangcheng@google.com>
Reviewed-by: Wan-Teh Chang <wtc@chromium.org>
2017-05-25 22:00:17 +00:00
Frank Barchard
54f2094a5e
Rename mips source files to dspr2.
...
Add MSA detect to unittest.
Change macro to disable DSPR2 code to LIBYUV_DISABLE_DSPR2
BUG=libyuv:634
TEST=try bots
Change-Id: I9e0aa2452204fc529bb6f9e6fd93c4e1c379bba6
Reviewed-on: https://chromium-review.googlesource.com/433463
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-01-27 23:11:43 +00:00
Frank Barchard
e62309f259
clang-format libyuv
...
BUG=libyuv:654
R=kjellander@chromium.org
Review URL: https://codereview.chromium.org/2469353005 .
2016-11-07 17:37:23 -08:00
Frank Barchard
fdcf524aac
Add f16c (halffloat) cpuid
...
R=wangcheng@google.com , hubbe@chromium.org
BUG=libyuv:560
Review URL: https://codereview.chromium.org/2418763006 .
2016-10-14 16:34:08 -07:00
Frank Barchard
198bce3959
Cast for clang-cl 64 bit build warnings in unittests
...
R=kjellander@chromium.org
BUG=libyuv:649
Review URL: https://codereview.chromium.org/2414763002 .
2016-10-12 13:09:57 -07:00
Frank Barchard
ade85fb55c
remove row.h from unittests
...
add SIMD_ALIGNED to unittest header.
BUG=libyuv:594
TESTED=local build passes with row.h removed from tests.
R=harryjin@google.com
Review URL: https://codereview.chromium.org/2001373002 .
2016-05-27 10:57:49 -07:00
Frank Barchard
0d880e5bc0
rename MIPS_DSPR2 to DSPR2 for consistency
...
When attempting to normalize function names to end in Row_SIMD it was made
harder with MIPS_DSPR2 naming convention.
Other CPUs do not include the vendor. This should be named consistently.
Removed the DISABLE_MIPS in favour of DISABLE_ASM for consistency with other
processors.
TBR=harryjin@google.com
BUG=libyuv:562
Review URL: https://codereview.chromium.org/1677633002 .
2016-02-05 14:49:54 -08:00
Frank Barchard
c629cb3afe
add command line cpu info to allow android neon test
...
in order to compare C and Neon code, a new command line flag is added.
historically environment variables controlled cpu features, but on
android apk it is easier to pass a command line option to disable cpu
optimizations.
R=harryjin@google.com
BUG=libyuv:516
Review URL: https://codereview.chromium.org/1407193009 .
2015-11-03 17:01:48 -08:00
Frank Barchard
1f1d140bb6
remove mips dsp detect
...
DSP code is not actually used, only DSPR2. Remove the detect.
TBR=harryjin@google.com
BUG=none
Review URL: https://codereview.chromium.org/1405043008 .
2015-11-03 16:57:40 -08:00
Frank Barchard
2844662e1c
Add avx512bw detection code
...
R=harryjin@google.com
BUG=libyuv:514
Review URL: https://codereview.chromium.org/1413463004 .
2015-10-26 14:42:49 -07:00
Frank Barchard
26db4de2ae
break up unittests into categories
...
R=harryjin@google.com
BUG=none
Review URL: https://codereview.chromium.org/1399523004 .
2015-10-13 16:01:07 -07:00
fbarchard@google.com
c52d66d7da
Detect asimd as same as Neon for Arm features. Used on Juno aarch64 linux.
...
BUG=361
TESTED=.\libyuv_unittest --gtest_filter=libyuvTest.TestLinuxNeon
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/31439004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1088 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-09-22 18:30:17 +00:00
fbarchard@google.com
d4fbd60169
expect avx2 compiler support means one of the avx2 functions exists.
...
BUG=none
TESTED=try bots
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/22299004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1076 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-09-08 18:29:46 +00:00
fbarchard@google.com
3224e43e25
Add a test that indicates the compiler is able to generate avx2 code.
...
BUG=none
TESTED=out\release_x64\libyuv_unittest --gtest_filter=libyuvTest.TestCompilerHasAVX2
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/24439004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1074 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-09-04 00:25:19 +00:00
fbarchard@google.com
996dacac87
unittest first checks if files exists for neon detection.
...
BUG=315
TESTED=untested
R=nfullagar@chromium.org , wuwang@google.com
Review URL: https://webrtc-codereview.appspot.com/9589005
git-svn-id: http://libyuv.googlecode.com/svn/trunk@981 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-03-07 23:22:24 +00:00
fbarchard@google.com
e35422d94b
Fix AVX2 detect and a performance stall for gcc/clang.
...
BUG=276
TEST=Cpu unittest
R=nfullagar@google.com , ryanpetrie@google.com
Review URL: https://webrtc-codereview.appspot.com/2401004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@817 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-21 18:10:59 +00:00
fbarchard@google.com
2bbb64df2c
FMA3 version of Polynomial
...
BUG=265
TEST=cpuid and Polynomial unittest
R=changjun.yang@intel.com
Review URL: https://webrtc-codereview.appspot.com/2217004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@790 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-16 16:42:19 +00:00
fbarchard@google.com
8c9de166a1
ERMS
...
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1265004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@625 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-28 09:33:26 +00:00
fbarchard@google.com
d8431003bb
movbe remove - not useful so far.
...
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1255004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@623 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-26 18:04:02 +00:00
fbarchard@google.com
cde587092f
Replace two spaces with one after .
...
BUG=none
TEST=lint
Review URL: https://webrtc-codereview.appspot.com/1063010
git-svn-id: http://libyuv.googlecode.com/svn/trunk@553 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-01-28 00:02:35 +00:00
fbarchard@google.com
aa64b6b14c
movbe instruction detect
...
BUG=none
TEST=cpu unittest
Review URL: https://webrtc-codereview.appspot.com/1027005
git-svn-id: http://libyuv.googlecode.com/svn/trunk@527 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-01-08 18:43:49 +00:00
fbarchard@google.com
ca41005256
mips version of SplitUV for nv12/21
...
BUG=126
TEST=rotate_test and cpu_test updated
Review URL: https://webrtc-codereview.appspot.com/879005
git-svn-id: http://libyuv.googlecode.com/svn/trunk@416 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-14 06:01:19 +00:00
fbarchard@google.com
c7277d08e8
Add convert_from_argb.h for all conversion functions from ARGB to something else.
...
BUG=none
TEST=convert_test
Review URL: https://webrtc-codereview.appspot.com/857014
git-svn-id: http://libyuv.googlecode.com/svn/trunk@408 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-11 23:10:53 +00:00
fbarchard@google.com
fc7314e86b
Add exports to allow libyuv to be built as a shared lib.
...
BUG=99
TEST=shared lib builds without impact and unittests link against import lib.
Review URL: https://webrtc-codereview.appspot.com/844005
git-svn-id: http://libyuv.googlecode.com/svn/trunk@379 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-09-27 02:17:51 +00:00
fbarchard@google.com
78070bc1ba
Added CPUID change to detect AVX2.
...
BUG=98
TEST=none
Review URL: https://webrtc-codereview.appspot.com/839004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@373 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-09-25 19:13:04 +00:00
fbarchard@google.com
7781d943b0
Disable V210 unittest that fails valgrind, and some warning fixes for android.
...
BUG=91
TEST=try
Review URL: https://webrtc-codereview.appspot.com/813004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@362 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-09-18 22:58:34 +00:00
fbarchard@google.com
b0c9797589
Update Copyright notice to follow new chromium conventions.
...
BUG=63
TEST=none
Review URL: https://webrtc-codereview.appspot.com/730004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@314 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-08-08 19:04:24 +00:00
fbarchard@google.com
b4a1182ffd
Add LIBYUV_SVNREVISION macro and planar unittest fix/improvement
...
BUG=30
TESTED=libyuvTest.TestVersion
Review URL: https://webrtc-codereview.appspot.com/619007
git-svn-id: http://libyuv.googlecode.com/svn/trunk@274 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-31 18:15:51 +00:00
fbarchard@google.com
7afffcc4d0
For cpu's with Neon, set arm as well. Make unittest allow testdata unaccessable but try proc/cpuinfo
...
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/610005
git-svn-id: http://libyuv.googlecode.com/svn/trunk@273 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-30 18:30:03 +00:00
fbarchard@google.com
ab41581844
Change cpu id constants to hex to indicate they are flags. Reserve values for future flags. make unittest print in hex. Add environment variables to disable sse42 and avx.
...
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/608006
git-svn-id: http://libyuv.googlecode.com/svn/trunk@272 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-30 15:56:32 +00:00
fbarchard@google.com
4ae6b46ce1
Add SSE42 and AVX detect
...
BUG=none
TEST=libyuvTest.TestCpuHas
Review URL: https://webrtc-codereview.appspot.com/607006
git-svn-id: http://libyuv.googlecode.com/svn/trunk@271 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-30 03:02:52 +00:00
fbarchard@google.com
8b14c5c4e4
Rewrite filtering for benefit of Mac as a single ASM block. Builds both 32 and 64 bit.
...
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/577004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@260 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-09 00:41:13 +00:00
fbarchard@google.com
0b0e91792f
libyuv::CpuId as function to reduce header dependencies
...
BUG=none
TEST=libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*Cpu*
Review URL: https://webrtc-codereview.appspot.com/566007
git-svn-id: http://libyuv.googlecode.com/svn/trunk@259 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-08 02:04:22 +00:00
fbarchard@google.com
d05ec087d9
expose __cpuid for gcc/visual c compatibility
...
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/574004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@258 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-07 22:36:39 +00:00
fbarchard@google.com
810cd91079
ARGBUnattenuateRow_SSE2 use reciprocal table and pmul
...
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/497001
git-svn-id: http://libyuv.googlecode.com/svn/trunk@244 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-20 20:15:27 +00:00
fbarchard@google.com
4d3bd8343b
unaligned sse4 djb2 cleanup
...
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/486001
git-svn-id: http://libyuv.googlecode.com/svn/trunk@238 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-06 00:27:09 +00:00
fbarchard@google.com
c5d44a0c5e
cpuid add sse41 and x86
...
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/485001
git-svn-id: http://libyuv.googlecode.com/svn/trunk@236 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-05 20:39:42 +00:00
fbarchard@google.com
2bc55fa320
unittest fixes for neon and convert_from include
...
BUG=11
TESTED=tested on windows when run from root of libyuv
Review URL: https://webrtc-codereview.appspot.com/426004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@199 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-02 16:59:42 +00:00
fbarchard@google.com
567244c003
minor fixups
...
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/388001
git-svn-id: http://libyuv.googlecode.com/svn/trunk@169 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-02-07 23:54:52 +00:00
fbarchard@google.com
56c1847fd5
bump version to match revision. add unittest
...
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/369016
git-svn-id: http://libyuv.googlecode.com/svn/trunk@159 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-26 22:37:31 +00:00
fbarchard@google.com
e3ebe7a5cd
Neon instructions detect without using NDK so it will work within Android, and on other linux arm based platforms and builds
...
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/358008
git-svn-id: http://libyuv.googlecode.com/svn/trunk@153 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-26 02:14:52 +00:00