2897 Commits

Author SHA1 Message Date
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
Frank Barchard
142db12947 ARGBToUV use AVX2 for 64 bit x86
Skylake
Was ARGBToJ420_Opt (312 ms)
Now ARGBToJ420_Opt (242 ms)

Icelake
Was ARGBToJ420_Opt (302 ms)
Now ARGBToJ420_Opt (220 ms)

AMD Zen3 on Windows
Was ARGBToJ420_Opt (305 ms)
Now ARGBToJ420_Opt (216 ms)
32 bit x86 uses SSE
Now ARGBToJ420_Opt (326 ms)

MCA analysis of new AVX, SSE and old AVX
https://godbolt.org/z/37bdazWYr

Bug: None
Change-Id: I72f5504407751e164c3558aebe836dd15223d65f
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6957477
Reviewed-by: Justin Green <greenjustin@google.com>
2025-09-17 14:39:53 -07:00
Mark Zhuang
b33794a586 RVV: Don't disable all rvv optimize when RVV >= v0.12
Disabled since Patch v2 of
https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6385788

Change-Id: Id30a62c8f164830204dde02a443f5e4f04d757db
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6953818
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2025-09-16 18:17:02 -07:00
Frank Barchard
a61882c049 ARGBToUV AVX2 for x86_64
Icelake
Was SSSE3+SSSE3 ARGBToJ420_Opt (356 ms)
Was SSSE3+AVX2  ARGBToJ420_Opt (301 ms)
Now AVX2+AVX2   ARGBToJ420_Opt (227 ms)

Change-Id: I2cb427bc164b225b3ad4c5f43c09d6da6ca496d5
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6943036
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2025-09-16 11:33:54 -07:00
Frank Barchard
0f795672ae Reduce ARGBToUV SSSE3 register usage for clang build error on x64
Bug: 444157316
Change-Id: I2ae9f3dbfb373bb874a3d9699987f7d5b63f2610
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6937665
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2025-09-10 18:40:06 -07:00
Xi Ruoyao
06a1c004bb Revert "Enable explicit control over LoongArch LSX & LASX for GYP builds"
This reverts commit 6ecfe106c304d1eeaa31d1b29a42c58fb70d35ca.

This "explicit control" with -mlasx as the default is really surprising
and unfriendly to distro maintainers and/or downstream projects.  They
already know using -m{no-,}l{a,}sx in CXXFLAGS to enable/disable the
LoongArch vector extensions, but this control does not respect those
flags already in the environment, forcing every distro and every
downstream project to wire an extra logic into their build system if
they need to change the default.

To make things worse, LSX is guaranteed to be available for LoongArch
desktop processors but LASX is not.  Thus most downstream works will
indeed need to change the default for hardware compatibility.

"LASX is widely supported among LoongArch desktops and servers, and
performance is better than with LSX alone" is true, but in the future we
can make the use of LASX correctly guarded by runtime CPU feature check
to take the advantange without breaking the hardware compatibility.

No-Try: true
Change-Id: I43b31a139b106b7f6f8b6ca5dc04045633ea1989
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6772565
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2025-09-05 20:04:18 -07:00
yuanhecai
eb4e4736a4 loong64: UV subsample's 4-pixel rounding average and ARGBToJ444 fixed-point scaling
The UV subsample's 4-pixel rounding average and ARGBToJ444 fixed-point scaling
were updated in d32d19cc and c060118b. The LoongArch optimization is updated now.

Bug: 381138208
Change-Id: I3585d72564e4fffe514599b1a9b4fee8fbbd0266
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6878364
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2025-09-03 12:22:44 -07:00
Victor Hugo Vianna Silva
70458840c4 [libyuv] Bump vpython from 3.8 to 3.11
Also requires upgrading some packages.

Bug: 40249958
Change-Id: I3c57ddd746b4333923ea2dd14a140bc8b7e381db
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6909330
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2025-09-03 12:22:19 -07:00
Takuto Ikuta
c00b83884e infra/config: Remove luci.recipes.use_python3 experiment
Python3 is used by default in recipes now and this config is not
necessary anymore.

Bug: 440235171
Change-Id: Ia7d2d54ca3afe25b43e8a1636d08507f709f0966
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6888293
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2025-09-02 01:08:51 -07:00
Jeremy Leconte
36edc5fa8b Fix assert(current_toolchain == default_toolchain) failure on win bots.
Bug: libyuv:440517010
Change-Id: Ida12cce239448dae40524b4b629981116eeadacd
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6904242
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2025-09-01 07:05:21 -07:00
Victor Hugo Vianna Silva
d98915a654 Roll siso and update its CIPD package
Note: the windows bot fails on this CL due to a known issue.
https://crbug.com/libyuv/440517010

These are equivalent.
d9393c2115
https://chromium.googlesource.com/build/+/7beeeff04f5627ef3ee6ebfaebe30abc987f574f

So the blamelist is
$ git log --oneline 7beeeff04f5627ef3ee6ebfaebe30abc987f574f..HEAD

1556869 Run `gofmt` in presubmit
afe2125 siso: Do not set GetContent() error to the stdout/stderr of action result
2377e92 Revert "siso: fix timeout for cas and capability service"
5a1b388 siso: Make sure it's not a laptop when using Google credhelper
4283503 siso: LayeredCache write-through on Open()
8369e8b Update README for standalone repo and add codesearch link
0000dc9 siso: update version string to v1.4.1
fac028f siso: Change the version to 1.4
d2fea3c Update direct deps and tidy go.mod files
52bc97e Fix incorrectly copied presubmit
40ad9e3 Cut-down PRESUBMIT.py from infra/infra root for build repo
d8e95f3 siso: propagate error from data source
e123e4d Reland "Reland "siso: retry in flush for slow RBE-CAS""
76849f1 siso: fix timeout for cas and capability service
4c5284f Revert "Reland "siso: retry in flush for slow RBE-CAS""
051b8d6 Reland "siso: retry in flush for slow RBE-CAS"
9a56dbd Revert "siso: retry in flush for slow RBE-CAS"
c141365 siso: retry in flush for slow RBE-CAS
9ed81e0 siso: fix version for build repo
242fa6a siso: generate proto by protoc 32.0
41521c6 kajiya: remove dependency to go.chromium.org/luci/common/system/signals
8b7d7e5 siso: update version string to v1.3.16
a7cef6a siso: Add exec_timeout step config to override action timeout
adb901d siso: Check if Chtimes() fail for missing file
f26c971 [siso] Make compressed uploads more robust for non-Google RBE backends
bc178ac [siso] Support REAPI execution priority
3297277 siso: don't call ctx.Err() in scandeps Scan too often
6e27993 use protoc-gen-go v1.36.7
42751ff siso: update version string to v1.3.15
db55352 siso: set appropriate timeout for WriteDigestData
76b44cb siso: fix err log for retry
710349b siso: fix spammy "digest is unknown" log
0a0901f siso: fix panic in `siso query targets`
6ac437a siso: allow --remote_jobs when reclient is used
4e9a6e4 siso: cred.New checks reapi service URI
ad12290 [go] Run go mod tidy, update toolchain to go 1.24.5 -> 1.24.6
53c59bd gong: use github.com/google/subcommands
af5d315 siso: use github.com/google/subcommands
674f906 siso: fix flaky TestRefresh
0be6287 siso: update version string to v1.3.14
edd5e66 siso: add document about filegroups
de46322 Prepare for github.com/google/subcommands switch
69a58e2 siso: need to compute digest for regular files
950c6e1 siso: handle scandeps error
a4e6ae0 siso: update version string to v1.3.13
89b8252 [Siso] execute: Wrap errors with more context
8367980 siso: fix version
95536bd siso: show credential type
11a3c0c siso: remove go.chromium.org/luci dependency.
aa7f96e siso: cache-write continue on error
9643ee7 siso: use luci-auth binary instead of go.chromium.org/luci/auth
5a750e8 revive clang -M deps scanning for scandeps unprocessable inputs
56797b2 siso: cache-write cleanup unused test files
c6179d6 siso: cache-write rename nit followups
5d7b562 siso: fix backtrace for siso_build.pprof
0ba1e11 siso: rename local-upload to cache-write followup
37e02e7 siso: remove dependency to go.chromium.org/luci/cipd/version
587d333 siso: fix noctx lint error in reapi/reapi_test.go
3e903df siso: fix noctx lint error after 6799580 merge
257932e siso: update version string to v1.3.12
221fea3 siso: local-upload improve logging
1c41a90 siso: log missing entries once per path
6118b1a siso: fix panic when using use_remote_exec_wrapper
a823e16 siso: Replace go.chromium.org/luci/common/retry with a own retry logic
0eebc53 siso: use :inputs label to expand target's inputs
6578b26 siso: cleanup e2e_trustedlocal_test.go
dd06dee siso: don't record prev id if step is skipped
fc70eb7 siso: add reapi_platform_properties.md
40b4e0d [go] Update to go 1.24.4 -> 1.24.5
715dd23 siso: fix set executables for files in filegroup
3d79412 siso: remove dependency to go.chromium.org/luci/common/system/signals
9d25aab kzipinfo: Add show command to show compilation unit info
ead4206 siso: allow `siso fetch` to use non-google RBE
c4bff9b [go] Update Go go1.23.11 -> go1.24.5.
c546251 kzipinfo: Add ls command to list compilation units
c976400 gong: Move Setup into build package
d845f34 siso: invalidate dir entry if local is not dir.
b2135fb kzipinfo: Initial commit
9828261 siso: fix symlink handling in scandeps
d01a9a7 siso: fix symlink handling in hashfs
fd6e285 siso: fix symlink dir handling in merkletree
96c0053 siso: fix default value for -C
6897f19 siso: scandeps parse args in @rspfile
c876f2e siso: add metrics for local upload feature
84f5f0f siso: local uploading select remotable only
8d496ec siso: scandeps add file for @file.
899d524 Fix whitespace in .../go/src/infra/build.
b115478 siso: update version string to v1.3.11
0abd3f6 siso: fix tls_ca_cert
92113d1 siso: print error even with --quiet
52e2b91 siso: rule debug logs scandeps
c0c0aaf gong: Implement initial operator evaluation
9d374c8 gong: Rename parse.ParseNode to just parse.Node
a0ae8dc siso: scandeps -fprofile-list=
59a12cd siso: provide full URL for audience
f6cc1f2 gong: Replace resolve.VerifyValueTypeIs with resolve.AsValue[T]
c60f1d4 siso: scandeps --include=
e77ec80 siso: scandeps workaround for soong g.cc.cc command line
2529693 siso: update version string to v1.3.10
70a9169 gong: Initial ListNode evaluator
f679cff gong: Initial AccessorNode evaluator
63f299f siso: document environment variables
861b81a siso: need to use DialPool
7fc9341 siso: add tls_ca_cert option
51b0814 siso: add quiet mode
6dfbad8 siso: add SISO_EXPERIMENTS=ignore-missing-outputs
b71ef44 siso: log start_local in siso.step log
c9ecf98 siso: don't use non-default -log_dir for noop shortcut
a64d428 siso: no mtime for symlink
e521d75 gong: Initial ConditionNode evaluator
7394cce siso: update version string to v1.3.9
3481d8c siso: Record PrevStepID and PrevStepOut in log entry.
156f995 gong: AST test should check for error kinds added in crrev.com/c/6733720
3acead7 siso: fix .ninja_log for regenerate manifest step
8b79de1 Make error able to distinguish between error kinds.
50ad4af siso: keep ninjaLogWriter open during *Build is alive
5821df5 siso: improve ninja parse performance
4ebe1e1 Add gitignore for gong binary
aaab825 gong: Initial LiteralNode evaluator
059f015 siso: use state_dir for .siso*
e5f8bcc siso: update version string to v1.3.8
c1de57b siso: fix file-access-trace log
ab80dce Reland "siso: use builddir for .ninja_log file."
34a939f siso: add SISO_EXPERIMENTS=ignore-missing-out-in-depfile
df54e8f Add msta@ and ovsienko@ to go/src/infra/build/OWNERS
8594040 gong: Evaluate BlockCommentNode as nil
53ebdb1 siso: log if $HOME is not set.
4ea75dc siso: don't treat tab as whitespace
b996333 siso: support `-d keepdepfile`
b5ad420 Revert "siso: use builddir for .ninja_log file."
bc2f619 siso: use builddir for .ninja_log file.
28a8552 siso: don't use luci-auth if $HOME is not set.
0b3a21e siso: luci-auth -> luci-auth-cloud-platform
06ff512 siso: fix init credential condition
6594ebd Add go.mod and go.sum files for all projects
23c86a8 siso: evaluate path in build
57d6b70 gong: Implement value equality checks
45cb733 Copy infra's LICENSE file to go/src/infra/build
46c39a9 gong: Initial scope implementation and use to read .gn and args.gn
94de34e siso: show reapi addr or RBE.
ae8fff0 siso: fix ui.Default usage
9d58571 siso: update version string to v1.3.7
309adda siso: allow empty SISO_REAPI_INSTANCE
be3b051 siso: add SISO_LIMITS=startlocal=N
1ece864 siso: fix for offline
8511b57 siso: update version string to v1.3.6
7194a59 Move material_web_components into Siso's root
d9d8f8e siso: add ninjafrontend subcommand
279c711 siso: run credhelper with 1 minute timeout
f2d3192 siso: don't initialize credential for offline mode
a68aa8b gong: Implement InputFileManager
0f74bed siso: disable Google Application Default for non-RBE
68ec648 siso: fix report for non-gn build
acfa2c8 siso: local file must exist if it is locally generated file
3b7e785 siso: update version string to v1.3.5
512e08c siso: don't rebuild for last failure fix if manifest build failed.
86d95fa siso: init credential if reopt needs cred even if project==""
897177a siso: don't panic if server doesn't provide cache_capabilities
3f5075b siso: optimize mapassign in inputMtime
01f7683 kajiya: fix typo in error message
ae2a441 siso: use RWLock for hashfs entry
ee1ba24 siso: prefer natural target in expanded targets
6b83b28 siso: no phony output log when not dirty
3224d4a siso: add gcc testcase repro for local upload
c3b9f2d siso: update version string to v1.3.4
0ebc1a2 siso: log action,command,inputroot digest on one log
f564ef1 siso: log missing input in dep only once per path, or {dep, path}
291be08 siso: make chatty input deps stat log to log.V(1)
45786b1 siso: log source for bytestreamio errors
71b538b siso: don't modify step.cmd.Input in depsFixCmd if fast deps is not used
a4f6919 gong: Abstract input sources from filesystem
ea9171e siso: local uploading fix for raw stdout/stderr
3b8aaa3 siso: update version string to v1.3.3
f95aa60 siso: respect abs path in hashfs
80095f7 siso: add SISO_EXPERIMENTS=oom-score-adj
9df35b4 siso: Use min instead of max to fix out of range access
31c3c71 siso: fix reCacheEnableWrite flag propagation
25b3732 siso: gn.star handles absolute path import
ad92d86 siso: add -reapi_grpc_conn_pool
5a31d37 [errors] Refactor uses of errors.Annotate where `err` could be nil.
bff272d siso: always create working directory in input tree
b032a86 siso: use compressor if server supported
4f7db3c kajiya: failed precondition if working dir doesn't exist.
7bda139 siso: update version string to v1.3.2
9bb0336 Reland "siso: support non-RBE backend"
0ac2968 [siso] implement reCacheEnableWrite (b/266518906)
229637c Revert "siso: support non-RBE backend"
d801053 refactor: Fix staticcheck issues in build module
1ad5193 siso: support non-RBE backend
fd9aa8c siso: add soong frontend_file support
7ab8d67 siso: add build/StatusReporter interface
a9fbe58 siso: add Infof/Warningf/Errorf to ui.UI and use them
33217e5 siso: version ncludes go module info
83b7d6f siso: Add -local_jobs flag
a5b107a siso: add -re_exec_enable option
5f4451c siso: fix ResultFromEntries
5bf1d22 gong: Do not return concrete errors
c2cfbd5 [siso] Fix link to public bug tracker
26b6bda gong: Initial value types
b2b56e4 siso: add -order_only flag in `siso query digraph`
ceb61df siso: fix for future mtime
ed6a1fc siso: update version string to v1.3.1
0c381f8 siso: Change the version to 1.3
6d9999d siso: Update README for external readers
1212573 siso: log restat unchanged mtime update
c8a58db siso: refactor file trace executor as execute.Executor
249d6f7 siso: add -output option to `siso query ideanalysis`
393fa5c siso: update version string to v1.2.9
1bbec23 build: fix noctx linter warnings
a99eed4 siso: allow at most 5 seconds future modification time
dd6e3d2 siso: add a test for hashfs.Entries
afe88df siso: cros chroot support
d15fc58 siso: Return error from LookupSymlinkNode in a test
982931d siso: fix too large FindMissingBlobs request message
6a2c12a siso: update version string to v1.2.8
36e5f44 siso: Log scandeps requests in json format
8901b92 Reland "siso: Derive inputs from ninja build files when necessary"
a1e86a5 Revert "siso: Derive inputs from ninja build files when necessary"
c67aebd siso: fail if no reapi specified when remote is requested
4fc7fd6 siso: regenerate proto by protoc 31.1
aee696d siso: fix panic in filegroup when -v 1
9bd6776 siso: allow fastlocal for non-batch mode
0c17498 siso: fix flaky TestBuild_ValidationsDependsOnOutput
8b1dede siso: Derive inputs from ninja build files when necessary
eea99ea siso: Output newline at the end of report output
e9a8017 siso: drop SISO_EXPERIMENTS=ignore-edge-change
a0ce9da siso: update version string to v1.2.7
8142148 build: This is to fix staticcheck QF1001 warning
6e18e4e siso: re-run step if build inputs/outputs are added or removed.
3b7cf11 Apply De Morgan's laws to all conditionals in ['.../go/src/infra', '.../go/src/infra/build']
1eaca7b siso: pass project and batch via ctx.flags
e0d71ba siso: update version string to v1.2.6

No-Try: true
Fixed: 440495698
Change-Id: Ie6161480579fdfd66d230243a4ae1a360b5aea92
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6874902
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2025-08-25 10:25:14 -07:00
Takuto Ikuta
c4c42f3181 Disable broken TestSetCpuFlags test on Windows
This is for
https://ci.chromium.org/ui/p/libyuv/builders/try/win_rel/4043/overview

Change-Id: If07dbcf180c9be5ef0b9b7c26db4a19e71e697e3
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6848407
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2025-08-21 13:18:52 -07:00
Takuto Ikuta
ec10b61c58 Remove a reference to is_nacl
Nacl is gone.

Bug: 40511454
No-Try: true
Change-Id: I45a052685db1fc7578e980e9c310cf3ad183098b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6840894
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2025-08-13 23:41:04 -07:00
Frank Barchard
d71cda1bb0 Rollback util cpuid hybrid detect due to android build errors
Bug: 438241552
Change-Id: Ie56aa7296e796e44e63d0dd913120b897b12cc9b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6843504
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2025-08-12 14:13:24 -07:00
George Steed
b7d97d5f3f [AArch64] Fix compilation due to incorrect register constraint
The y0_fraction and y1_fraction variables in InterpolateRow_NEON were
marked as modified by the inline-asm block, however
5eea7812826c551559fdcd4a6988fcf1fbe341f6 marked these variables as
`const` which caused both LLVM and GCC to emit errors about modification
of const variables.

There is no need for these variables to be modified in the loop since
they are read-only, so simply update the inline asm block constraints to
match.

Change-Id: I94ca3696c4163ede6ad27d645f0f445fcfb0a1c3
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6818289
Reviewed-by: Justin Green <greenjustin@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2025-08-05 11:23:20 -07:00
Frank Barchard
5eea781282 Fix util/cpuid hybrid detect
- clang-format applied

Bug: None
Change-Id: If8aec0bbb3d3461886f176a77e029833f5dc197d
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6805445
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2025-08-04 16:29:34 -07:00
Frank Barchard
48943bb378 Convert8To16 use VPSRLW instead of VPMULHUW for better lunarlake performance
- MCA says old version was 4 cycles and new version is 2.5 cycles/loop
- lunarlake is the only known cpu
mca -mcpu=lunarlake 100 iterations

Was vpmulhu
  Iterations:        100
  Instructions:      1200
  Total Cycles:      426
  Total uOps:        1200

  Dispatch Width:    8
  uOps Per Cycle:    2.82
  IPC:               2.82
  Block RThroughput: 4.0

Now vpsrlw
  Iterations:        100
  Instructions:      1200
  Total Cycles:      279
  Total uOps:        1400

  Dispatch Width:    8
  uOps Per Cycle:    5.02
  IPC:               4.30
  Block RThroughput: 2.5

Bug: None
Change-Id: I5a49e1cf1ed3dfb59fe9861a871df9862417c6a6
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6697745
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2025-08-04 12:42:50 -07:00
Frank Barchard
cdd3bae848 TestI400LargeSize fix for warning message build error
- change %ld to %zd for size_t printf warnings
- disable TestI400LargeSize when disabling SLOW_TESTS
- disable cpuid tests that read proc/cpuinfo test data files
- add ifdef around timers to allow hexagon build
- remove faulty hybrid detect
- remove old mips LIBYUV_DISABLE_DSPR2 reference in gyp build
- apply clang-format

Bug: 434382656
Change-Id: Id74812e6ef29d4a8d0ff967a9189d249b80816d4
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6812825
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2025-08-01 12:03:11 -07:00
Frank Barchard
3ff31b2a5f Make LibYUVConvertTest.TestI400LargeSize skip test on low end arm cpu
- detect lack of dot product instruction to infer the cpu is low end
- only run the test on higher end arm

Bug: 416842099
Change-Id: Idd2dd16a624bbba280cf531644440024b12f7ecf
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6804632
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2025-07-31 02:41:17 -07:00
Xi Ruoyao
dd9ced1c6d loong64: Use HWCAP instead of CPUCFG to detect LSX/LASX
Per the Software Development and Build Convention for LoongArch™
Architectures manual, on Linux we should use HWCAP instead of CPUCFG to
detect if LSX/LASX is available.  The reason is the kernel may be
configured to disable them, and CPUCFG cannot provide info about the
kernel support.

Change-Id: I3f1b23e6d4c91c7da81311fbbe294e36ff178121
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6772567
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2025-07-24 23:43:54 -07:00
Takuto Ikuta
96134e95a7 BUILD.gn: Disable libc++ modules for NEON and SVE
The -march arguments used for NEON and SVE builds in libyuv are
incompatible with libc++ modules. This change disables libc++ modules
for these build configurations to fix the build.

Bug: 425535758
Change-Id: I578a0d9929c10177903c567bc268407470b45034
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6695664
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2025-07-01 10:34:37 -07:00
George Steed
007b920232 [AArch64] Add SME implementation of ARGBToUVRow and similar
Mostly just a straightforward copy of the existing SVE2 code ported to
Streaming-SVE. Introduce new "any" kernels for non-multiple of two
cases, matching what we already do for SVE2.

The existing SVE2 code makes use of the Neon MOVI instruction that is
not supported in Streaming-SVE, so adjust the code to use FMOV instead
which has the same performance characteristics.

Change-Id: I74b7ea1fe8e6af75dfaf92826a4de775a1559f77
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6663806
Reviewed-by: Justin Green <greenjustin@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2025-06-30 09:20:23 -07:00
Junji Watanabe
9519b7df0e Set use_siso=true by default in .gn
This CL enables use_siso=true by default.
Developer builds will switch to Siso, or get suggestion to run
`gn clean` to switch.

No-Try: true
Bug: chromium:412968361
Change-Id: I1913d6735d835c614dca863ca7781f9154a4e42a
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6651381
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2025-06-23 23:50:32 -07:00
George Steed
88798bcd63 [AArch64] Add SME implementation of Convert8To16Row_SME
Mostly just a straightforward copy of the Neon code ported to
Streaming-SVE. There is no benefit from this kernel when the SVE vector
length is only 128 bits, so skip writing a non-streaming SVE
implementation.

Change-Id: Ide34dbb7125b5f2a1edda6ef7111a1a49aad324f
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6651565
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2025-06-23 11:32:56 -07:00
George Steed
1724c4be72 [AArch64] Add missing "+i8mm" feature when building SME
FEAT_I8MM is not unconditionally enabled with -march=armv9-a since it
only becomes mandatory from Armv9.1-A, so explicitly specify it in both
BUILD.gn and CMakeLists.txt.

Also flip the order of +sve2+i8mm => +i8mm+sve2 to match occurrences
elsewhere.

Change-Id: I8c37580d3718f380b772cdb726d8c30bcd5b9e2c
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6656718
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2025-06-19 12:10:23 -07:00
Frank Barchard
6f729fbe65 ARGBToUV SSE use average of 4 pixels
- Was using avgb twice for non-exact and C for exact.

On Skylake Xeon:

Now SSE3
ARGBToJ420_Opt (326 ms)

Was
Exact C
ARGBToJ420_Opt (871 ms)
Not exact AVX2
ARGBToJ420_Opt (237 ms)
Not exact SSSE3
ARGBToJ420_Opt (312 ms)

Bug: 381138208
Change-Id: I6d1081bb52e36f06736c0c6575fa82bb2268629b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6629605
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Ben Weiss <bweiss@google.com>
2025-06-17 11:55:27 -07:00
Frank Barchard
889613683a Add hybrid detect for Intel laptop cpus
- Add +i8mm build option for sve ARGBToUV which uses usdot
- util/cpuid Get cpu count (windows, macos, linux)
- For each x86 cpu, detect hybrid (e-core)
- Includes a comment fix for ubsan unittest
- Bump version
- Apply clang format to util/*.c as well as all *.cc/*.h

Bug: 424637372
Change-Id: I08310e18051fff62c9e4e4a10d1e4361871119ac
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6635640
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2025-06-13 13:22:54 -07:00
George Steed
3d66e94fb5 [AArch64] Improve ARGBToUVRow_SVE2 and related kernels
This commit reworks the implementation of ARGBToUVMatrixRow_SVE2, using
an approach similar to that recently used in
61bdaee13a701d2b52c6dc943ccc5c888077a591.

In particular we can rework these SVE2 implementations to use 8-bit
dot-product instructions instead of 16-bit, allowing us to process more
data in a single vector.

To ensure that the input values fit in 8-bits, negate the UV constants
arrays passed to the kernel and undo the now-unnecessary flipping of the
middle two component values.

This commit mostly reverses the performance inversion where the Neon
I8MM implementation was previously faster than the SVE2 implementation.
The reduction in runtime observed compared to the existing Neon I8MM
implementation is now:

Cortex-A510:  +5.6% (!)
Cortex-A520:  -3.0%
Cortex-A710: -12.6%
Cortex-A715: -10.9%
Cortex-A720: -10.8%
  Cortex-X2:  -3.8%
  Cortex-X3: -10.3%
  Cortex-X4:  -9.5%
Cortex-X925:  -6.7%

Change-Id: I30253976dc8e3651cfb5fd39b63a6763975d41e3
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6640990
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Justin Green <greenjustin@google.com>
2025-06-12 14:10:44 -07:00
George Steed
1b2f6cdbe8 [AArch64] Unroll I210ToAR30Row_{SVE2,SME}
Now that we have a STOREAR30_SVE_2X implementation, we can use this to
unroll other kernels. The predication on I210ToAR30Row needs adjusting
to allow loading two vectors of Y compared to one vector of U/V, and
additionally UZP is needed to ensure the data arrangement in vector
lanes matches the U/V layout. LD2H could also be used, however this
provides no performance improvement on most cores and would necessitate
the addition of an "any" kernel to handle the case where width % 2 != 0.

Reduction in run times of I210ToAR30Row_SVE2 observed compared to the
previous SVE2 implementation: (note that even in the observed slowdowns,
the SVE2 implementation still outperforms the existing Neon code)

Cortex-A510: -37.1%
Cortex-A520: -39.1%
Cortex-A710: +1.6% (!)
Cortex-A715: +6.5% (!)
Cortex-A720: +6.5% (!)
  Cortex-X2: -2.9%
  Cortex-X3: -2.2%
  Cortex-X4: -8.8%
Cortex-X925: -3.5%

Change-Id: I2ff285b48105883526eceb8be1fcbe0e033a553b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6640989
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Justin Green <greenjustin@google.com>
2025-06-12 14:10:21 -07:00
George Steed
867bdc51ed [AArch64] Unroll I422ToAR30Row_{SVE2,SME}
The existing STOREAR30_SVE macro works fine for out of order cores,
however for in-order cores the number of dependent vector instructions
laid out consecutively impacts performance.

We can improve this by unrolling the loop to process two sets of vectors
at a time, allowing little cores to process two independent streams of
vector instructions at the same time to improve performance. Using one
set of ZIP instructions at the end allows us to (a) avoid ST4 which we
know is slow on some micro-architectures, and (b) enable the use of
predication and avoid the need for separate "any" kernels.

Reduction in run times of I422ToAR30Row_SVE2 observed compared to the
previous SVE2 implementation:

Cortex-A510: -37.7%
Cortex-A520: -38.8%
Cortex-A710: -14.8%
Cortex-A715: -17.1%
Cortex-A720: -16.9%
  Cortex-X2: -10.3%
  Cortex-X3:  -6.7%
  Cortex-X4:  -9.4%
Cortex-X925:  -7.1%

Change-Id: I160fb41300d2d08fce2e6eb92181324fd723a02d
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6632916
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Justin Green <greenjustin@google.com>
2025-06-12 14:09:49 -07:00
Frank Barchard
843cda7e7b TestI400LargeSize test __x86_64__, _M_X64, or __aarch64__
- apply clang-format to row_neon64.cc

Bug: 416842099
Change-Id: Ic21f08d8b65bb86cf72eba82d45591f6558170ec
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6634515
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2025-06-10 15:53:02 -07:00