Alternatives to RGB24 and AYUV for working with GPU.
BUG=libyuv:832
TESTED=out/Release/libyuv_unittest --gtest_filter=*NV21To???24* --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=1000 --libyuv_flags=-1 --libyuv_cpu_info=-1
R=rrwinterton@gmail.com
Change-Id: I5559c63f4bd4c847492fcb1571f7b03c58146689
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/1501735
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
I422ToRGB24 is implemented as a C wrapper for Intel, calling
I422ToARGB and ARGBToRGB24. The ARGBToRGB24 for AVX2 requires 32
pixels.
This CL increases the width alignment required to use I422ToRGB24_AVX2
TBR=rrwinterton0gmail.com
Bug: libyuv:822, b:118386049
Change-Id: I4454f4eece33fbd5f593655f577c9ef5c00d1f63
Tested: locally tested with app that crashed using this function.
Reviewed-on: https://chromium-review.googlesource.com/c/1299931
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
It seems hopelessly broken, as no other project is using/maintaining it anymore
No-Try: True
Change-Id: I2affd8e68a9aecdd2de2cd10fee11afb2f1a390a
Reviewed-on: https://chromium-review.googlesource.com/c/1301502
Reviewed-by: Patrik Höglund <phoglund@chromium.org>
Commit-Queue: Oleh Prypin <oprypin@chromium.org>
Add jpeg to NV21 conversions, unittests and conversions
for I444, I422, I420 and I420 to NV21 needed for internals.
Bug: libyuv:820
Change-Id: Idf0f15f91307e80a82cd23943f6eed5508f13fe2
Tested: out/Release/libyuv_unittest --sandbox_unittests --gtest_filter=*MJ*
Reviewed-on: https://chromium-review.googlesource.com/c/1297710
Reviewed-by: Johann Koenig <johannkoenig@google.com>
This adds the ability to submit the CL only if the number of commits is over a certain threshold.
No-Try: True
Bug: chromium:892545
Change-Id: I70f12e63be6d26d101b81da1f9b3e80131bcbd16
Reviewed-on: https://chromium-review.googlesource.com/c/1273243
Reviewed-by: Patrik Höglund <phoglund@chromium.org>
Commit-Queue: Oleh Prypin <oprypin@chromium.org>
RAW is a big endian style RGB buffer with R first in memory, then G and B.
Convert NV21 and NV12 to RAW format.
Performance on SkylakeX for 720p with AVX2
I420ToRAW_Opt (388 ms)
H420ToRAW_Opt (371 ms)
NV12ToRAW_Opt (341 ms)
NV21ToRAW_Opt (339 ms)
SSSE3
I420ToRAW_Opt (507 ms)
H420ToRAW_Opt (481 ms)
NV12ToRAW_Opt (498 ms)
NV21ToRAW_Opt (493 ms)
C
I420ToRAW_Opt (2287 ms)
H420ToRAW_Opt (2246 ms)
NV12ToRAW_Opt (2191 ms)
NV21ToRAW_Opt (2204 ms)
Performance on Pixel 2 for 720p
out/Release/bin/run_libyuv_unittest -v -t 7200 --gtest_filter=*NV??ToR*Opt --libyuv_repeat=1000 --libyuv_width=1280 --libyuv_height=720
LibYUVConvertTest.NV12ToRGB24_Opt (1739 ms)
LibYUVConvertTest.NV21ToRGB24_Opt (1734 ms)
LibYUVConvertTest.NV12ToRAW_Opt (1719 ms)
LibYUVConvertTest.NV21ToRAW_Opt (1691 ms)
LibYUVConvertTest.NV12ToRGB565_Opt (2152 ms)
Bug: libyuv:778, b:117522975
Test: add new NV21ToRAW and NV12ToRAW tests
Change-Id: Ieabb68a2c6d8c26743e609c5696c81bb14fb253f
Reviewed-on: https://chromium-review.googlesource.com/c/1272615
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Fix parameter names to match definition and other functions
that use dst_rgb565 for the parameter.
BUG=libyuv:819, b:109762970
TESTED=locally built to ensure tests still pass.
Change-Id: I2ac20a999e60cda559a150932f0fc4075224b8a5
Reviewed-on: https://chromium-review.googlesource.com/c/1267795
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
This is mostly removing deprecated stuff and helping to run on LUCI
No-Try: True
Bug: chromium:892545
Change-Id: I93dbdd78d35532f65976de96cb724ee5a1a89983
Reviewed-on: https://chromium-review.googlesource.com/c/1264417
Reviewed-by: Patrik Höglund <phoglund@chromium.org>
Commit-Queue: Oleh Prypin <oprypin@chromium.org>
The original src_u calculation of FOURCC_I420 shifted half width if
crop_y is odd.
This CL fixs the problem and also add a test case for it.
Bug: b:115278653
Test: pass libyuv_unittest
Change-Id: Ia9732d22e64e13de26df47726ba44ad1c5a06484
Reviewed-on: https://chromium-review.googlesource.com/c/1258743
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Also remove --if-needed from clang update in DEPS.
Bug: libyuv:816, libyuv:814
Test: bots still build and local GN build works
Change-Id: I91998b8eee1b0cbe344f02a9369a1bbc45cb0140
Reviewed-on: https://chromium-review.googlesource.com/1204790
Reviewed-by: Nico Weber <thakis@chromium.org>
When loading or storing the data, the unaligned address will greatly degrade
the optimization performance, so non-aligned access instructions are required
on the loongson platform.
Also delete the optimization function:ScaleARGBFilterCols_MMI,
because it degraded the performance.
BUG=libyuv:804
R=fbarchard@chromium.org
Change-Id: If4c15886a21cdcbac7ae8b336292e4549acf1e47
Reviewed-on: https://chromium-review.googlesource.com/1164627
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
With several buckets, it appears the gerrit tryjobs plugin only
displays the first bucket. In that case we want to display the main
UCI bucket rather than the win stragglers in buildbot.
No-try: True
Tbr: fbarchard@chromium.org
Bug: chromium:869249
Change-Id: I50dcbf668d29becbe493601be8b9db089de78b85
Reviewed-on: https://chromium-review.googlesource.com/1170688
Reviewed-by: Patrik Höglund <phoglund@chromium.org>
Commit-Queue: Patrik Höglund <phoglund@chromium.org>
try_job can't be repeated, but buckets can. I think this does what
Ryan intended.
Also add a presubmit so this doesn't happen again.
No-try because CQ is broken, and even if it weren't nothing
would catch errors in cq.cfq directly.
No-try: True
Tbr: fbarchard@chromium.org
Bug: 869249
Change-Id: If84685f93275f5af691fc3fef77881156930b726
Reviewed-on: https://chromium-review.googlesource.com/1169820
Commit-Queue: Patrik Höglund <phoglund@chromium.org>
Reviewed-by: Patrik Höglund <phoglund@chromium.org>
All builders look WAI now, so flipping.
In particular, the android bots have been migrated in place to LUCI,
so the buildbot varients should no longer work.
No-Try: True
Bug:869249
Change-Id: Iab96cab5d92a106df67fc2458150c0dc93b77fc4
Reviewed-on: https://chromium-review.googlesource.com/1169593
Reviewed-by: Patrik Höglund <phoglund@chromium.org>
Commit-Queue: Patrik Höglund <phoglund@chromium.org>
This should solve the bug where LUCI win bots try to download the SDK
and fails.
Bug: chromium:869249
Change-Id: I374ecf6508d6e3978559ec3251b89faaec99edd6
Reviewed-on: https://chromium-review.googlesource.com/1168500
Reviewed-by: Ryan Tseng <hinoka@chromium.org>
This was changed in 21be9122aadf7824efe3fc19b2a09ff253a688e1.
Change-Id: I6c04dc92f673557e10c231bd090ec8aa88b6bee4
Reviewed-on: https://chromium-review.googlesource.com/1146183
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Otherwise it will inherit the empty python venv.
Bug: 869249
TBR: fbarchard
Change-Id: Ib77d116863f44f482b2cd7cbfaf71966ce2b7629
Reviewed-on: https://chromium-review.googlesource.com/1157535
Reviewed-by: Ryan Tseng <hinoka@chromium.org>
Commit-Queue: Ryan Tseng <hinoka@chromium.org>
Catapult uses this for win32con
Bug: 869249
Change-Id: I6775ff7834100d2b4a55eee3330369fc15b2f14f
Reviewed-on: https://chromium-review.googlesource.com/1157139
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Ryan Tseng <hinoka@chromium.org>
Currently, libyuv supports MIPS SIMD Arch(MSA),
but libyuv does not supports MultiMedia Instruction(MMI)(such as loongson3a platform).
In order to improve performance of libyuv on loongson3a platform,
this provides optimize 98 functions with mmi.
BUG=libyuv:804
Change-Id: I8947626009efad769b3103a867363ece25d79629
Reviewed-on: https://chromium-review.googlesource.com/1122064
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Legacy types can cause build errors with code that defines
them differently. Disable them by default. Allow the types
to be enabled with #define LIBYUV_LEGACY_TYPES
BUG=libyuv:808
TESTED=libyuv try bots still build
Change-Id: I48928329393f44a377cec781e645570b14569668
Reviewed-on: https://chromium-review.googlesource.com/1129558
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
the built in __msa_ld_b() expects a void * without const.
Cast pointers to void * to avoid build warning.
TBR=johannkoenig@google.com
Bug: libyuv:805
Change-Id: Iabc4820ecf4a3a7dcb0063e67ce276ae2a4f0501
Tested: 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
Reviewed-on: https://chromium-review.googlesource.com/1125400
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
xcode reports clang version 9. It does not appear to support inline
assembly using avx512 instructions.
Tested with cmake libyuv on Mac. Fails without this patch.
BUG=libyuv:789