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
build_overrides [tracing] Remove enable_base_tracing 2025-05-15 01:22:38 -07:00
docs Fix typo, remove mips as title already contain mips 2025-04-15 14:02:28 -07:00
include Rollback util cpuid hybrid detect due to android build errors 2025-08-12 14:13:24 -07:00
infra/config infra/config: Remove luci.recipes.use_python3 experiment 2025-09-02 01:08:51 -07:00
riscv_script Support RVV v0.12 intrinsics for row_rvv.cc & scale_rvv.cc 2024-06-17 18:01:49 +00:00
source loong64: UV subsample's 4-pixel rounding average and ARGBToJ444 fixed-point scaling 2025-09-03 12:22:44 -07:00
tools_libyuv Remove libyuv dependency on base/ 2025-01-08 09:04:21 -08:00
unit_test Disable broken TestSetCpuFlags test on Windows 2025-08-21 13:18:52 -07:00
util Rollback util cpuid hybrid detect due to android build errors 2025-08-12 14:13:24 -07:00
.clang-format clang-format libyuv 2016-11-07 17:37:23 -08:00
.gitignore DetilePlane and unittest for NEON 2022-01-31 20:05:55 +00:00
.gn Set use_siso=true by default in .gn 2025-06-23 23:50:32 -07:00
.vpython3 [libyuv] Bump vpython from 3.8 to 3.11 2025-09-03 12:22:19 -07:00
Android.bp Enable CFI assembly support 2025-03-31 10:47:47 -07:00
Android.mk Split scale_test and scale_plane_test to allow building on small devices 2023-12-09 18:39:41 +00:00
AUTHORS [DEPS] Remove cleanup_links pre_deps_hooks 2024-04-08 15:47:48 +00:00
BUILD.gn Fix assert(current_toolchain == default_toolchain) failure on win bots. 2025-09-01 07:05:21 -07:00
CM_linux_packages.cmake Use grep extended regex for version 2024-11-13 02:11:17 +00:00
CMakeLists.txt [AArch64] Add missing "+i8mm" feature when building SME 2025-06-19 12:10:23 -07:00
codereview.settings [infra] remove no longer supported git cl upload setting. 2021-04-28 12:47:52 +00:00
DEPS Roll siso and update its CIPD package 2025-08-25 10:25:14 -07:00
DIR_METADATA Move metadata in OWNERS files to DIR_METADATA files 2021-02-09 19:34:43 +00:00
download_vs_toolchain.py Update pylintrc to a pep-8 like style 2024-12-18 05:38:56 -08:00
libyuv.gni Revert "Do not enable libyuv_use_sme for is_android" 2024-10-15 18:20:36 +00:00
libyuv.gyp Revert "Enable explicit control over LoongArch LSX & LASX for GYP builds" 2025-09-05 20:04:18 -07:00
libyuv.gypi Add missing files for loong64 GYP build 2025-04-15 14:03:27 -07:00
LICENSE Update Copyright notice to follow new chromium conventions. 2012-08-08 19:04:24 +00:00
linux.mk Split convert_test and convert_argb_test to allow building on small systems that run out of memory compiling unittests. 2023-12-08 13:39:56 +00:00
OWNERS add jansson@google.com to infra owners to cover when Mirko is OOO 2022-10-28 09:46:02 +00:00
PATENTS LibYuv: Adding PATENT and LICENSE files 2011-10-25 16:15:49 +00:00
PRESUBMIT.py Update pylintrc to a pep-8 like style 2024-12-18 05:38:56 -08:00
public.mk use unix line endings 2018-06-20 23:19:59 +00:00
pylintrc Update pylintrc to a pep-8 like style 2024-12-18 05:38:56 -08:00
README.chromium Rollback util cpuid hybrid detect due to android build errors 2025-08-12 14:13:24 -07:00
README.md Update README.md and environment_variables.md for Arm 2024-09-20 00:29:33 +00:00
winarm.mk NV12 Copy, include scale_uv.h 2020-12-08 18:54:16 +00:00

libyuv is an open source project that includes YUV scaling and conversion functionality.

  • Scale YUV to prepare content for compression, with point, bilinear or box filter.
  • Convert to YUV from webcam formats for compression.
  • Convert to RGB formats for rendering/effects.
  • Rotate by 90/180/270 degrees to adjust for mobile devices in portrait mode.
  • Optimized for SSSE3/AVX2 on x86/x64.
  • Optimized for Neon/SVE2/SME on Arm.
  • Optimized for MSA on Mips.
  • Optimized for RVV on RISC-V.

Development

See Getting started for instructions on how to get started developing.

You can also browse the docs directory for more documentation.