mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2025-12-06 16:56:55 +08:00
Add cpuid target to CMakeList.txt
Reduce convert_test to just Opt on RISC-V cmake -B out/Release/ -DCMAKE_BUILD_TYPE=Release . cmake --build out/Release/ -t cpuid ./out/Release/cpuid Cpu Flags 0x30000001 Has RISCV 0x10000000 Has RVV 0x20000000 Bug: libyuv:956 Change-Id: I3cca40361af85d983e52465660c0b4d205cd82a5 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5110826 Reviewed-by: Mirko Bonadei <mbonadei@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
This commit is contained in:
parent
6dc03dacbf
commit
7da8059c26
@ -37,6 +37,10 @@ if(WIN32)
|
|||||||
SET_TARGET_PROPERTIES ( ${ly_lib_shared} PROPERTIES IMPORT_PREFIX "lib" )
|
SET_TARGET_PROPERTIES ( ${ly_lib_shared} PROPERTIES IMPORT_PREFIX "lib" )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# this creates the cpuid tool
|
||||||
|
ADD_EXECUTABLE ( cpuid ${ly_base_dir}/util/cpuid.c )
|
||||||
|
TARGET_LINK_LIBRARIES ( cpuid ${ly_lib_static} )
|
||||||
|
|
||||||
# this creates the conversion tool
|
# this creates the conversion tool
|
||||||
ADD_EXECUTABLE ( yuvconvert ${ly_base_dir}/util/yuvconvert.cc )
|
ADD_EXECUTABLE ( yuvconvert ${ly_base_dir}/util/yuvconvert.cc )
|
||||||
TARGET_LINK_LIBRARIES ( yuvconvert ${ly_lib_static} )
|
TARGET_LINK_LIBRARIES ( yuvconvert ${ly_lib_static} )
|
||||||
|
|||||||
@ -147,6 +147,7 @@ namespace libyuv {
|
|||||||
free_aligned_buffer_page_end(src_v); \
|
free_aligned_buffer_page_end(src_v); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(ENABLE_FULL_TESTS)
|
||||||
#define TESTPLANARTOP(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
#define TESTPLANARTOP(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
||||||
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, \
|
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, \
|
||||||
DST_SUBSAMP_X, DST_SUBSAMP_Y, SRC_DEPTH) \
|
DST_SUBSAMP_X, DST_SUBSAMP_Y, SRC_DEPTH) \
|
||||||
@ -162,6 +163,14 @@ namespace libyuv {
|
|||||||
TESTPLANARTOPI(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, SRC_SUBSAMP_Y, \
|
TESTPLANARTOPI(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, SRC_SUBSAMP_Y, \
|
||||||
FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, DST_SUBSAMP_Y, \
|
FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, DST_SUBSAMP_Y, \
|
||||||
benchmark_width_, _Opt, +, 0, SRC_DEPTH)
|
benchmark_width_, _Opt, +, 0, SRC_DEPTH)
|
||||||
|
#else
|
||||||
|
#define TESTPLANARTOP(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
||||||
|
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, \
|
||||||
|
DST_SUBSAMP_X, DST_SUBSAMP_Y, SRC_DEPTH) \
|
||||||
|
TESTPLANARTOPI(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, SRC_SUBSAMP_Y, \
|
||||||
|
FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, DST_SUBSAMP_Y, \
|
||||||
|
benchmark_width_, _Opt, +, 0, SRC_DEPTH)
|
||||||
|
#endif
|
||||||
|
|
||||||
TESTPLANARTOP(I420, uint8_t, 1, 2, 2, I420, uint8_t, 1, 2, 2, 8)
|
TESTPLANARTOP(I420, uint8_t, 1, 2, 2, I420, uint8_t, 1, 2, 2, 8)
|
||||||
TESTPLANARTOP(I422, uint8_t, 1, 2, 1, I420, uint8_t, 1, 2, 2, 8)
|
TESTPLANARTOP(I422, uint8_t, 1, 2, 1, I420, uint8_t, 1, 2, 2, 8)
|
||||||
@ -285,6 +294,7 @@ TESTPLANARTOP(I412, uint16_t, 2, 1, 1, I444, uint8_t, 1, 1, 1, 12)
|
|||||||
free_aligned_buffer_page_end(src_uv); \
|
free_aligned_buffer_page_end(src_uv); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(ENABLE_FULL_TESTS)
|
||||||
#define TESTAPLANARTOP(SRC_FMT_PLANAR, PN, PIXEL_STRIDE, OFF_U, OFF_V, \
|
#define TESTAPLANARTOP(SRC_FMT_PLANAR, PN, PIXEL_STRIDE, OFF_U, OFF_V, \
|
||||||
SRC_SUBSAMP_X, SRC_SUBSAMP_Y, FMT_PLANAR, SUBSAMP_X, \
|
SRC_SUBSAMP_X, SRC_SUBSAMP_Y, FMT_PLANAR, SUBSAMP_X, \
|
||||||
SUBSAMP_Y) \
|
SUBSAMP_Y) \
|
||||||
@ -300,6 +310,14 @@ TESTPLANARTOP(I412, uint16_t, 2, 1, 1, I444, uint8_t, 1, 1, 1, 12)
|
|||||||
TESTAPLANARTOPI(SRC_FMT_PLANAR, PIXEL_STRIDE, SRC_SUBSAMP_X, SRC_SUBSAMP_Y, \
|
TESTAPLANARTOPI(SRC_FMT_PLANAR, PIXEL_STRIDE, SRC_SUBSAMP_X, SRC_SUBSAMP_Y, \
|
||||||
FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, benchmark_width_, _Opt, +, \
|
FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, benchmark_width_, _Opt, +, \
|
||||||
0, PN, OFF_U, OFF_V)
|
0, PN, OFF_U, OFF_V)
|
||||||
|
#else
|
||||||
|
#define TESTAPLANARTOP(SRC_FMT_PLANAR, PN, PIXEL_STRIDE, OFF_U, OFF_V, \
|
||||||
|
SRC_SUBSAMP_X, SRC_SUBSAMP_Y, FMT_PLANAR, SUBSAMP_X, \
|
||||||
|
SUBSAMP_Y) \
|
||||||
|
TESTAPLANARTOPI(SRC_FMT_PLANAR, PIXEL_STRIDE, SRC_SUBSAMP_X, SRC_SUBSAMP_Y, \
|
||||||
|
FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, benchmark_width_, _Opt, +, \
|
||||||
|
0, PN, OFF_U, OFF_V)
|
||||||
|
#endif
|
||||||
|
|
||||||
TESTAPLANARTOP(Android420, I420, 1, 0, 0, 2, 2, I420, 2, 2)
|
TESTAPLANARTOP(Android420, I420, 1, 0, 0, 2, 2, I420, 2, 2)
|
||||||
TESTAPLANARTOP(Android420, NV12, 2, 0, 1, 2, 2, I420, 2, 2)
|
TESTAPLANARTOP(Android420, NV12, 2, 0, 1, 2, 2, I420, 2, 2)
|
||||||
@ -402,6 +420,7 @@ int I400ToNV21(const uint8_t* src_y,
|
|||||||
free_aligned_buffer_page_end(src_v); \
|
free_aligned_buffer_page_end(src_v); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(ENABLE_FULL_TESTS)
|
||||||
#define TESTPLANARTOBP(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
#define TESTPLANARTOBP(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
||||||
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, \
|
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, \
|
||||||
DST_SUBSAMP_X, DST_SUBSAMP_Y, SRC_DEPTH) \
|
DST_SUBSAMP_X, DST_SUBSAMP_Y, SRC_DEPTH) \
|
||||||
@ -418,6 +437,14 @@ int I400ToNV21(const uint8_t* src_y,
|
|||||||
TESTPLANARTOBPI(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
TESTPLANARTOBPI(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
||||||
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, \
|
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, \
|
||||||
DST_SUBSAMP_Y, benchmark_width_, _Opt, +, 0, SRC_DEPTH)
|
DST_SUBSAMP_Y, benchmark_width_, _Opt, +, 0, SRC_DEPTH)
|
||||||
|
#else
|
||||||
|
#define TESTPLANARTOBP(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
||||||
|
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, \
|
||||||
|
DST_SUBSAMP_X, DST_SUBSAMP_Y, SRC_DEPTH) \
|
||||||
|
TESTPLANARTOBPI(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
||||||
|
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, \
|
||||||
|
DST_SUBSAMP_Y, benchmark_width_, _Opt, +, 0, SRC_DEPTH)
|
||||||
|
#endif
|
||||||
|
|
||||||
TESTPLANARTOBP(I420, uint8_t, 1, 2, 2, NV12, uint8_t, 1, 2, 2, 8)
|
TESTPLANARTOBP(I420, uint8_t, 1, 2, 2, NV12, uint8_t, 1, 2, 2, 8)
|
||||||
TESTPLANARTOBP(I420, uint8_t, 1, 2, 2, NV21, uint8_t, 1, 2, 2, 8)
|
TESTPLANARTOBP(I420, uint8_t, 1, 2, 2, NV21, uint8_t, 1, 2, 2, 8)
|
||||||
@ -519,6 +546,7 @@ TESTPLANARTOBP(I212, uint16_t, 2, 2, 1, P212, uint16_t, 2, 2, 1, 12)
|
|||||||
free_aligned_buffer_page_end(src_uv); \
|
free_aligned_buffer_page_end(src_uv); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(ENABLE_FULL_TESTS)
|
||||||
#define TESTBPTOBP(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
#define TESTBPTOBP(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
||||||
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, \
|
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, \
|
||||||
DST_SUBSAMP_Y, SRC_DEPTH, TILE_WIDTH, TILE_HEIGHT) \
|
DST_SUBSAMP_Y, SRC_DEPTH, TILE_WIDTH, TILE_HEIGHT) \
|
||||||
@ -542,6 +570,15 @@ TESTPLANARTOBP(I212, uint16_t, 2, 2, 1, P212, uint16_t, 2, 2, 1, 12)
|
|||||||
FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, DST_SUBSAMP_Y, \
|
FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, DST_SUBSAMP_Y, \
|
||||||
benchmark_width_, _NullY, +, 0, 0, SRC_DEPTH, TILE_WIDTH, \
|
benchmark_width_, _NullY, +, 0, 0, SRC_DEPTH, TILE_WIDTH, \
|
||||||
TILE_HEIGHT)
|
TILE_HEIGHT)
|
||||||
|
#else
|
||||||
|
#define TESTBPTOBP(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, \
|
||||||
|
SRC_SUBSAMP_Y, FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, \
|
||||||
|
DST_SUBSAMP_Y, SRC_DEPTH, TILE_WIDTH, TILE_HEIGHT) \
|
||||||
|
TESTBPTOBPI(SRC_FMT_PLANAR, SRC_T, SRC_BPC, SRC_SUBSAMP_X, SRC_SUBSAMP_Y, \
|
||||||
|
FMT_PLANAR, DST_T, DST_BPC, DST_SUBSAMP_X, DST_SUBSAMP_Y, \
|
||||||
|
benchmark_width_, _NullY, +, 0, 0, SRC_DEPTH, TILE_WIDTH, \
|
||||||
|
TILE_HEIGHT)
|
||||||
|
#endif
|
||||||
|
|
||||||
TESTBPTOBP(NV21, uint8_t, 1, 2, 2, NV12, uint8_t, 1, 2, 2, 8, 1, 1)
|
TESTBPTOBP(NV21, uint8_t, 1, 2, 2, NV12, uint8_t, 1, 2, 2, 8, 1, 1)
|
||||||
TESTBPTOBP(NV12, uint8_t, 1, 2, 2, NV12Mirror, uint8_t, 1, 2, 2, 8, 1, 1)
|
TESTBPTOBP(NV12, uint8_t, 1, 2, 2, NV12Mirror, uint8_t, 1, 2, 2, 8, 1, 1)
|
||||||
@ -616,8 +653,6 @@ TESTBPTOBP(MT2T, uint8_t, 10 / 8, 2, 2, P010, uint16_t, 2, 2, 2, 10, 16, 32)
|
|||||||
benchmark_width_, _Opt, +, 0)
|
benchmark_width_, _Opt, +, 0)
|
||||||
#else
|
#else
|
||||||
#define TESTATOPLANAR(FMT_A, BPP_A, YALIGN, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y) \
|
#define TESTATOPLANAR(FMT_A, BPP_A, YALIGN, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y) \
|
||||||
TESTATOPLANARI(FMT_A, BPP_A, YALIGN, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
|
||||||
benchmark_width_ + 1, _Any, +, 0) \
|
|
||||||
TESTATOPLANARI(FMT_A, BPP_A, YALIGN, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
TESTATOPLANARI(FMT_A, BPP_A, YALIGN, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
||||||
benchmark_width_, _Opt, +, 0)
|
benchmark_width_, _Opt, +, 0)
|
||||||
#endif
|
#endif
|
||||||
@ -716,8 +751,6 @@ TESTATOPLANAR(YUY2, 2, 1, I422, 2, 1)
|
|||||||
benchmark_width_, _Opt, +, 0)
|
benchmark_width_, _Opt, +, 0)
|
||||||
#else
|
#else
|
||||||
#define TESTATOPLANARA(FMT_A, BPP_A, YALIGN, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y) \
|
#define TESTATOPLANARA(FMT_A, BPP_A, YALIGN, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y) \
|
||||||
TESTATOPLANARAI(FMT_A, BPP_A, YALIGN, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
|
||||||
benchmark_width_ + 1, _Any, +, 0) \
|
|
||||||
TESTATOPLANARAI(FMT_A, BPP_A, YALIGN, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
TESTATOPLANARAI(FMT_A, BPP_A, YALIGN, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
||||||
benchmark_width_, _Opt, +, 0)
|
benchmark_width_, _Opt, +, 0)
|
||||||
#endif
|
#endif
|
||||||
@ -771,6 +804,7 @@ TESTATOPLANARA(ARGB, 4, 1, I420Alpha, 2, 2)
|
|||||||
free_aligned_buffer_page_end(src_argb); \
|
free_aligned_buffer_page_end(src_argb); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(ENABLE_FULL_TESTS)
|
||||||
#define TESTATOBP(FMT_A, SUB_A, BPP_A, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y) \
|
#define TESTATOBP(FMT_A, SUB_A, BPP_A, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y) \
|
||||||
TESTATOBPI(FMT_A, SUB_A, BPP_A, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
TESTATOBPI(FMT_A, SUB_A, BPP_A, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
||||||
benchmark_width_ + 1, _Any, +, 0) \
|
benchmark_width_ + 1, _Any, +, 0) \
|
||||||
@ -780,6 +814,11 @@ TESTATOPLANARA(ARGB, 4, 1, I420Alpha, 2, 2)
|
|||||||
benchmark_width_, _Invert, -, 0) \
|
benchmark_width_, _Invert, -, 0) \
|
||||||
TESTATOBPI(FMT_A, SUB_A, BPP_A, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
TESTATOBPI(FMT_A, SUB_A, BPP_A, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
||||||
benchmark_width_, _Opt, +, 0)
|
benchmark_width_, _Opt, +, 0)
|
||||||
|
#else
|
||||||
|
#define TESTATOBP(FMT_A, SUB_A, BPP_A, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y) \
|
||||||
|
TESTATOBPI(FMT_A, SUB_A, BPP_A, FMT_PLANAR, SUBSAMP_X, SUBSAMP_Y, \
|
||||||
|
benchmark_width_, _Opt, +, 0)
|
||||||
|
#endif
|
||||||
|
|
||||||
TESTATOBP(ARGB, 1, 4, NV12, 2, 2)
|
TESTATOBP(ARGB, 1, 4, NV12, 2, 2)
|
||||||
TESTATOBP(ARGB, 1, 4, NV21, 2, 2)
|
TESTATOBP(ARGB, 1, 4, NV21, 2, 2)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user