13 Commits

Author SHA1 Message Date
Wan-Teh Chang
6ac7c8f251 Revert "Do not enable libyuv_use_sme for is_android"
This reverts commit 51e2e12b9b59452b1ad16c33a88bbcdd085b5450.

Reason for revert: The llvm bug fix
https://github.com/llvm/llvm-project/pull/102979 has been rolled into
Chrome in https://chromium-review.googlesource.com/5921462.

Original change's description:
> Do not enable libyuv_use_sme for is_android
>
> Revert the changes to libyuv.gni in commit dfa279f.
>
> The linker error "undefined symbol: __getauxval" referenced by
> sme-abi-init.c:26 on Android, previously reported in
> https://libyuv.g-issues.chromium.org/issues/359006069#comment2, has not
> been fixed yet. See
> https://chromium-review.googlesource.com/c/chromium/src/+/5918245?tab=checks.
>
> Change-Id: I94bd243e2863b9c316909f63f757fd95ec55dc18
> Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5917455
> Reviewed-by: Frank Barchard <fbarchard@chromium.org>

Bug: 359006069
Change-Id: Ic801c1bcb65894fdfe718ba6454669c8623a2e15
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5935026
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: George Steed <george.steed@arm.com>
2024-10-15 18:20:36 +00:00
Wan-Teh Chang
51e2e12b9b Do not enable libyuv_use_sme for is_android
Revert the changes to libyuv.gni in commit dfa279f.

The linker error "undefined symbol: __getauxval" referenced by
sme-abi-init.c:26 on Android, previously reported in
https://libyuv.g-issues.chromium.org/issues/359006069#comment2, has not
been fixed yet. See
https://chromium-review.googlesource.com/c/chromium/src/+/5918245?tab=checks.

Change-Id: I94bd243e2863b9c316909f63f757fd95ec55dc18
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5917455
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2024-10-09 08:24:00 +00:00
George Steed
dfa279fc65 Re-enable SME when building for AArch64 Android
Now that SME has been re-enabled for Linux for a while, also re-enable
it for Android when building with a sufficiently new version of LLVM.

Bug: b/359006069
Change-Id: Ibaa47e31826cf20136a11d551621fd62c1abab3c
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5908389
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2024-10-04 17:43:26 +00:00
Wan-Teh Chang
5045476744 Restrict libyuv_use_sme to is_linux
When libyuv is used in Chrome, there are linker errors or other build
errors on the following platforms:
- Android: undefined symbol: __getauxval
- Fuchsia: undefined symbol: __aarch64_sme_accessible
- macOS: undefined symbol: __arm_tpidr2_save
- Windows: Incorrect size for TransposeWxH_SME prologue: 52 bytes of
  instructions in range, but .seh directives corresponding to 40 bytes

Restrict libyuv_use_sme to is_linux (which excludes Android and
ChromeOS) to work around these errors.

Bug: libyuv:359006069
Change-Id: Ia3ffd6e4ce4859ae7f811836cb1d8d61f6943b6f
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5779858
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2024-08-11 20:37:04 +00:00
Wan-Teh Chang
1fad3ab1fa Run "gn format" on BUILD.gn and libyuv.gni
Change-Id: I2f201383f0a8b91d5a97c9ec4556de4288aa6696
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5779859
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2024-08-11 20:32:05 +00:00
George Steed
a68b959873 [AArch64] Add initial build system support for SME
Extend both the CMake and BUILD.gn configurations to support building a
library with the Arm Scalable Matrix Extension (SME). Add an initial
(empty) rotate_sme.cc source file to populate the library for now.

Change-Id: Icd4bd6a8ce72ba132299b00c99478a18a85d869a
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5588664
Reviewed-by: Justin Green <greenjustin@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2024-06-08 23:32:41 +00:00
George Steed
9a8be20def [AArch64] Add :libyuv_sve library in preparation for SVE kernels
This commit only adds the bare minimum to get the new library building
through GN, the actual content of row_sve.cc is empty for now until we
start porting some kernels across.

Bug: libyuv:973
Change-Id: Ibdf4fc258761f3e507d700f27a405099c667ac75
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5424738
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2024-04-09 03:10:01 +00:00
Cheng Yangyang
c0031cfd95 Add GN builds on loongarch platform.
Currently, chromium has merged loongarch config file in bug:1454442,
and so we resubmit gn builds support for loongarch.

Bug: chromium:1289502
Change-Id: Iac83f5ea016945f7d9cc5f6de20d4c561bab6347
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4615589
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-06-19 17:47:05 +00:00
Prashanth Swaminathan
8b4aa7cef9 Add RVV files to Android and GN builds
Include row_rvv.cc source file and support for riscv64 builds in Android
and GN builds. Adds GN build flag to disable RISC-V vector operations.
Switches dynamic linker to 64-bit by default, with exceptions for 32-bit
targets as defined in //build/config/android/abi.gni.

Bug: b/280364043
Test: Verified local build via Android and GN.
Change-Id: I1bbd36f16aafa16d4bfd117de03354be79743a9d
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4501727
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Prashanth Swaminathan <prashanthsw@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2023-05-09 15:31:51 +00:00
Fabrice de Gans
73968bd946 [code-health] Migrate presubmit to python3
This also fixes a presubmit warning by formatting a gni file.

No-Try: True
Bug: 942720
Change-Id: I50bfc993282c5546753ba2be466ba06a5ff9cc6a
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3902395
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2022-09-26 21:57:55 +00:00
lixia zhang
21be9122aa libyuv:loongson optimize compare/row/scale/rotate files with mmi.
Currently, libyuv supports MIPS SIMD Arch(MSA),
but libyuv does not supports MultiMedia Instruction(MMI)(such as loongson3a platform).

In order to improve performance of libyuv on loongson3a platform,
this provides optimize 98 functions with mmi.

BUG=libyuv:804

Change-Id: I8947626009efad769b3103a867363ece25d79629
Reviewed-on: https://chromium-review.googlesource.com/1122064
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2018-07-20 22:53:04 +00:00
Frank Barchard
c5323b0fdc Add MIPS SIMD Arch (MSA) optimized MirrorRow function
As per the preparation patch added in Chromium sources at,
2150943003: Add MIPS SIMD Arch (MSA) build flags for GYP/GN builds

This patch adds first MSA optimized function in libYUV project.

BUG=libyuv:634
R=fbarchard@google.com

Review URL: https://codereview.chromium.org/2285683002 .
2016-09-22 16:12:22 -07:00
Edward Lemur
d8fe1ad6bb GN: Add GN test targets.
BUG=libyuv:523
R=fbarchard@google.com, kjellander@chromium.org, magjed@chromium.org

Review URL: https://codereview.chromium.org/2317073002 .
2016-09-13 12:02:40 +02:00