2927 Commits

Author SHA1 Message Date
Frank Barchard
94644361b4 row_win.cc rewrite into intrinsics
- remove inline asm which was only for 32 bit
- add ARGBToYMatrixRow_AVX2
- add gn flag libyuv_enable_rowwin=true

Example of building with GN and Ninja:

Without the new flag:
  gn gen out/Release "--args=is_debug=false"
  ninja -C out/Release

With the new flag:
 gn gen out/Release "--args=is_debug=false libyuv_enable_rowwin=true"
 ninja -C out/Release

Bug: libyuv:42280806, 477295731, libyuv:42280902, libyuv:439628764
R=​dalecurtis@chromium.org, rrwinterton@gmail.com

Change-Id: I451bf814622fba690005c02fbf5816819c6a08c2
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7765790
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2026-04-15 19:53:16 -07:00
Frank Barchard
0d8494abc0 Add Bazel build support
Change-Id: Idf205997010a95f975dbd347e268e36c2072f797
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7745020
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2026-04-15 18:20:26 -07:00
Frank Barchard
e034c41661 Port ARGBToUVMatrixRow from AVX2 to AVX512BW
Benchmark on Icelake Xeon
Now AVX512BW:
[       OK ] LibYUVConvertTest.ARGBToNV12_Opt (1723 ms)
Was AVX2:
[       OK ] LibYUVConvertTest.ARGBToNV12_Opt (2144 ms)

- Added `ARGBToUVMatrixRow_AVX512BW` implementation in `source/row_gcc.cc`.
- Added corresponding `ARGBToUVRow_AVX512BW` and `ABGRToUVRow_AVX512BW` functions.
- Added unaligned wrappers `ARGBToUVRow_Any_AVX512BW` and `ABGRToUVRow_Any_AVX512BW` in `source/row_any.cc`.
- Updated `source/row_any.cc` to correctly size `vin` and `vout` buffers for AVX512BW width and adjusted the `ANY12MS` and `ANY12S` macros to handle `MASK=63`.
- Updated `include/libyuv/row.h` with the required AVX512BW headers and definitions, scoped appropriately.
- Wired all callers of `ARGBToUVRow_AVX2` and related functions in `source/convert.cc` and `source/convert_from_argb.cc` to dynamically use the `AVX512BW` implementations if the CPU flag indicates AVX-512BW support.
- Optimized AVX-512 code to generate the `-1` multiplier in a single instruction (`vpternlogd`) and reused it across word (`vpmaddwd`) dot products. Handled the resulting negation by replacing a subtraction with `vpaddw` offset adjustment.

Bug: 477295731
R=dalecurtis@chromium.org, rrwinterton@gmail.com

Change-Id: Ida5fb27e59ae4c1c3824737f009b80549cd20a06
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7763257
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2026-04-14 16:15:31 -07:00
Frank Barchard
cbc64c353c Port ARGBToYRow_AVX2 usages to dynamically use ARGBToYRow_AVX512BW
I have successfully ported the usage of ARGBToYRow_AVX2 to dynamically detect and utilize ARGBToYRow_AVX512BW when available.

  Here's a summary of the changes:
   1. Source Modifications: In both source/convert.cc and source/convert_from_argb.cc, I searched for all references where ARGBToYRow_AVX2 was
      being conditionally used (which operates on 32 pixels).
   2. AVX512BW Detection: Immediately following those blocks, I injected a new check for kCpuHasAVX512BW. If the CPU flag is present, the logic
      now utilizes ARGBToYRow_Any_AVX512BW by default, falling back to the fully aligned ARGBToYRow_AVX512BW when the width is aligned to 64
      bytes.
   3. Profiling: After building and compiling the tests (doyuv3x), I validated the change using perfyuv3 ARGBToNV12_Opt | cat. The test
      successfully executed and the performance profile indicated that ARGBToYRow_AVX512BW successfully executed (taking up ~18% of CPU cycles,
      replacing the previous AVX2 specific instruction overhead for the Y row extraction).

  The HAS_ARGBTOYROW_AVX512BW macro implementation now fully supports all AVX2 conversion paths to utilize AVX512BW when the system processor
  flags allow it!

R=richard, rrwinterton@gmail.com

Change-Id: Iad811e12d301f5621e6f6d039105420861ade43e
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7760779
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2026-04-14 11:42:59 -07:00
Frank Barchard
59ca5d8074 Fix parameter names and comments for ARGB/BGRA/RGBA/ABGR functions
In all functions that start with ARGB, BGRA, RGBA or ABGR in the include/libyuv/ headers, make sure the parameter variable name has the same 4 letters, but lower case, and the comment before the function should have the same matching name. Then make sure the implementation in source/ folder has the same variable names.

Change-Id: Idadbbbb993156eea16e318719f4888cb3bed5f6a
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7760057
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2026-04-13 18:28:37 -07:00
Frank Barchard
893eacf9b4 ARGBToY for AVX512
- add ARGBToYMatrixRow_AVX512BW
- refactor SSE and AVX to use Matrix functions, making old functions
  call the new ones.

Zen5 1280x720
Was AVX2   LibYUVConvertTest.ARGBToI444_Opt (1125 ms)
Now AVX512 LibYUVConvertTest.ARGBToI444_Opt (641 ms)

Details by Gemini:
  1. Created 3 new Matrix functions:
    Added ARGBToYMatrixRow_SSSE3, ARGBToYMatrixRow_AVX2, and
    ARGBToYMatrixRow_AVX512BW to source/row_gcc.cc. These take the
    const struct ArgbConstants* c parameter similarly to
    ARGBToUV444MatrixRow_*. The x86 vector instructions dynamically
    calculate the needed values using the properties of the constants
    struct, including using vpmaddwd inside the AVX512 code to offset
    the lack of a native vphaddw.

  2. Replaced Old Functions with Wrappers:
    Modified the existing implementations of ARGBToYRow_SSSE3,
    ARGBToYJRow_SSSE3, ABGRToYRow_SSSE3, ABGRToYJRow_SSSE3,
    RGBAToYRow_SSSE3, RGBAToYJRow_SSSE3, BGRAToYRow_SSSE3 (and their
    _AVX2 equivalents) in source/row_gcc.cc to act as inline wrappers
    calling the new ARGBToYMatrixRow_* functions, passing the right
    matrix parameters (e.g. &kArgbI601Constants, &kArgbJPEGConstants,
    &kAbgrI601Constants).

  3. Added row_any.cc Handlers:
    Added ANY11MC definitions to source/row_any.cc to autogenerate
    ARGBToYMatrixRow_Any_SSSE3, ARGBToYMatrixRow_Any_AVX2, and
    ARGBToYMatrixRow_Any_AVX512BW which safely handles non-aligned
    tails.

  4. Updated include/libyuv/row.h:
    Updated the headers with the proper void declarations for all newly
    generated Matrix and Any_ variants. Also defined
    HAS_ARGBTOYROW_AVX512BW in the CPU macros.

  5. Tested the Implementations:
    Compiled and tested on Linux x86, which resulted in all tests passing
    cleanly. Also successfully completed all Windows 32-bit build checks
    ensuring 32-bit regression prevention without issues.

Bug: 477295731
Change-Id: I4f5eec9a961e24a9d760d0a1c0810fb5e29a0bd1
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7759494
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2026-04-13 17:26:07 -07:00
Frank Barchard
644251f252 Fix buffer sizes in ANY macros and ANY11MC typo
Increases buffer sizes from 128 to 256 in ANY11, ANY11C, ANY11MC, ANY12,
and ANY12M macros to safely accommodate AVX512BW processing which can
write up to 256 bytes per operation.

Bug: libyuv:42280902, libyuv:502250231, 501882928

Change-Id: Icfba1982dc5fb6545255464f7decb2baec7be90f
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7758060
Reviewed-by: James Zern <jzern@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2026-04-13 13:01:49 -07:00
Frank Barchard
5cfaa44d71 Replace strtok_r with strchr in RISC-V CPU capability detection
This fixes a build failure on bare-metal toolchains like
riscv64-unknown-elf-clang++ where strtok_r may be undeclared.

Bug: 477295731
Change-Id: If4edd6c6d2e975ae34278f479700ef9b996c0a3e
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7744872
Reviewed-by: James Zern <jzern@google.com>
2026-04-10 12:33:43 -07:00
Frank Barchard
5b5a2f6b92 Fix 'ghost AVX512' detection on Alder Lake CPUs
Adds a check for the AVX512F feature bit (cpu_info7[1] & 0x00010000)
before enabling AVX512 features. Alder Lake CPUs can report OS support
for YMM/ZMM but not actually support AVX512F, leading to incorrect
capability detection and crashes.

Bug: libyuv:500318522
Change-Id: I84167ee3fcfc7a2572afba148bbb275bd3ccb1e5
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7746229
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
2026-04-09 17:52:24 -07:00
Frank Barchard
4f4e1ac553 Fix 2 failing golden tests
- Add ifdef for LIBYUV_UNLIMITED_DATA

Fixed by Gemini just telling it how to build and run the test and to fix it.

Bug: libyuv:353545922
Change-Id: I117a25b75b9616ee2ce6122aa163c2085ed4dc7d
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7742120
Reviewed-by: James Zern <jzern@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2026-04-09 11:51:13 -07:00
Sam Maier
e3ceea1e67 Forward-declare ArgbConstants in convert.h to fix visibility error
The libyuv into Chromium roller is currently broken, see bug 500795092.

This change adds a forward declaration for struct ArgbConstants in
include/libyuv/convert.h. This resolves a -Wvisibility error where the
struct was being declared within a function prototype, making it
invisible outside that scope and breaking automated binding generation
(e.g., for crabbyavif).

Verified building crabbyavif_libyuv_bindings locally and this patch
fixed it.

Bug: 500795092
Change-Id: Ie0126650ab346940f4610bd4d2e8a5b3ef9ce103
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7739974
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
2026-04-09 08:53:56 -07:00
Frank Barchard
4c3d7d517a ARGBToUV444 for AVX512
1.27x faster on AMD Zen5 (turin)

Now AVX512
perf record ./libyuv_test '--gunit_filter=*ARGBToI444_Opt' --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=10000 --libyuv_flags=-1 --libyuv_cpu_info=-1

[       OK ] LibYUVConvertTest.ARGBToI444_Opt (1071 ms)
Overhead  Symbol
  53.49%  ARGBToYRow_AVX2
  44.70%  ARGBToUV444Row_AVX512BW

Was AVX2
[       OK ] LibYUVConvertTest.ARGBToI444_Opt (1369 ms)
  61.06%  ARGBToUV444Row_AVX2
  37.67%  ARGBToYRow_AVX2

Bug:  libyuv:42280902
Change-Id: I306fbac656d6f7834ce1559e86d01eb34931ec3c
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7738362
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
2026-04-08 19:25:41 -07:00
Sam Maier
7903a6c632 Fix deprecated usage of strtok
The latest Android NDK marks strtok as deprecated and suggests using
strtok_r instead.

Bug: 477295731
Change-Id: I2b20a2ae0a9e19ec93e31669ec380802e6902090
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7739107
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2026-04-08 11:34:51 -07:00
Dale Curtis
1170363ce5 Add Gemini implementation for NEON32 RGB to YUV matrix operations
These are about 25% faster than the C versions.

Bug: libyuv:42280902

Change-Id: I8b298670ee5f3ed5db35527fc41d6d9a51b020a1
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7573682
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
2026-03-23 16:30:44 -07:00
Frank Barchard
4183733af5 Rename MergeUVRow_ variable to MergeUVRow
Bug:  libyuv:42280902
Change-Id: I9935bf958b901ddf84cf91b2097c8cd5d6efadde
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7683070
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
2026-03-18 17:18:25 -07:00
Dale Curtis
b1cacfb38f Unify X86/X64 versions of ARGBToI4xxMatrix functions
Change-Id: Iead13414414543e5f10ba9ba47a6ceaeb3113dee
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7562443
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2026-03-18 16:27:07 -07:00
Dale Curtis
f69a479f04 Add ARGBToNV12Matrix implementation
This one reuses the SIMD implementations for MergeUVRow_ from the
existing ARGBToNV12 functions.

Bug: libyuv:42280902
Change-Id: If0a4be133d657ed0262f29fdd568dac90b49636c
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7564317
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
2026-03-18 16:26:59 -07:00
Dale Curtis
2c21d57319 Add ABGR versions of the ArgbConstants structures
This allows for ABGR conversion using the same methods

Bug: libyuv:42280902
Change-Id: I5566e3150b30573a2326a900ce31ab095f8935f9
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7564316
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2026-03-17 17:28:51 -07:00
Dale Curtis
30809ff64a Add ARGBToI4xxMatrix variants
This was implemented by Gemini followed by manual review and some
tweaking for style. The 601 and JPEG constants are fully verified
against the existing non-matrix implementations. On x86 the C-only
versions appear to be about 25% slower than the optimized ones.

Bug: libyuv:42280902
Change-Id: Ia5b7cb499bad5c76faec53f36086ebb18f2b530f
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7512030
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
2026-03-04 10:55:06 -08:00
Victor Hugo Vianna Silva
6067afde56 Roll chromium_revision 30d4d9c779..2fec1883d8 (1554090:1584384)
Change log: 30d4d9c779..2fec1883d8
Full diff: 30d4d9c779..2fec1883d8

Changed dependencies
* android_sdk_platform-tools_vesion: mjFmRj7k_XR9yj60pYbr9mG38FyEbU5oWdU56bZQ5cwC..qTD9QdBlBf3dyHsN1lJ0RH6AhHxR42Hmg2Ih-Vj4zIEC
* fuchsia_vesion: version:30.20251204.1.1..version:31.20260204.7.1
* gn_vesion: git_revision:0eb071f600702e6e235137ba133ee8834aeece83..git_revision:304bbef6c7e9a86630c12986b99c8654eb7fe648
* siso_vesion: git_revision:038ddf6e901c8f82dfd917b91a4551e233a3e6ae..git_revision:9863d88c26094a24fb848f8994da81e005810c76
* src/build: daa16e7b52..bc3e93b3c4
* src/buildtools: eca5f0685c..6a18683f55
* src/buildtools/linux64: git_revision:0eb071f600702e6e235137ba133ee8834aeece83..git_revision:304bbef6c7e9a86630c12986b99c8654eb7fe648
* src/buildtools/mac: git_revision:0eb071f600702e6e235137ba133ee8834aeece83..git_revision:304bbef6c7e9a86630c12986b99c8654eb7fe648
* src/buildtools/win: git_revision:0eb071f600702e6e235137ba133ee8834aeece83..git_revision:304bbef6c7e9a86630c12986b99c8654eb7fe648
* src/ios: bf756663c3..5d7abd8337
* src/testing: e8bfcfdf9d..d274a4df83
* src/third_party: 4471edb07a..51ac942dd6
* src/third_party/android_build_tools/aapt2/cipd: s6POXpUalcnuPehDsORiojCpgbNXT4LYq7DVUYgsfxEC..vUP1cs7krVsNHbUJpwSDR7rvWuYLGzINVa9xopPpt74C
* src/third_party/android_sdk/public: mjFmRj7k_XR9yj60pYbr9mG38FyEbU5oWdU56bZQ5cwC..qTD9QdBlBf3dyHsN1lJ0RH6AhHxR42Hmg2Ih-Vj4zIEC
* src/third_party/androidx/cipd: dUYDoYVH-NzyM8K7wLLtKL4FIBeid3P4p_gbwEOapJ4C..CL9NOUuKPO8ESaAQIKtBbN6MV0jndo4M-vT-Fjf3ZGoC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/eda8d2eec9..5203599120
* src/third_party/compiler-rt/src: 03f50e54e9..996704b467
* src/third_party/depot_tools: 85116f1710..ccffb57777
* src/third_party/harfbuzz-ng/src: 7d936359a2..fa2908bf16
* src/third_party/kotlin_stdlib/cipd: nrNlkfwnssJGD9SLlKJAWk1z2QnlYuVa8YUPNj4sUzEC..FfVJUc4q9S6JB4uqVGPJQ3anrc1Y_W0O-oGK_2MJA5gC
* src/third_party/kotlinc/current: dzSoO7s4xA33tSKgOGuseaOQRuvYg3_3mtA0H89f4_wC..KZWh3uhuenRgsoGqNYgSo82FO3sMwZjvmuR9TBvanTcC
* src/third_party/libc++/src: 07572e7b16..7ab65651ae
* src/third_party/libc++abi/src: 83a8520807..8f11bb1d44
* src/third_party/libjpeg_turbo: 6383cf609c..6bb85251a8
* src/third_party/libunwind/src: 88fc07ed14..17ccf7d110
* src/third_party/llvm-build/Release+Asserts_vesion: Linux_x64/clang-llvmorg-22-init-14273-gea10026b-3.tar.xz,Linux_x64/llvmobjdump-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac/clang-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac/clang-mac-runtime-library-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac/llvmobjdump-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac_arm64/clang-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac_arm64/llvmobjdump-llvmorg-22-init-14273-gea10026b-3.tar.xz,Win/clang-llvmorg-22-init-14273-gea10026b-3.tar.xz,Win/clang-win-runtime-library-llvmorg-22-init-14273-gea10026b-3.tar.xz,Win/llvmobjdump-llvmorg-22-init-14273-gea10026b-3.tar.xz..Linux_x64/clang-llvmorg-23-init-3706-gfc648683-1.tar.xz,Linux_x64/clang-tidy-llvmorg-23-init-3706-gfc648683-1.tar.xz,Linux_x64/clangd-llvmorg-23-init-3706-gfc648683-1.tar.xz,Linux_x64/llvm-code-coverage-llvmorg-23-init-3706-gfc648683-1.tar.xz,Linux_x64/llvmobjdump-llvmorg-23-init-3706-gfc648683-1.tar.xz,Mac/clang-llvmorg-23-init-3706-gfc648683-1.tar.xz,Mac/clang-mac-runtime-library-llvmorg-23-init-3706-gfc648683-1.tar.xz,Mac/clang-tidy-llvmorg-23-init-3706-gfc648683-1.tar.xz,Mac/clangd-llvmorg-23-init-3706-gfc648683-1.tar.xz,Mac/llvm-code-coverage-llvmorg-23-init-3706-gfc648683-1.tar.xz,Mac/llvmobjdump-llvmorg-23-init-3706-gfc648683-1.tar.xz,Mac_arm64/clang-llvmorg-23-init-3706-gfc648683-1.tar.xz,Mac_arm64/clang-tidy-llvmorg-23-init-3706-gfc648683-1.tar.xz,Mac_arm64/clangd-llvmorg-23-init-3706-gfc648683-1.tar.xz,Mac_arm64/llvm-code-coverage-llvmorg-23-init-3706-gfc648683-1.tar.xz,Mac_arm64/llvmobjdump-llvmorg-23-init-3706-gfc648683-1.tar.xz,Win/clang-llvmorg-23-init-3706-gfc648683-1.tar.xz,Win/clang-tidy-llvmorg-23-init-3706-gfc648683-1.tar.xz,Win/clang-win-runtime-library-llvmorg-23-init-3706-gfc648683-1.tar.xz,Win/clangd-llvmorg-23-init-3706-gfc648683-1.tar.xz,Win/llvm-code-coverage-llvmorg-23-init-3706-gfc648683-1.tar.xz,Win/llvmobjdump-llvmorg-23-init-3706-gfc648683-1.tar.xz
* src/third_party/llvm-libc/src: 3b327fec43..d38523b674
* src/third_party/r8/cipd: sjuUu6_BDMGSci_jpKyt68J7gQ3sA59eJI7biFlTGXoC..MW7AMY0Q5SzgubYVtiVVg4LMjsFBcLKwKyc2dqcArAMC
* src/third_party/r8/d8/cipd: a4fVqbIycCDqs1714SLRqxEdz6P-sH-z1QT_eeeF0PcC..MW7AMY0Q5SzgubYVtiVVg4LMjsFBcLKwKyc2dqcArAMC
* src/third_party/re2/src: e7aec59850..972a15cedd
* src/third_party/siso/cipd: git_revision:038ddf6e901c8f82dfd917b91a4551e233a3e6ae..git_revision:9863d88c26094a24fb848f8994da81e005810c76
* src/third_party/turbine/cipd: DV_E8eKAtXx3kTD4avzQC_CWVnH_yOQrf80YkYt77PAC..BMHNhxMhr7uGz1rh_Od_JE4kAdP9K5MXr6GN2R9tQkAC
* src/tools: 39bc80757f..73a128cf73
Added dependency
* src/third_party/android_deps/autorolled/cipd
Removed dependency
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlinx_kotlinx_coroutines_guava
DEPS diff: 30d4d9c779..2fec1883d8/DEPS

Clang version changed llvmorg-22-init-14273-gea10026b:llvmorg-23-init-3706-gfc648683
Details: 30d4d9c779..2fec1883d8/tools/clang/scripts/update.py

BUG=None

Change-Id: Idd5b72b8b5cd622d5bdaeffcacde9d25373d6b38
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7572311
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
2026-02-12 23:42:06 -08:00
Jordan
917276084a Set Update Mechanism: Manual
This CL sets the Update Mechanism to Manual in README files.

Bug: 445311061
Change-Id: I4df6c5815b85c04b047b39b4352ba43789702d26
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7512992
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Owners-Override: Jordan Brown <rop@google.com>
2026-01-28 00:04:45 -08:00
Jeremy Leconte
f95782d01c Manual roll - update some package names
Bug: None
Change-Id: I23a60ccd36f9cb5d335c7c073ccf894002468edd
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7510834
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2026-01-26 23:22:22 -08:00
Valentin Haudiquet
022efdb0b7 RVV: Enable RVV on GCC
GCC now supports vector segment load and store, which
was previously missing; and the reason why it was disabled.

Change-Id: I923fd8a15476de8dcc2103bb8335d4fcc3ca96a9
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7241606
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Wan-Teh Chang <wtc@google.com>
2026-01-06 11:16:24 -08:00
Nico Weber
821b9c5de1 Simplify libyuv build files now that neon is required on arm
No intended behavior change.

Bug: 469092869
Change-Id: Iedaf1163bc0f8507174b571bad9a4a16be5e5777
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7276827
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2026-01-05 10:28:19 -08:00
Victor Hugo Vianna Silva
deeb764bb9 Roll src/build/ 3c58005ad..c53d22a39 (15 commits)
3c58005adf..c53d22a398

$ git log 3c58005ad..c53d22a39 --date=short --no-merges --format='%ad %ae %s'
2025-12-09 victorvianna [build] Remove gnu++2a special casing for gcc bots
2025-12-09 ajgo Delayload userenv
2025-12-09 anandrv [build] Enable Java location rewrite by default on Canary
2025-12-08 smaier Javaless renderer: update to latest Android impl
2025-12-08 inglorion build: Introduce cros_target_cpu_arch GN arg
2025-12-08 drott Update visibility of FreeType component
2025-12-08 drott Sync build configuration enable_freetype with PDF
2025-12-07 msta Rerun modularize.py --os=windows
2025-12-05 linyuh Reland (attempt #2): "Make test APK the default browser app if it has APP_BROWSER category"
2025-12-05 machenbach [build] Enable building arm with coverage instrumentation
2025-12-05 brunobraga [AutofillAi - M4] Add required java classes for c++ communication
2025-12-04 zijiehe [fuchsia] --bp-compression-sort=function in size-optimized
2025-12-04 ajgo Delayload secur32, winhttp, winspool & wintrust
2025-12-04 msta Remove extern_c from clang modules.
2025-12-04 anandrv [base/android] Add location attribution to ThreadUtils methods

Created with:
  roll-dep src/build

Change-Id: Iced6f760cae459eaa6351e5d8238f8d25bb3980f
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7241672
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Victor Vianna <victorvianna@google.com>
2025-12-10 10:45:00 -08:00
Victor Hugo Vianna Silva
74ea9ed7c9 Roll chromium_revision 68659bfa38..30d4d9c779 (1531610:1554090)
Change log: 68659bfa38..30d4d9c779
Full diff: 68659bfa38..30d4d9c779

Changed dependencies
* fuchsia_vesion: version:29.20251016.3.1..version:30.20251204.1.1
* gn_vesion: git_revision:07d3c6f4dc290fae5ca6152ebcb37d6815c411ab..git_revision:0eb071f600702e6e235137ba133ee8834aeece83
* siso_vesion: git_revision:f24720f1320c0b85feea49cb5f1207be7555deee..git_revision:41351d34a647bb3f390000f021786db0a6ad2430
* src/build: b2e55d8d32..3c58005adf
* src/buildtools: 28a4e2e3dc..eca5f0685c
* src/buildtools/linux64: git_revision:07d3c6f4dc290fae5ca6152ebcb37d6815c411ab..git_revision:0eb071f600702e6e235137ba133ee8834aeece83
* src/buildtools/mac: git_revision:07d3c6f4dc290fae5ca6152ebcb37d6815c411ab..git_revision:0eb071f600702e6e235137ba133ee8834aeece83
* src/buildtools/win: git_revision:07d3c6f4dc290fae5ca6152ebcb37d6815c411ab..git_revision:0eb071f600702e6e235137ba133ee8834aeece83
* src/ios: 82e655421c..bf756663c3
* src/testing: 4c3aba1a9e..e8bfcfdf9d
* src/third_party: 1920e63dfd..4471edb07a
* src/third_party/android_build_tools/aapt2/cipd: XqcH9BN43Trcigbh3gSdKc-5OAI-r7MV7wIs5fRXxFMC..s6POXpUalcnuPehDsORiojCpgbNXT4LYq7DVUYgsfxEC
* src/third_party/androidx/cipd: KoJF8n5Z68D_pjbJf-EUw4bnZ5FTSOFKGsfnzTWt6pwC..dUYDoYVH-NzyM8K7wLLtKL4FIBeid3P4p_gbwEOapJ4C
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/1c28f8a288..eda8d2eec9
* src/third_party/compiler-rt/src: d7392a1ed4..03f50e54e9
* src/third_party/depot_tools: ddb97c1c77..85116f1710
* src/third_party/googletest/src: e17e37a115..4fe3307fb2
* src/third_party/icu: ff35c4f9df..a86a32e67b
* src/third_party/kotlin_stdlib/cipd: fb5owI7Lkc_2iMOvOSTFR5l6KH9Ufv9VQ2quZCyG3eQC..nrNlkfwnssJGD9SLlKJAWk1z2QnlYuVa8YUPNj4sUzEC
* src/third_party/kotlinc/current: _goUeuVtOV_2DBIbshAqBuLckbAOCDbHx3UfMYwHK2cC..dzSoO7s4xA33tSKgOGuseaOQRuvYg3_3mtA0H89f4_wC
* src/third_party/libc++/src: 1af2c657e2..07572e7b16
* src/third_party/libc++abi/src: 8e720a3a3a..83a8520807
* src/third_party/libjpeg_turbo: e14cbfaa85..6383cf609c
* src/third_party/libunwind/src: 224761f783..88fc07ed14
* src/third_party/llvm-build/Release+Asserts_vesion: Linux_x64/clang-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Linux_x64/llvmobjdump-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac/clang-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac/clang-mac-runtime-library-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac/llvmobjdump-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac_arm64/clang-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac_arm64/llvmobjdump-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Win/clang-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Win/clang-win-runtime-library-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Win/llvmobjdump-llvmorg-22-init-8940-g4d4cb757-84.tar.xz..Linux_x64/clang-llvmorg-22-init-14273-gea10026b-3.tar.xz,Linux_x64/clang-tidy-llvmorg-22-init-14273-gea10026b-3.tar.xz,Linux_x64/clangd-llvmorg-22-init-14273-gea10026b-3.tar.xz,Linux_x64/llvm-code-coverage-llvmorg-22-init-14273-gea10026b-3.tar.xz,Linux_x64/llvmobjdump-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac/clang-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac/clang-mac-runtime-library-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac/clang-tidy-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac/clangd-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac/llvm-code-coverage-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac/llvmobjdump-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac_arm64/clang-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac_arm64/clang-tidy-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac_arm64/clangd-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac_arm64/llvm-code-coverage-llvmorg-22-init-14273-gea10026b-3.tar.xz,Mac_arm64/llvmobjdump-llvmorg-22-init-14273-gea10026b-3.tar.xz,Win/clang-llvmorg-22-init-14273-gea10026b-3.tar.xz,Win/clang-tidy-llvmorg-22-init-14273-gea10026b-3.tar.xz,Win/clang-win-runtime-library-llvmorg-22-init-14273-gea10026b-3.tar.xz,Win/clangd-llvmorg-22-init-14273-gea10026b-3.tar.xz,Win/llvm-code-coverage-llvmorg-22-init-14273-gea10026b-3.tar.xz,Win/llvmobjdump-llvmorg-22-init-14273-gea10026b-3.tar.xz
* src/third_party/llvm-libc/src: b3af9aedd6..3b327fec43
* src/third_party/nasm: e2c93c3498..af5eeeb054
* src/third_party/r8/cipd: AYeAI5FH_WyqBwnhCmq8W1k-pGRyIkxmRN7PbMErE7EC..sjuUu6_BDMGSci_jpKyt68J7gQ3sA59eJI7biFlTGXoC
* src/third_party/r8/d8/cipd: 2aBDG942g42qUBPPInGETRHusdxru1U3anwJI_QX5wIC..a4fVqbIycCDqs1714SLRqxEdz6P-sH-z1QT_eeeF0PcC
* src/third_party/re2/src: 61c4644171..e7aec59850
* src/third_party/siso/cipd: git_revision:f24720f1320c0b85feea49cb5f1207be7555deee..git_revision:41351d34a647bb3f390000f021786db0a6ad2430
* src/third_party/turbine/cipd: EHj3lVL72PrpZUDnsWnaS5rdJuF5o1QYrJ7CUhO3MIEC..DV_E8eKAtXx3kTD4avzQC_CWVnH_yOQrf80YkYt77PAC
* src/tools: 6c975b3dc5..39bc80757f
Added dependency
* src/third_party/android_deps/autorolled/cipd
Removed dependencies
* src/third_party/android_deps/cipd/libs/com_android_support_support_annotations
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlinx_atomicfu_jvm
DEPS diff: 68659bfa38..30d4d9c779/DEPS

Clang version changed llvmorg-22-init-8940-g4d4cb757:llvmorg-22-init-14273-gea10026b
Details: 68659bfa38..30d4d9c779/tools/clang/scripts/update.py

BUG=None

Change-Id: Ie6138c32fa3fede6c5973193d6938e0eb9310fa0
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7228726
Commit-Queue: Victor Vianna <victorvianna@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2025-12-04 11:11:16 -08:00
Victor Hugo Vianna Silva
4825d9b29e Use default xcode version in libyuv
Following crrev.com/c/7171485, libyuv should be able to rely on
the default xcode version of the bots.

Bug: 461757070
Change-Id: Iecc34bb0b0476b61be1d9dfd51904396913c85f4
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7177782
Commit-Queue: Victor Vianna <victorvianna@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2025-11-24 07:54:14 -08:00
Victor Hugo Vianna Silva
068c9f2f64 Upgrade linux bots from ubuntu 22.04 to 24.04
Bug: 459541007
Change-Id: I0ff7ecb4400f82ef7cff93ec98fe16b47ded062b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7132084
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Victor Vianna <victorvianna@google.com>
2025-11-12 17:34:13 -08:00
Frank Barchard
900da61d3c Experimental SVE FMMLA detect
Detect if arm cpu support FMMLA instruction

Bug: None
Change-Id: Ia7b83bf2735ddeeb8a85da44177e708c34e4b1fb
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7085486
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2025-10-27 14:34:55 -07:00
Frank Barchard
500f45652c For for ARM32 build when built with __SOFTFP__
planar_test.cc was
  Error: selected processor does not support `vmrs r3,fpscr' in ARM mode
  Error: selected processor does not support `vmsr fpscr,r3' in ARM mode

Bug: None
Change-Id: I2ee0e7191c372277901c94e29d9ed91bbac71af2
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7063737
Reviewed-by: Justin Green <greenjustin@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2025-10-20 11:54:25 -07:00
Victor Hugo Vianna Silva
e49099d8e1 Roll chromium_revision 89484fe328..68659bfa38 (1529283:1531610)
Change log: 89484fe328..68659bfa38
Full diff: 89484fe328..68659bfa38

Changed dependencies
* fuchsia_vesion: version:29.20251011.3.1..version:29.20251016.3.1
* src/build: 02d98ae43e..b2e55d8d32
* src/buildtools: 0e7d35148b..28a4e2e3dc
* src/ios: 248952acfb..82e655421c
* src/testing: 29a6541860..4c3aba1a9e
* src/third_party: c78db06f7e..1920e63dfd
* src/third_party/androidx/cipd: IzOBm-ZK03wC45h1IWpc5nhDwLfGGYIk9Exj0WajNEUC..KoJF8n5Z68D_pjbJf-EUw4bnZ5FTSOFKGsfnzTWt6pwC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/2f71f97f0b..1c28f8a288
* src/third_party/compiler-rt/src: 3a23fdd905..d7392a1ed4
* src/third_party/depot_tools: f39ee3c673..ddb97c1c77
* src/third_party/googletest/src: 7917641ff9..e17e37a115
* src/third_party/kotlin_stdlib/cipd: Brp4brSLZO-9mkjc6_BeH6NofBOrxpLJcyM__jhN9UYC..fb5owI7Lkc_2iMOvOSTFR5l6KH9Ufv9VQ2quZCyG3eQC
* src/third_party/libc++/src: dc1441a0c2..1af2c657e2
* src/third_party/libunwind/src: da8737e079..224761f783
* src/third_party/llvm-build/Release+Asserts_vesion: Linux_x64/clang-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Linux_x64/llvmobjdump-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac/clang-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac/clang-mac-runtime-library-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac/llvmobjdump-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac_arm64/clang-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac_arm64/llvmobjdump-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Win/clang-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Win/clang-win-runtime-library-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Win/llvmobjdump-llvmorg-22-init-8940-g4d4cb757-84.tar.xz..Linux_x64/clang-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Linux_x64/clang-tidy-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Linux_x64/clangd-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Linux_x64/llvm-code-coverage-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Linux_x64/llvmobjdump-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac/clang-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac/clang-mac-runtime-library-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac/clang-tidy-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac/clangd-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac/llvm-code-coverage-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac/llvmobjdump-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac_arm64/clang-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac_arm64/clang-tidy-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac_arm64/clangd-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac_arm64/llvm-code-coverage-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Mac_arm64/llvmobjdump-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Win/clang-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Win/clang-tidy-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Win/clang-win-runtime-library-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Win/clangd-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Win/llvm-code-coverage-llvmorg-22-init-8940-g4d4cb757-84.tar.xz,Win/llvmobjdump-llvmorg-22-init-8940-g4d4cb757-84.tar.xz
* src/third_party/llvm-libc/src: 8ab123717d..b3af9aedd6
* src/tools: c7b77bb56a..6c975b3dc5
Added dependency
* src/third_party/android_deps/autorolled/cipd
DEPS diff: 89484fe328..68659bfa38/DEPS

No update to Clang.

BUG=None

Change-Id: I7559855b7094ad822ec9e9a2d97a3c233132866f
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7054948
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Victor Vianna <victorvianna@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2025-10-17 15:42:29 -07:00
Victor Hugo Vianna Silva
df79165ad2 Roll chromium_revision 9dbf00e283..89484fe328 (1465343:1529283)
The goal is to roll crrev.com/c/7005224. This roll required replacing
use of src/tools/clang/scripts/update.py with explicit GCS dependencies,
in order to fetch llvm-otool for Mac.

[1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/libyuv/DEPS;l=1566-1572;drc=738a53ce271acc8cde81798bbdd22dca2fde81a3
[2] https://source.chromium.org/chromium/chromium/src/+/main:DEPS;l=856-1017;drc=a478ffb982d78f41d22a7daa80771d836bca043a

Change log: 9dbf00e283..89484fe328
Full diff: 9dbf00e283..89484fe328

Changed dependencies
* android_sdk_platform-tools_vesion: mjFmRj7k_XR9yj60pYbr9mG38FyEbU5oWdU56bZQ5cwC..qTD9QdBlBf3dyHsN1lJ0RH6AhHxR42Hmg2Ih-Vj4zIEC
* fuchsia_vesion: version:28.20250522.3.1..version:29.20251011.3.1
* gn_vesion: git_revision:ebc8f16ca7b0d36a3e532ee90896f9eb48e5423b..git_revision:07d3c6f4dc290fae5ca6152ebcb37d6815c411ab
* reclient_vesion: re_client_version:0.178.0.5ee9d3e8-gomaip..re_client_version:0.185.0.db415f21-gomaip
* siso_vesion: git_revision:15568691576f74b11a3c73c85a3c8dd5efb72f05..git_revision:f24720f1320c0b85feea49cb5f1207be7555deee
* src/build: 7907108fc6..02d98ae43e
* src/buildtools: 813bee86ee..0e7d35148b
* src/buildtools/linux64: git_revision:ebc8f16ca7b0d36a3e532ee90896f9eb48e5423b..git_revision:07d3c6f4dc290fae5ca6152ebcb37d6815c411ab
* src/buildtools/mac: git_revision:ebc8f16ca7b0d36a3e532ee90896f9eb48e5423b..git_revision:07d3c6f4dc290fae5ca6152ebcb37d6815c411ab
* src/buildtools/reclient: re_client_version:0.178.0.5ee9d3e8-gomaip..re_client_version:0.185.0.db415f21-gomaip
* src/buildtools/win: git_revision:ebc8f16ca7b0d36a3e532ee90896f9eb48e5423b..git_revision:07d3c6f4dc290fae5ca6152ebcb37d6815c411ab
* src/ios: c61efe1d6d..248952acfb
* src/testing: 739fbc1a64..29a6541860
* src/third_party: a0168b392b..c78db06f7e
* src/third_party/android_build_tools/aapt2/cipd: _lNsOL_GGlXLOIMGtrbMOqNd7TQHabaP1q8SlvUpFbMC..XqcH9BN43Trcigbh3gSdKc-5OAI-r7MV7wIs5fRXxFMC
* src/third_party/android_deps/cipd/libs/com_android_support_support_annotations: version:2@28.0.0.cr1..version:2@28.0.0.cr2
* src/third_party/android_deps/cipd/libs/com_android_tools_common: version:2@30.2.0-beta01.cr1..version:2@30.2.0-beta01.cr2
* src/third_party/android_deps/cipd/libs/com_android_tools_layoutlib_layoutlib_api: version:2@30.2.0-beta01.cr1..version:2@30.2.0-beta01.cr2
* src/third_party/android_deps/cipd/libs/com_android_tools_sdk_common: version:2@30.2.0-beta01.cr1..version:2@30.2.0-beta01.cr2
* src/third_party/android_deps/cipd/libs/com_google_android_apps_common_testing_accessibility_framework_accessibility_test_framework: version:2@4.0.0.cr1..version:2@4.0.0.cr2
* src/third_party/android_deps/cipd/libs/com_googlecode_java_diff_utils_diffutils: version:2@1.3.0.cr1..version:2@1.3.0.cr2
* src/third_party/android_deps/cipd/libs/com_squareup_javapoet: version:2@1.13.0.cr1..version:2@1.13.0.cr2
* src/third_party/android_deps/cipd/libs/net_bytebuddy_byte_buddy: version:2@1.14.12.cr1..version:2@1.17.6.cr2
* src/third_party/android_deps/cipd/libs/net_bytebuddy_byte_buddy_agent: version:2@1.14.12.cr1..version:2@1.17.6.cr2
* src/third_party/android_deps/cipd/libs/org_ccil_cowan_tagsoup_tagsoup: version:2@1.2.1.cr1..version:2@1.2.1.cr2
* src/third_party/android_deps/cipd/libs/org_checkerframework_checker_compat_qual: version:2@2.5.5.cr1..version:2@2.5.5.cr2
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlin_kotlin_android_extensions_runtime: version:2@1.9.22.cr1..version:2@1.9.22.cr2
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlin_kotlin_parcelize_runtime: version:2@1.9.22.cr1..version:2@1.9.22.cr2
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlinx_atomicfu_jvm: version:2@0.23.2.cr1..version:2@0.23.2.cr2
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlinx_kotlinx_coroutines_guava: version:2@1.8.1.cr1..version:2@1.8.1.cr2
* src/third_party/android_deps/cipd/libs/org_jsoup_jsoup: version:2@1.15.1.cr1..version:2@1.15.1.cr2
* src/third_party/android_deps/cipd/libs/org_mockito_mockito_android: version:2@5.11.0.cr1..version:2@5.19.0.cr2
* src/third_party/android_deps/cipd/libs/org_mockito_mockito_core: version:2@5.11.0.cr1..version:2@5.19.0.cr2
* src/third_party/android_deps/cipd/libs/org_mockito_mockito_subclass: version:2@5.11.0.cr1..version:2@5.19.0.cr2
* src/third_party/android_deps/cipd/libs/org_objenesis_objenesis: version:2@3.3.cr1..version:2@3.3.cr2
* src/third_party/android_sdk/public: mjFmRj7k_XR9yj60pYbr9mG38FyEbU5oWdU56bZQ5cwC..qTD9QdBlBf3dyHsN1lJ0RH6AhHxR42Hmg2Ih-Vj4zIEC
* src/third_party/androidx/cipd: IKju-kxPcx53mOt9VCPN7dmPmZeWguJU1JS6WmN67kQC..IzOBm-ZK03wC45h1IWpc5nhDwLfGGYIk9Exj0WajNEUC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/938fc9953b..2f71f97f0b
* src/third_party/clang-format/script: 37f6e68a10..c2725e0622
* src/third_party/compiler-rt/src: 9c6d38aa28..3a23fdd905
* src/third_party/depot_tools: e0ece52cfb..f39ee3c673
* src/third_party/googletest/src: 09ffd00153..7917641ff9
* src/third_party/harfbuzz-ng/src: 9f83bbbe64..7d936359a2
* src/third_party/icu: b929596bae..ff35c4f9df
* src/third_party/kotlin_stdlib/cipd: GUpKElqF0PYGB-SP4D5w6p_MuMYQSBrRkGqFGjPhsIYC..Brp4brSLZO-9mkjc6_BeH6NofBOrxpLJcyM__jhN9UYC
* src/third_party/kotlinc/current: XmaM7JA4hB75AuMdzCegF-XYzXtoHKOA1anrWqAJL3QC.._goUeuVtOV_2DBIbshAqBuLckbAOCDbHx3UfMYwHK2cC
* src/third_party/libc++/src: a01c02c9d4..dc1441a0c2
* src/third_party/libc++abi/src: 9810fb23f6..8e720a3a3a
* src/third_party/libunwind/src: 8575f4ae4f..da8737e079
* src/third_party/libunwindstack: 0d758dd57f..0928ad0d25
* src/third_party/llvm-libc/src: 9c3ae3120f..8ab123717d
* src/third_party/lss: https://chromium.googlesource.com/linux-syscall-support.git/+log/ed31caa60f..29164a80da
* src/third_party/nasm: 9f916e90e6..e2c93c3498
* src/third_party/r8/cipd: QhYGRVpYYKZmt3f_Zb2HoJ9LIBEnWaeeLXRNei47Z30C..AYeAI5FH_WyqBwnhCmq8W1k-pGRyIkxmRN7PbMErE7EC
* src/third_party/r8/d8/cipd: QhYGRVpYYKZmt3f_Zb2HoJ9LIBEnWaeeLXRNei47Z30C..2aBDG942g42qUBPPInGETRHusdxru1U3anwJI_QX5wIC
* src/third_party/re2/src: c84a140c93..61c4644171
* src/third_party/robolectric/cipd: G3VkWqTv1YWDvC6zCrL34iQREzrzdBmSL4GMboAIiAEC..dr-aJxRAPYDTBJXnjfht-bdxyywD6BP1lrcjZZPnRG0C
* src/third_party/siso/cipd: git_revision:15568691576f74b11a3c73c85a3c8dd5efb72f05..git_revision:f24720f1320c0b85feea49cb5f1207be7555deee
* src/third_party/turbine/cipd: VGtOG2ivl1SJR7Lai5FQddIu15mWCYDnp47QtozMQeoC..EHj3lVL72PrpZUDnsWnaS5rdJuF5o1QYrJ7CUhO3MIEC
* src/tools: ae54c8a35f..c7b77bb56a
Added dependency
* src/third_party/android_deps/autorolled/cipd
Removed dependencies
* src/third_party/android_deps/cipd/libs/com_google_android_datatransport_transport_api
* src/third_party/android_deps/cipd/libs/com_google_android_datatransport_transport_backend_cct
* src/third_party/android_deps/cipd/libs/com_google_android_datatransport_transport_runtime
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_auth
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_auth_api_phone
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_auth_base
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_auth_blockstore
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_base
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_basement
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_cast
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_cast_framework
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_cloud_messaging
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_fido
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_flags
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_identity_credentials
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_instantapps
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_location
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_stats
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_tasks
* src/third_party/android_deps/cipd/libs/com_google_android_libraries_identity_googleid_googleid
* src/third_party/android_deps/cipd/libs/com_google_android_material_material
* src/third_party/android_deps/cipd/libs/com_google_android_play_core_common
* src/third_party/android_deps/cipd/libs/com_google_ar_impress
* src/third_party/android_deps/cipd/libs/com_google_auto_value_auto_value_annotations
* src/third_party/android_deps/cipd/libs/com_google_code_gson_gson
* src/third_party/android_deps/cipd/libs/com_google_dagger_dagger
* src/third_party/android_deps/cipd/libs/com_google_errorprone_error_prone_annotations
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_annotations
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_common
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_common_ktx
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_components
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_datatransport
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_encoders_proto
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_installations
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_messaging
* src/third_party/android_deps/cipd/libs/com_google_guava_failureaccess
* src/third_party/android_deps/cipd/libs/com_google_guava_guava
* src/third_party/android_deps/cipd/libs/com_google_guava_guava_android
* src/third_party/android_deps/cipd/libs/com_google_protobuf_protobuf_javalite
* src/third_party/android_deps/cipd/libs/com_google_testparameterinjector_test_parameter_injector
* src/third_party/android_deps/cipd/libs/com_squareup_moshi_moshi
* src/third_party/android_deps/cipd/libs/com_squareup_moshi_moshi_adapters
* src/third_party/android_deps/cipd/libs/com_squareup_okio_okio_jvm
* src/third_party/android_deps/cipd/libs/com_squareup_wire_wire_runtime_jvm
* src/third_party/android_deps/cipd/libs/jakarta_inject_jakarta_inject_api
* src/third_party/android_deps/cipd/libs/org_bouncycastle_bcprov_jdk18on
* src/third_party/android_deps/cipd/libs/org_checkerframework_checker_qual
* src/third_party/android_deps/cipd/libs/org_checkerframework_checker_util
* src/third_party/android_deps/cipd/libs/org_codehaus_mojo_animal_sniffer_annotations
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlinx_kotlinx_coroutines_android
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlinx_kotlinx_coroutines_play_services
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlinx_kotlinx_coroutines_test_jvm
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlinx_kotlinx_serialization_core_jvm
* src/third_party/android_deps/cipd/libs/org_jspecify_jspecify
* src/third_party/android_deps/cipd/libs/org_ow2_asm_asm
* src/third_party/android_deps/cipd/libs/org_ow2_asm_asm_analysis
* src/third_party/android_deps/cipd/libs/org_ow2_asm_asm_commons
* src/third_party/android_deps/cipd/libs/org_ow2_asm_asm_tree
* src/third_party/android_deps/cipd/libs/org_ow2_asm_asm_util
* src/third_party/android_deps/cipd/libs/org_robolectric_annotations
* src/third_party/android_deps/cipd/libs/org_robolectric_junit
* src/third_party/android_deps/cipd/libs/org_robolectric_nativeruntime
* src/third_party/android_deps/cipd/libs/org_robolectric_nativeruntime_dist_compat
* src/third_party/android_deps/cipd/libs/org_robolectric_pluginapi
* src/third_party/android_deps/cipd/libs/org_robolectric_plugins_maven_dependency_resolver
* src/third_party/android_deps/cipd/libs/org_robolectric_resources
* src/third_party/android_deps/cipd/libs/org_robolectric_robolectric
* src/third_party/android_deps/cipd/libs/org_robolectric_sandbox
* src/third_party/android_deps/cipd/libs/org_robolectric_shadowapi
* src/third_party/android_deps/cipd/libs/org_robolectric_shadows_framework
* src/third_party/android_deps/cipd/libs/org_robolectric_utils
* src/third_party/android_deps/cipd/libs/org_robolectric_utils_reflector
* src/third_party/android_deps/cipd/libs/org_yaml_snakeyaml
DEPS diff: 9dbf00e283..89484fe328/DEPS

Clang version changed llvmorg-21-init-11777-gfd3fecfc:llvmorg-22-init-8940-g4d4cb757
Details: 9dbf00e283..89484fe328/tools/clang/scripts/update.py

Bug: chromium:448679376
Change-Id: Ifcce903fe16d3be45b86187140e0146cb7a9cd51
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7036460
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Victor Vianna <victorvianna@google.com>
2025-10-17 11:55:00 -07:00
Mark Zhuang
e237e8d7fb RVV: Enable some function for intrinsic >= v1.0
According to README of rvv-intrinsic-doc,
Clang 19 and GCC 14 supports the v1.0 version.
But __riscv_v_intrinsic is 12000 on Clang 19,
so need Clang >= 20 to test this patch.
I test it with Clang 21.

Change-Id: I0e75efcdab3e7bc0ce1acd19eca3568b47c84cbf
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6995438
Reviewed-by: Justin Green <greenjustin@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2025-10-17 11:44:14 -07:00
Victor Hugo Vianna Silva
738a53ce27 Fix mac_asan bot by using right architecture for dsymutil
This broke in https://crrev.com/c/7041203 when we switched mac_asan
to use arm64, but didn't change the dsymutil binary. Let's fix by
adopting the approach of chromium/src, which works for both archs.

https://source.chromium.org/chromium/chromium/src/+/main:DEPS;l=4243-4267;drc=bd6571ed43a1025fa5122e31db929ccb69df6ce1

Bug: 448679376
Change-Id: I7f43b4ce7ad3a3946080f4c5bcbca32d6cbc4c5c
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7050423
Commit-Queue: Victor Vianna <victorvianna@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2025-10-16 15:01:43 -07:00
Victor Hugo Vianna Silva
1f62f14950 Update xcode in bots (3rd attempt)
The .cfg file in https://crrev.com/c/7043382 wasn't up-to-date for
some reason. I verified this CL indeed updates xcode in the iOS
bot. mac_asan is still broken for now.
- led get-builder "libyuv/try/ios_arm64_rel" > config.json
- Edit config.json to include the snippet below in its properties.
- cat config.json | led launch

https://ci.chromium.org/ui/p/libyuv/builders/ci.shadow/iOS%20ARM64%20Release/1/overview

```
"$depot_tools/osx_sdk": {
  "sdk_version": "17a324"
},
```

Bug: 448679376
Change-Id: Ie15e6164246611a5a1c06357307be512da0ff902
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7046681
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2025-10-16 14:28:05 -07:00
Wan-Teh Chang
fcd7060e0d Bump LIBYUV_VERSION for removal of MIPS support
Bump LIBYUV_VERSION to 1921. Missed in
https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7045953.

Bug: 434383432
Change-Id: If51122f1b744718551b0b601ead7cacb8c46c20d
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7050411
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2025-10-16 13:32:52 -07:00
Victor Hugo Vianna Silva
a5acc0bea9 Update xcode in bots (2nd attempt)
Turns out there are 2 ways to specify an xcode version on the bots.
https://crrev.com/c/7037174 used a way that differs from the one
currently in place in the bot recipe [1]. See thread [2] for more
details. This CL reverts most xcode changes from the original CL
and adopts an approach similar to https://crrev.com/i/8594830
instead.

I would have preferred to verify this CL works ahead of landing
with led, but I don't have permission [3]. No-Try: True is added
because mac_asan is busted https://crrev.com/c/7045106.

[1] https://source.chromium.org/chromium/infra/infra_superproject/+/main:build/recipes/recipes/libyuv/libyuv.py
[2] https://chat.google.com/room/AAAAzEuhg8A/S-r4vJCVnLY
[3] https://chat.google.com/room/AAAAzEuhg8A/S-r4vJCVnLY

No-Try: True
Bug: 448679376
Change-Id: I24609c820491f5bd93052687af8989f63172b144
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7043382
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2025-10-16 12:39:27 -07:00
Frank Barchard
2b4453d46f Deprecate MIPS and MSA support.
- Remove *_msa.cc source files
- Update build files
- Update header references, planar ifdefs for row functions
- Update documentation on supported platforms
- Version bumped to 1921
- clang-format applied

Bug: 434383432
Change-Id: I072d6aac4956f0ed668e64614ac8557612171f76
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7045953
Reviewed-by: Justin Green <greenjustin@google.com>
2025-10-16 12:20:40 -07:00
Victor Hugo Vianna Silva
28ebe5d0b0 Fix led failing due to service account disallowed
Follow-up to https://crrev.com/c/7046060.
Comparing the files below, we see the issue's root cause.

https://source.chromium.org/chromium/chromium/src/+/main:third_party/libyuv/infra/config/cr-buildbucket.cfg;l=607-620;drc=110e00ea9693e9feed3f6bb49cf7a9497440bca1
https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/infra/config/generated/cr-buildbucket.cfg;l=2143-2154;drc=722572ab69816657492c1155dad7f99e3e2629ea

Bug: None
Change-Id: Iaf339950db4e8b414719057ae81ba5b850f0aace
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7050097
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2025-10-16 10:41:52 -07:00
Victor Hugo Vianna Silva
cd42708dac Update instructions for fetching libyuv
`fetch libyuv` is supported since crrev.com/c/7036474.

No-Try: True
Change-Id: I526f873c80124977a5a7a192f41110f8f6c37e47
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7036475
Reviewed-by: Christoffer Dewerin <jansson@chromium.org>
Commit-Queue: Victor Vianna <victorvianna@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2025-10-16 08:03:02 -07:00
Victor Hugo Vianna Silva
110e00ea96 Allow use of led via http://go/ciba
Users who have the "Chrome Build Access" in go/ciba can now use the
`led` CLI on libyuv bots. No-Try because the mac-asan bot is busted.

I will use this to test the CL below ahead of submission.
https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7043382

No-Try: True
Change-Id: I33b488406f342fac4ff33d02e2c70cef2e50233c
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7046060
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Victor Vianna <victorvianna@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2025-10-16 05:57:31 -07:00
Victor Hugo Vianna Silva
613393324f Fix CQ not finding Mac-15 x86_64 bots
https://crrev.com/c/7037174 took effect but now CQ finds no Mac-15
x86_64 bots [1]. Fix by switching to arm64.
This change lists "No-Try: True" because CQ is busted.

[1] https://ci.chromium.org/ui/p/libyuv/builders/try/ios_arm64/3589/infra

No-Try: True
Bug: chromium:448679376
Change-Id: I6b77ce004f8cbbe0ea5c434edd140dd1ece6a152
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7041203
Reviewed-by: Ben Weiss <bweiss@google.com>
Commit-Queue: Wan-Teh Chang <wtc@google.com>
Reviewed-by: Justin Green <greenjustin@google.com>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2025-10-14 10:22:16 -07:00
Victor Hugo Vianna Silva
69046a8ab0 Update Mac and Xcode version in bots
Bug: 448679376
Change-Id: I077cd31073889afe0519195a8c459570bc95e4a8
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7037174
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Christoffer Dewerin <jansson@chromium.org>
Commit-Queue: Victor Vianna <victorvianna@google.com>
2025-10-14 05:18:54 -07:00
Fumitoshi Ukai
f5c7d8a44d use configure_reclient_cfgs instead of fetch_reclient_cfgs
fetch_reclient_cfgs was removed to configure_reclient_cfgs
https://source.chromium.org/chromium/chromium/src/+/main:buildtools/reclient_cfgs/fetch_reclient_cfgs.py

Change-Id: I701ec8774b33c07aacf2c7e6dc995d6a4e89d06c
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7005807
Commit-Queue: Fumitoshi Ukai <ukai@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Christoffer Dewerin <jansson@chromium.org>
2025-10-07 02:50:32 -07:00
Mirko Bonadei
0d8ed86032 Remove unused DEPS.
Bug: b/448783045
Change-Id: I4514e4ed7b5229d3fd26707452a4ffcead3890ac
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7002766
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
2025-10-02 02:02:12 -07:00
Frank Barchard
94417b9d21 Pass rgbconstants via struct pointer instead of elements with m
Now 66 instructions
SYM ARGBToUVRow_SSSE3:
62ccd0: BASE       push ebp
62ccd1: BASE       mov ebp, esp
62ccd3: BASE       push ebx
62ccd4: BASE       push edi
62ccd5: BASE       push esi
62ccd6: BASE       and esp, 0xfffffffc
62ccd9: BASE       sub esp, 0xc
62ccdc: BASE       call 0x62cce1 <ARGBToUVRow_SSSE3+0x11>
62cce1: BASE       pop eax
62cce2: BASE       add eax, 0xe1c27
62cce8: BASE       mov ecx, dword ptr [ebp+0xc]
62cceb: BASE       mov edx, dword ptr [ebp+0x8]
62ccee: BASE       mov esi, dword ptr [ebp+0x10]
62ccf1: BASE       mov edi, dword ptr [ebp+0x18]
62ccf4: BASE       mov dword ptr [esp+0x8], edi
62ccf8: BASE       mov edi, dword ptr [ebp+0x14]
62ccfb: BASE       lea ebx, ptr [eax-0x5ecf88]
62cd01: SSE2       movdqa xmm4, xmmword ptr [ebx]
62cd05: SSE2       movdqa xmm5, xmmword ptr [ebx+0x10]
62cd0a: SSE2       pcmpeqb xmm6, xmm6
62cd0e: SSSE3      pabsb xmm6, xmm6
62cd13: SSE2       movdqa xmm7, xmmword ptr [eax-0x5ecfa8]
62cd1b: BASE       sub edi, esi

62cd1d: SSE2       movdqu xmm0, xmmword ptr [edx]
62cd21: SSE2       movdqu xmm1, xmmword ptr [edx+0x10]
62cd26: SSE2       movdqu xmm2, xmmword ptr [edx+ecx*1]
62cd2b: SSE2       movdqu xmm3, xmmword ptr [edx+ecx*1+0x10]
62cd31: SSSE3      pshufb xmm0, xmm7
62cd36: SSSE3      pshufb xmm1, xmm7
62cd3b: SSSE3      pshufb xmm2, xmm7
62cd40: SSSE3      pshufb xmm3, xmm7
62cd45: SSSE3      pmaddubsw xmm0, xmm6
62cd4a: SSSE3      pmaddubsw xmm1, xmm6
62cd4f: SSSE3      pmaddubsw xmm2, xmm6
62cd54: SSSE3      pmaddubsw xmm3, xmm6
62cd59: SSE2       paddw xmm0, xmm2
62cd5d: SSE2       paddw xmm1, xmm3
62cd61: SSE2       pxor xmm2, xmm2
62cd65: SSE2       psrlw xmm0, 0x1
62cd6a: SSE2       psrlw xmm1, 0x1
62cd6f: SSE2       pavgw xmm0, xmm2
62cd73: SSE2       pavgw xmm1, xmm2
62cd77: SSE2       packuswb xmm0, xmm1
62cd7b: SSE2       movdqa xmm2, xmm6
62cd7f: SSE2       psllw xmm2, 0xf
62cd84: SSE2       movdqa xmm1, xmm0
62cd88: SSSE3      pmaddubsw xmm1, xmm5
62cd8d: SSSE3      pmaddubsw xmm0, xmm4
62cd92: SSSE3      phaddw xmm0, xmm1
62cd97: SSE2       psubw xmm2, xmm0
62cd9b: SSE2       psrlw xmm2, 0x8
62cda0: SSE2       packuswb xmm2, xmm2
62cda4: SSE2       movd dword ptr [esi], xmm2
62cda8: SSE2       pshufd xmm2, xmm2, 0x55
62cdad: SSE2       movd dword ptr [esi+edi*1], xmm2
62cdb2: BASE       lea edx, ptr [edx+0x20]
62cdb5: BASE       lea esi, ptr [esi+0x4]
62cdb8: BASE       sub dword ptr [esp+0x8], 0x8
62cdbd: BASE       jnle 0x62cd1d <ARGBToUVRow_SSSE3+0x4d>

62cdc3: BASE       lea esp, ptr [ebp-0xc]
62cdc6: BASE       pop esi
62cdc7: BASE       pop edi
62cdc8: BASE       pop ebx
62cdc9: BASE       pop ebp
62cdca: BASE       ret

Was 68 instructions
ARGBToUVRow_SSSE3:
62ccd0: BASE       push ebp
62ccd1: BASE       mov ebp, esp
62ccd3: BASE       push edi
62ccd4: BASE       push esi
62ccd5: BASE       and esp, 0xfffffff0
62ccd8: BASE       sub esp, 0x30
62ccdb: BASE       call 0x62cce0 <ARGBToUVRow_SSSE3+0x10>
62cce0: BASE       pop eax
62cce1: BASE       add eax, 0xe1c28
62cce7: BASE       mov ecx, dword ptr [ebp+0xc]
62ccea: BASE       mov edx, dword ptr [ebp+0x8]
62cced: BASE       mov esi, dword ptr [ebp+0x10]
62ccf0: BASE       mov edi, dword ptr [ebp+0x18]
62ccf3: BASE       mov dword ptr [esp+0xc], edi
62ccf7: BASE       mov edi, dword ptr [ebp+0x14]
62ccfa: SSE        movaps xmm0, xmmword ptr [eax-0x5ecf88]
62cd01: SSE        movaps xmmword ptr [esp+0x20], xmm0
62cd06: SSE        movaps xmm0, xmmword ptr [eax-0x5ecf78]
62cd0d: SSE        movaps xmmword ptr [esp+0x10], xmm0
62cd12: SSE2       movdqa xmm4, xmmword ptr [esp+0x20]
62cd18: SSE2       movdqa xmm5, xmmword ptr [esp+0x10]
62cd1e: SSE2       pcmpeqb xmm6, xmm6
62cd22: SSSE3      pabsb xmm6, xmm6
62cd27: SSE2       movdqa xmm7, xmmword ptr [eax-0x5ecfa8]
62cd2f: BASE       sub edi, esi

62cd31: SSE2       movdqu xmm0, xmmword ptr [edx]
62cd35: SSE2       movdqu xmm1, xmmword ptr [edx+0x10]
62cd3a: SSE2       movdqu xmm2, xmmword ptr [edx+ecx*1]
62cd3f: SSE2       movdqu xmm3, xmmword ptr [edx+ecx*1+0x10]
62cd45: SSSE3      pshufb xmm0, xmm7
62cd4a: SSSE3      pshufb xmm1, xmm7
62cd4f: SSSE3      pshufb xmm2, xmm7
62cd54: SSSE3      pshufb xmm3, xmm7
62cd59: SSSE3      pmaddubsw xmm0, xmm6
62cd5e: SSSE3      pmaddubsw xmm1, xmm6
62cd63: SSSE3      pmaddubsw xmm2, xmm6
62cd68: SSSE3      pmaddubsw xmm3, xmm6
62cd6d: SSE2       paddw xmm0, xmm2
62cd71: SSE2       paddw xmm1, xmm3
62cd75: SSE2       pxor xmm2, xmm2
62cd79: SSE2       psrlw xmm0, 0x1
62cd7e: SSE2       psrlw xmm1, 0x1
62cd83: SSE2       pavgw xmm0, xmm2
62cd87: SSE2       pavgw xmm1, xmm2
62cd8b: SSE2       packuswb xmm0, xmm1
62cd8f: SSE2       movdqa xmm2, xmm6
62cd93: SSE2       psllw xmm2, 0xf
62cd98: SSE2       movdqa xmm1, xmm0
62cd9c: SSSE3      pmaddubsw xmm1, xmm5
62cda1: SSSE3      pmaddubsw xmm0, xmm4
62cda6: SSSE3      phaddw xmm0, xmm1
62cdab: SSE2       psubw xmm2, xmm0
62cdaf: SSE2       psrlw xmm2, 0x8
62cdb4: SSE2       packuswb xmm2, xmm2
62cdb8: SSE2       movd dword ptr [esi], xmm2
62cdbc: SSE2       pshufd xmm2, xmm2, 0x55
62cdc1: SSE2       movd dword ptr [esi+edi*1], xmm2
62cdc6: BASE       lea edx, ptr [edx+0x20]
62cdc9: BASE       lea esi, ptr [esi+0x4]
62cdcc: BASE       sub dword ptr [esp+0xc], 0x8
62cdd1: BASE       jnle 0x62cd31 <ARGBToUVRow_SSSE3+0x61>

62cdd7: BASE       lea esp, ptr [ebp-0x8]
62cdda: BASE       pop esi
62cddb: BASE       pop edi
62cddc: BASE       pop ebp
62cddd: BASE       ret
62cdde: BASE       int3
BUG=444157316

Change-Id: Iad044f851359f5b052091c7bdab9b96946fc3682
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6987370
Reviewed-by: Justin Green <greenjustin@google.com>
2025-09-29 12:34:36 -07:00
Daniel.L (Byoungchan Lee)
5b22f31cb5 Fix compilation issue for 32bit PIC build
Currently, ARGBToUVMatrixRow_AVX2 and ARGBToUVMatrixRow_SSSE3 fail to
compile with clang on 32bit PIC build with the error message: inline
assembly requires more registers than available

This is because in PIC code EBX is reserved for the GOT and with a frame
pointer EBP is also unavailable.

Fix this by copying the RGB-to-UV constants to stack locals first and
let the asm use simple stack-relative addressing.

Bug: 444157316
Change-Id: Ica90f0c35039303ecaa145534683f59659fb5d7f
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6980714
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2025-09-25 13:49:02 -07:00
Frank Barchard
1b1c058787 ARGBToUV for SSE use pshufb/pmaddubsw
Was
ARGBToJ420_Opt (377 ms)
Now
ARGBToJ420_Opt (340 ms)

Bug: None
Change-Id: Iada2d6e9ecdb141b9e2acbdf343f890e4aaebe34
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6967754
Reviewed-by: Justin Green <greenjustin@google.com>
2025-09-19 12:39:39 -07:00
Mark Zhuang
d59fe1a2b8 docs: fix markdown indent
Change-Id: Ib3a7e04aa71fbf7e52fdffd7b5a767221defc030
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6954698
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2025-09-18 17:24:50 -07:00
Frank Barchard
7155afc5ca ARGBToUV AVX2 for x86 32 bit
- Reduce to 10 ymm registers - 2 constants generated on the fly

Change-Id: Ib25a0cf7c93e5048270735410ccf6723b3949454
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6967319
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2025-09-18 13:14:45 -07:00