From 98d065370c54ce9d101a05cc2be8a15114bbb882 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Fri, 5 Dec 2025 08:08:36 +0300 Subject: [PATCH] Build fix for RISC-V RVV. --- 3rdparty/libpng/patches/riscv_rvv_fix.patch | 13 +++++++++++++ 3rdparty/libpng/riscv/filter_rvv_intrinsics.c | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 3rdparty/libpng/patches/riscv_rvv_fix.patch diff --git a/3rdparty/libpng/patches/riscv_rvv_fix.patch b/3rdparty/libpng/patches/riscv_rvv_fix.patch new file mode 100644 index 0000000000..77b125a899 --- /dev/null +++ b/3rdparty/libpng/patches/riscv_rvv_fix.patch @@ -0,0 +1,13 @@ +diff --git a/3rdparty/libpng/riscv/filter_rvv_intrinsics.c b/3rdparty/libpng/riscv/filter_rvv_intrinsics.c +index 8d277d14cd..7e61fb89fb 100644 +--- a/3rdparty/libpng/riscv/filter_rvv_intrinsics.c ++++ b/3rdparty/libpng/riscv/filter_rvv_intrinsics.c +@@ -142,7 +142,7 @@ png_read_filter_row_avg_rvv(size_t len, size_t bpp, unsigned char* row, + x = __riscv_vle8_v_u8m1(row, vl); + + /* a = (a + b) / 2, round to zero with vxrm = 2 */ +- a = __riscv_vaaddu_wx_u8m1(a, b, 2, vl); ++ a = __riscv_vaaddu_vv_u8m1(a, b, 2, vl); + + /* a += x */ + a = __riscv_vadd_vv_u8m1(a, x, vl); diff --git a/3rdparty/libpng/riscv/filter_rvv_intrinsics.c b/3rdparty/libpng/riscv/filter_rvv_intrinsics.c index 8d277d14cd..7e61fb89fb 100644 --- a/3rdparty/libpng/riscv/filter_rvv_intrinsics.c +++ b/3rdparty/libpng/riscv/filter_rvv_intrinsics.c @@ -142,7 +142,7 @@ png_read_filter_row_avg_rvv(size_t len, size_t bpp, unsigned char* row, x = __riscv_vle8_v_u8m1(row, vl); /* a = (a + b) / 2, round to zero with vxrm = 2 */ - a = __riscv_vaaddu_wx_u8m1(a, b, 2, vl); + a = __riscv_vaaddu_vv_u8m1(a, b, 2, vl); /* a += x */ a = __riscv_vadd_vv_u8m1(a, x, vl);