Frank Barchard
2adb84e39e
make gflags command line parser optional
...
BUG=libyuv:691
TEST=gn gen out/Release "--args=is_debug=false target_cpu=\"x64\" libyuv_include_tests=true"
Change-Id: Ib481189be884c34d9bbc30bfcf71c7969c6f4dae
Reviewed-on: https://chromium-review.googlesource.com/452736
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-03-14 01:52:52 +00:00
Nico Weber
0741a3d704
Unbreak Chromium build after https://chromium-review.googlesource.com/c/446667/
...
Without this, `gn gen --check` for Chromium would fail with errors like:
$ gn gen --check out/gn
ERROR at //cc/resources/video_resource_updater.cc:25:11: Can't include
this header from here.
#include "third_party/libyuv/include/libyuv.h"
^----------------------------------
The target:
//cc:cc
is including a file from the target:
//third_party/libyuv:libyuv_internal
[...]
Dependency chain (there may also be others):
//cc:cc -->
//third_party/libyuv:libyuv --[private]-->
//third_party/libyuv:libyuv_internal
BUG=libyuv:685, chromium:692600
Change-Id: I5e5bde2f0e4802d70bfd438793eb2460437398ee
Reviewed-on: https://chromium-review.googlesource.com/449934
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
2017-03-05 00:32:09 +00:00
Frank Barchard
bbcd785586
win64 builds use clangcl to enable optimized codepath
...
BUG=libyuv:685, chromium:692600
TEST=gn gen out\Release "--args=is_debug=false"
ninja -C out\Release
out\release\libyuv_unittest --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=-1 --libyuv_cpu_info=-1 --gtest_filter=*ARGBToI420_Opt
Change-Id: I12ec09ae2e9bc448252aa46b137f52916403865d
Reviewed-on: https://chromium-review.googlesource.com/446667
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-03-04 00:04:35 +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
Manojkumar Bhosale
6fa5e4eb78
Add MSA optimized TransposeWx8_MSA and TransposeUVWx8_MSA functions
...
R=fbarchard@google.com
BUG=libyuv:634
Performance Gain (vs C vectorized)
TransposeWx8_MSA - ~2.7x
TransposeWx8_Any_MSA - ~2.1x
TransposeUVWx8_MSA - ~2.5x
TransposeUVWx8_Any_MSA - ~2.7x
Performance Gain (vs C non-vectorized)
TransposeWx8_MSA - ~4.6x
TransposeWx8_Any_MSA - ~2.9x
TransposeUVWx8_MSA - ~4.4x
TransposeUVWx8_Any_MSA - ~3.7x
Review URL: https://codereview.chromium.org/2553403002 .
2016-12-15 10:06:01 +05:30
Manojkumar Bhosale
56b5bbb0be
Add MSA optimized ARGB scaling functions
...
R=fbarchard@google.com
BUG=libyuv:634
Performance Gain (vs C vectorized)
ScaleARGBRowDown2_MSA - ~2.6x
ScaleARGBRowDown2Linear_MSA - ~7.9x
ScaleARGBRowDown2Box_MSA - ~3.7x
ScaleARGBRowDownEven_MSA - ~1.2x
ScaleARGBRowDownEvenBox_MSA - ~3.5x
ScaleARGBRowDown2_Any_MSA - ~2.6x
ScaleARGBRowDown2Linear_Any_MSA - ~7.9x
ScaleARGBRowDown2Box_Any_MSA - ~3.6x
ScaleARGBRowDownEven_Any_MSA - ~1.2x
ScaleARGBRowDownEvenBox_Any_MSA - ~3.5x
Performance Gain (vs C non-vectorized)
ScaleARGBRowDown2_MSA - 2.6x
ScaleARGBRowDown2Linear_MSA - 13.5x
ScaleARGBRowDown2Box_MSA - 5.8x
ScaleARGBRowDownEven_MSA - 1.2x
ScaleARGBRowDownEvenBox_MSA - 3.7x
ScaleARGBRowDown2_Any_MSA - 2.6x
ScaleARGBRowDown2Linear_Any_MSA - 13.5x
ScaleARGBRowDown2Box_Any_MSA - 5.3x
ScaleARGBRowDownEven_Any_MSA - 1.2x
ScaleARGBRowDownEvenBox_Any_MSA - 3.7x
Review URL: https://codereview.chromium.org/2527983002 .
2016-12-07 11:47:15 +05:30
Frank Barchard
f553db2d30
HalfFloatPlane unittest for denormal half floats
...
Halffloats have a limited range. It shouldnt normally come up, but if the scale value passed in produces a small value, the half floats will be denormals, which are slow and/or flust to zero. This test ensures they behave the same in C and SIMD and tests the performance of denormals.
TEST=TestHalfFloatPlane_denormal
BUG=libyuv:560
R=hubbe@chromium.org
Review URL: https://codereview.chromium.org/2424233004 .
2016-10-19 18:13:01 -07:00
Frank Barchard
1cd384140d
GN: Add default target
...
This reduces the number of objects when not specifying a
build target during compile. This is especially significant for Android
where the number of objects decreases from 3322 to 1761.
BUG=libyuv:644
R=fbarchard@google.com
Review URL: https://codereview.chromium.org/2395743002 .
2016-10-05 11:17:28 -07:00
Frank Barchard
4b3b310e66
Enable optimize max for GN builds + update docs
...
Optimize max enables O2 for official builds. Normally release builds
are O2 but the official build is Os, affecting performance.
The GYP file was previously updated to enable optimize max,
which enables ltcg and O2.
Documentation updated to show GN builds in docs/getting_started.md
BUG=libyuv:642
R=kjellander@chromium.org
Review URL: https://codereview.chromium.org/2386093003 .
2016-10-04 11:50:19 -07:00
Frank Barchard
c5323b0fdc
Add MIPS SIMD Arch (MSA) optimized MirrorRow function
...
As per the preparation patch added in Chromium sources at,
2150943003: Add MIPS SIMD Arch (MSA) build flags for GYP/GN builds
This patch adds first MSA optimized function in libYUV project.
BUG=libyuv:634
R=fbarchard@google.com
Review URL: https://codereview.chromium.org/2285683002 .
2016-09-22 16:12:22 -07:00
Frank Barchard
5da918b48d
Enable NEON for unittests on ios 64 bit.
...
TBR=kjellander@chromium.org
BUG=libyuv:637, chromium:646279
Review URL: https://codereview.chromium.org/2340933005 .
2016-09-16 16:46:46 -07:00
Edward Lemur
d8fe1ad6bb
GN: Add GN test targets.
...
BUG=libyuv:523
R=fbarchard@google.com , kjellander@chromium.org , magjed@chromium.org
Review URL: https://codereview.chromium.org/2317073002 .
2016-09-13 12:02:40 +02:00
Nico Weber
68786ccd53
gn: Don't let libyuv depend on libjpeg_turbo on iOS.
...
This dependency doesn't exist in the gyp build either, and it causes
problems on builds building 'all'.
BUG=633316
R=kjellander@chromium.org
Review URL: https://codereview.chromium.org/2201963002 .
2016-08-02 09:52:52 -04:00
Frank Barchard
e84dcb43bd
Convert libyuv to a static library in GN.
...
We have discovered that this should increase build performance in some cases.
http://crbug.com/627637
R=fbarchard@google.com
Review URL: https://codereview.chromium.org/2163213005 .
2016-07-20 16:33:52 -07:00
Frank Barchard
e74086bfe3
Remove DISABLE_X86 from build.gn
...
Fix for duplicate define
../../third_party/libyuv/include/libyuv/scale_row.h:29:9: error: 'LIBYUV_DISABLE_X86' macro redefined [-Werror,-Wmacro-redefined]
^
GYP version relys on headers disabling the optimization.
This CL does the same for BUILD.gn
TBR=kjellander@chromium.org
BUG=libyuv:625
Review URL: https://codereview.chromium.org/2149823003 .
2016-07-14 12:14:22 -07:00
Frank Barchard
5dbfd6d8e6
enable chromium code for GN, bumping warning level.
...
previously gyp enabled
'chromium_code': 1,
for stricter warnings, but GN disabled warnings:
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [ "//build/config/compiler:no_chromium_code" ]
This CL enables strict warnings for GN as well as GYP.
R=rsesek@chromium.org
BUG=libyuv:617
Review URL: https://codereview.chromium.org/2130583003 .
2016-07-07 10:47:06 -07:00
Frank Barchard
ddbc63f7b9
Add //build/config/BUILD.gn to exec whitelist for GN.
...
Affected Linux GN build, not Windows.
R=kjellander@chromium.org
BUG=libyuv:583
TESTED=gn gen out/Debug --args=is_debug=true
Review URL: https://codereview.chromium.org/1866743002 .
2016-04-06 11:23:28 -07:00
Frank Barchard
71b60123dc
GN: Fix neon files not being included for arm64
...
BUG=568883
R=fbarchard@chromium.org
Review URL: https://codereview.chromium.org/1516653004 .
2015-12-14 11:48:06 -08:00
Frank Barchard
41c6cc7eb9
Enable optimization when compiling for NaCl with GN
...
PNaCl code validation fails when compiling with -O0 due to the linked
bug. Always enable optimization when compiling for NaCl to workaround
this bug.
BUG=538243
R=fbarchard@chromium.org
Review URL: https://codereview.chromium.org/1403813002 .
2015-10-12 14:52:05 -07:00
Frank Barchard
602fdbef94
Add a sanitizer.gni import to the GN build.
...
The is_*san build flags are moving to this .gni file. This patch will allow
libyuv to continue building when this move happens.
R=brettw@chromium.org , harryjin@google.com
BUG=none
Review URL: https://codereview.chromium.org/1314833005 .
2015-09-09 15:01:38 -07:00
Frank Barchard
2fa4f5a3ea
Adds files and functions for rotate any, but does not hook them up to the caller.
...
rotate any
R=harryjin@google.com
BUG=libyuv:464
Review URL: https://webrtc-codereview.appspot.com/53769004 .
2015-07-27 10:32:08 -07:00
Frank Barchard
3d190ee9f1
break rotate into files by cpu in preparation for optimization.
...
R=bcornell@google.com
BUG=libyuv:464
Review URL: https://webrtc-codereview.appspot.com/51289004 .
2015-07-14 10:23:10 -07:00
fbarchard@google.com
2e9f3e5cf5
rename source files from row_posix.cc etc to row_gcc.cc to avoid gyp build filtering out source files from build when on windows with clang. The source code contained in row_gcc.cc is gcc syntax inline assembly available for any platform that supports gcc or clang for intel cpus.
...
BUG=440
TESTED=try bots
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/56579004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1430 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-09 17:27:52 +00:00
johannkoenig@google.com
da6ee35e0c
Revert "libyuv: Include foo_posix.cc in the gn build, like it's done in the gyp build."
...
BUG=496928
R=thakis@chromium.org
Review URL: https://webrtc-codereview.appspot.com/58399004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1424 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-05 23:55:57 +00:00
johannkoenig@google.com
d7242b5b6c
libyuv: Include foo_posix.cc in the gn build, like it's done in the gyp build.
...
This is required to get things linking in clang/win. Medium-term, we should
clean libyuv up to not require _posix files on non-posix.
Reviewed at https://webrtc-codereview.appspot.com/52069004/
BUG=496928
Review URL: https://webrtc-codereview.appspot.com/54689004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1423 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-05 20:20:29 +00:00
fbarchard@google.com
416c48dba7
add new scale_any to build files.
...
BUG=419
TESTED=untested
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/44969004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1350 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-30 23:20:14 +00:00
kjellander@google.com
0e53718e01
Fix standalone GN build.
...
Add dependencies and move the neon target to only be
specified for ARM builds so a standalone GN build can be
performed.
TESTED=Ran:
gn gen out/Release --args=is_debug=false
ninja -C out/Release
gn gen out/Debug --args=is_debug=true
ninja -C out/Debug
gn gen out/Debug --args="is_debug=true os=\"android\" "cpu_arch=\"arm\""
ninja -C out/Debug
gn gen out/Release --args="is_debug=false os=\"android\" "cpu_arch=\"arm\""
ninja -C out/Release
R=fbarchard@google.com
Review URL: https://webrtc-codereview.appspot.com/42289004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1317 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-10 08:16:49 +00:00
fbarchard@google.com
7ed2bb1227
Add Neon source files to libyuv GN build
...
BUG=none
TESTED=untested
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/42149004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1303 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-27 22:12:17 +00:00
fbarchard@google.com
0887315390
Remove bayer format support from libyuv. This format is very rare and used on legacy hardware. Its not well optimized and has bugs related to odd widths. Removing the format will allow tests to pass under more circumstances, run faster and allow focus on higher priority quality and performance issues.
...
BUG=301
TESTED=local unittests build/pass on windows gyp build.
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/38059004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1270 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-09 19:58:19 +00:00
fbarchard@google.com
d204db647e
Build libyuv w/ no_chromium_code in GN.
...
This disables a couple of windows warnings that will otherwise
fire on Win64, causing compile failures.
BUG=432375
suppress size_t -> int warnings
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/24299004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1171 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-11-18 01:10:14 +00:00
fbarchard@google.com
5a09c3ef2a
remove ppapi/c/pp_macros.h dependency and assume m37 is available.
...
BUG=374
TESTED=untested
R=nfullagar@chromium.org , tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/26769005
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1130 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-20 23:54:14 +00:00
brettw@google.com
a7735b9ab3
Rename GN public variables.
...
direct_dependent_configs => public_configs
Code review: https://webrtc-codereview.appspot.com/22749004/
R=fbarchard
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1094 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-09-26 21:46:47 +00:00
fbarchard@google.com
fefc694ee9
Update GN build to refer to ppapi target. This allows the inclusion of the pp_macros header when running in gn's header check mode.
...
BUG=none
TESTED=untested
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/26389004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1077 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-09-08 23:40:37 +00:00
kjellander@google.com
103427718a
Disable assembly optimizations in MemorySanitizer builds.
...
BUG=chromium:344505, chromium:373739
R=kjellander@google.com , mflodman@chromium.org
Review URL: https://webrtc-codereview.appspot.com/14849004
Patch from Sergey Matveev <earthdok@chromium.org>.
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1028 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-07-03 18:39:32 +00:00
fbarchard@google.com
40a1d85579
enable neon in build.gn
...
BUG=none
TESTED=untested
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/19539007
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1007 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-05-23 22:30:57 +00:00
fbarchard@google.com
4a1836050d
Update libyuv build toolchain.
...
Download and use GN similar to how WebRTC uses it
for GYP/ninja generation
Similar changes as done in
https://webrtc-codereview.appspot.com/6939004
Add support for VS2013 compilation using the
Chromium standalone toolchain. Similar changes:
https://webrtc-codereview.appspot.com/9769004
Fix the valgrind wrapper script similar to
https://webrtc-codereview.appspot.com/5589006
https://webrtc-codereview.appspot.com/6939004
Remove no longer needed cygwin mount hook.
TEST=All trybots except iOS are passing.
Those will have to be fixed in a future CL.
BUG=310
TESTED=gclient sync on osx/ios
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/10849004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@991 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-03-28 17:26:06 +00:00