Compare commits

..

No commits in common. "df79165ad246fd2c8419cd813d9961f16d7d6016" and "738a53ce271acc8cde81798bbdd22dca2fde81a3" have entirely different histories.

3 changed files with 891 additions and 153 deletions

1009
DEPS

File diff suppressed because it is too large Load Diff

View File

@ -823,11 +823,7 @@ extern "C" {
#endif
#if !defined(LIBYUV_DISABLE_RVV) && defined(__riscv_vector)
#if defined(__riscv_v_intrinsic) && __riscv_v_intrinsic >= 100000
// Since v1.0, vcreate intrinsic is introduced
#define LIBYUV_RVV_HAS_VCREATE
#endif
#if defined(__riscv_v_intrinsic) && __riscv_v_intrinsic >= 12000
#if defined(__riscv_v_intrinsic) && __riscv_v_intrinsic > 11000
// Since v0.12, TUPLE_TYPE is introduced for segment load and store.
#define LIBYUV_RVV_HAS_TUPLE_TYPE
// Since v0.12, VXRM(fixed-point rounding mode) is included in arguments of
@ -836,6 +832,7 @@ extern "C" {
#endif
#endif
// The following are available for RVV 1.2
#if !defined(LIBYUV_DISABLE_RVV) && defined(__riscv_vector)
#define HAS_ABGRTOYJROW_RVV
#define HAS_ABGRTOYROW_RVV
@ -861,9 +858,10 @@ extern "C" {
#define HAS_SPLITRGBROW_RVV
#define HAS_SPLITUVROW_RVV
#define HAS_SPLITXRGBROW_RVV
#endif
// The following are available for RVV v0.11 and RVV v1.0
// TODO(fbarchard): Port to RVV v0.12 (tuple)
// The following are available for RVV 1.1
// TODO(fbarchard): Port to RVV 1.2 (tuple)
// missing support for vcreate_v:
// __riscv_vcreate_v_u16m2x2
// __riscv_vcreate_v_u16m2x4
@ -874,8 +872,8 @@ extern "C" {
// __riscv_vcreate_v_u8m2x3
// __riscv_vcreate_v_u8m2x4
// __riscv_vcreate_v_u8m4x2
#if !defined(LIBYUV_RVV_HAS_TUPLE_TYPE) || \
(defined(LIBYUV_RVV_HAS_TUPLE_TYPE) && defined(LIBYUV_RVV_HAS_VCREATE))
#if !defined(LIBYUV_DISABLE_RVV) && defined(__riscv_vector) && \
!defined(LIBYUV_RVV_HAS_TUPLE_TYPE)
#define HAS_AB64TOARGBROW_RVV
#define HAS_AR64TOAB64ROW_RVV
#define HAS_ARGBATTENUATEROW_RVV
@ -910,7 +908,6 @@ extern "C" {
#define HAS_RGB24TOARGBROW_RVV
#define HAS_RGBATOARGBROW_RVV
#endif
#endif
#if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__)
#if defined(VISUALC_HAS_AVX2)

View File

@ -157,11 +157,10 @@ extern "C" {
#define HAS_SCALEARGBROWDOWN2_RVV
#endif
// The following are available on RVV 1.1
// TODO: Port to RVV 1.2
#if !defined(LIBYUV_DISABLE_RVV) && defined(__riscv_vector) && \
defined(__riscv_v_intrinsic)
// The following are available on RVV v0.11 and RVV v1.0
// TODO: Port to RVV v0.12
#if __riscv_v_intrinsic == 11000 || __riscv_v_intrinsic >= 100000
defined(__riscv_v_intrinsic) && __riscv_v_intrinsic == 11000
#define HAS_SCALEROWDOWN34_0_BOX_RVV
#define HAS_SCALEROWDOWN34_1_BOX_RVV
#define HAS_SCALEROWDOWN38_2_BOX_RVV
@ -172,7 +171,12 @@ extern "C" {
#define HAS_SCALEROWDOWN38_RVV
#define HAS_SCALEROWUP2_BILINEAR_RVV
#define HAS_SCALEROWUP2_LINEAR_RVV
#endif
// The following are available on RVV
#if !defined(LIBYUV_DISABLE_RVV) && defined(__riscv_vector) && \
defined(__riscv_v_intrinsic) && __riscv_v_intrinsic == 11000
#define HAS_SCALEARGBFILTERCOLS_RVV
#define HAS_SCALEARGBROWDOWN2BOX_RVV
#define HAS_SCALEARGBROWDOWN2LINEAR_RVV
#define HAS_SCALEARGBROWDOWNEVENBOX_RVV
@ -190,12 +194,6 @@ extern "C" {
#define HAS_SCALEUVROWDOWN2LINEAR_RVV
#endif
// The following are available on RVV v0.11
#if __riscv_v_intrinsic == 11000
#define HAS_SCALEARGBFILTERCOLS_RVV
#endif
#endif
// Scale ARGB vertically with bilinear interpolation.
void ScalePlaneVertical(int src_height,
int dst_width,