ffmpeg/libavcodec/riscv
Rémi Denis-Courmont 6c6bec04f3 lavc/vc1dsp: fix R-V V avg_mspel_pixels
The 8x8 pixel arrays are not necessarily aligned to 64 bits, so the
current code leads to Bus error on real hardware. This reproducible
with FATE's vc1_ilaced_twomv test case.

The new "pessimist" code can trivially be shared for 16x16 pixel
arrays so we also do that. FWIW, this also nominally reduces the
hardware requirement from Zve64x to Zve32x.

T-Head C908:
vc1dsp.avg_vc1_mspel_pixels_tab[0][0]_c:      14.7
vc1dsp.avg_vc1_mspel_pixels_tab[0][0]_rvv_i32: 3.5
vc1dsp.avg_vc1_mspel_pixels_tab[1][0]_c:       3.7
vc1dsp.avg_vc1_mspel_pixels_tab[1][0]_rvv_i32: 1.5

SpacemiT X60:
vc1dsp.avg_vc1_mspel_pixels_tab[0][0]_c:      13.0
vc1dsp.avg_vc1_mspel_pixels_tab[0][0]_rvv_i32: 3.0
vc1dsp.avg_vc1_mspel_pixels_tab[1][0]_c:       3.2
vc1dsp.avg_vc1_mspel_pixels_tab[1][0]_rvv_i32: 1.2
2024-06-02 10:37:09 +03:00
..
aacencdsp_init.c
aacencdsp_rvv.S
aacpsdsp_init.c
aacpsdsp_rvv.S lavc/riscv: explicitly require Zbb for MIN 2024-05-10 18:59:06 +03:00
ac3dsp_init.c lavc/ac3dsp: add R-V Zvbb extract_exponents 2024-05-11 11:38:49 +03:00
ac3dsp_rvb.S lavc/ac3dsp: R-V Zbb ac3_exponent_min 2024-05-06 22:10:16 +03:00
ac3dsp_rvv.S lavc/ac3dsp: R-V V min_exponents 2024-05-04 10:17:11 +03:00
ac3dsp_rvvb.S lavc/ac3dsp: add R-V Zvbb extract_exponents 2024-05-11 11:38:49 +03:00
alacdsp_init.c
alacdsp_rvv.S
audiodsp_init.c
audiodsp_rvf.S
audiodsp_rvv.S
blockdsp_init.c lavc/riscv: use ff_rv_vlen_least() 2024-05-13 18:36:07 +03:00
blockdsp_rvv.S lavc/blockdsp: R-V V fill_block 2024-05-03 17:49:23 +03:00
bswapdsp_init.c
bswapdsp_rvb.S
bswapdsp_rvv.S
exrdsp_init.c
exrdsp_rvv.S
flacdsp_init.c lavc/flacdsp: R-V Zvl256b lpc33 2024-05-27 22:07:29 +03:00
flacdsp_rvv.S lavc/flacdsp: R-V Zvl256b lpc33 2024-05-27 22:07:29 +03:00
fmtconvert_init.c
fmtconvert_rvv.S
g722dsp_init.c lavc/riscv: use ff_rv_vlen_least() 2024-05-13 18:36:07 +03:00
g722dsp_rvv.S
h263dsp_init.c lavc/h263dsp: R-V V {h,v}_loop_filter 2024-05-22 19:15:39 +03:00
h263dsp_rvv.S lavc/h263dsp: R-V V {h,v}_loop_filter 2024-05-22 19:15:39 +03:00
h264_chroma_init_riscv.c lavc/riscv: use ff_rv_vlen_least() 2024-05-13 18:36:07 +03:00
h264_mc_chroma.S
h264dsp_init.c lavc/startcode: add R-V V startcode_find_candidate 2024-05-19 10:03:49 +03:00
huffyuvdsp_init.c lavc/huffyuvdsp: optimise RVV vtype for add_hfyu_left_pred_bgr32 2024-05-19 18:37:33 +03:00
huffyuvdsp_rvv.S lavc/huffyuvdsp: optimise RVV vtype for add_hfyu_left_pred_bgr32 2024-05-19 18:37:33 +03:00
idctdsp_init.c lavc/riscv: use ff_rv_vlen_least() 2024-05-13 18:36:07 +03:00
idctdsp_rvv.S
jpeg2000dsp_init.c
jpeg2000dsp_rvv.S
llauddsp_init.c
llauddsp_rvv.S
llviddsp_init.c
llviddsp_rvv.S
llvidencdsp_init.c
llvidencdsp_rvv.S
lpc_init.c lavc/lpc: optimise RVV vector type for compute_autocorr 2024-05-29 16:57:02 +03:00
lpc_rvv.S riscv: allow passing addend to vtype_vli macro 2024-05-30 18:30:52 +03:00
Makefile lavc/vp7dsp: add R-V V vp7_luma_dc_wht 2024-05-29 16:57:02 +03:00
me_cmp_init.c lavc/riscv: use ff_rv_vlen_least() 2024-05-13 18:36:07 +03:00
me_cmp_rvv.S
opusdsp_init.c
opusdsp_rvv.S lavc/riscv: explicitly require Zbb for MIN 2024-05-10 18:59:06 +03:00
pixblockdsp_init.c lavc/pixblockdsp: add scalar get_pixels_unaligned 2024-05-24 17:53:43 +03:00
pixblockdsp_rvi.S
pixblockdsp_rvv.S
rv34dsp_init.c lavc/riscv: use ff_rv_vlen_least() 2024-05-13 18:36:07 +03:00
rv34dsp_rvv.S lavc/rv34dsp: remove stray load immediate 2024-05-26 19:20:45 +03:00
rv40dsp_init.c lavc/riscv: use ff_rv_vlen_least() 2024-05-13 18:36:07 +03:00
rv40dsp_rvv.S lavc/rv40dsp: R-V V chroma_mc 2024-05-03 18:00:53 +03:00
sbrdsp_init.c lavc/sbrdsp: add support for 256-bit vectors 2024-05-31 22:22:43 +03:00
sbrdsp_rvv.S lavc/sbrdsp: fold immediate offset into relocation 2024-05-28 19:44:11 +03:00
startcode_rvb.S lavc/startcode: add R-V Zbb startcode_find_candidate 2024-05-19 10:03:49 +03:00
startcode_rvv.S lavc/startcode: fix RVV return value on no match 2024-05-28 19:43:40 +03:00
svqenc_init.c
svqenc_rvv.S
takdsp_init.c
takdsp_rvv.S
utvideodsp_init.c
utvideodsp_rvv.S
vc1dsp_init.c lavc/vc1dsp: fix R-V V avg_mspel_pixels 2024-06-02 10:37:09 +03:00
vc1dsp_rvi.S lavc/vc1dsp: R-V V mspel_pixels 2024-05-16 17:08:18 +03:00
vc1dsp_rvv.S lavc/vc1dsp: fix R-V V avg_mspel_pixels 2024-06-02 10:37:09 +03:00
vorbisdsp_init.c
vorbisdsp_rvv.S
vp7dsp_init.c lavc/vp7dsp: R-V V vp7_idct_add 2024-05-29 16:57:02 +03:00
vp7dsp_rvv.S lavc/vp7dsp: R-V V vp7_idct_add 2024-05-29 16:57:02 +03:00
vp8dsp.h lavc/vp8dsp: R-V put_vp8_pixels 2024-05-10 18:41:13 +03:00
vp8dsp_init.c lavc/vp8dsp: R-V V vp8_luma_dc_wht 2024-05-29 16:57:02 +03:00
vp8dsp_rvi.S lavc/vp8dsp: R-V put_vp8_pixels 2024-05-10 18:41:13 +03:00
vp8dsp_rvv.S lavc/vp8dsp: R-V V vp8_luma_dc_wht 2024-05-29 16:57:02 +03:00
vp9_intra_rvi.S lavc/vp9dsp: R-V ipred vert 2024-05-15 19:52:25 +03:00
vp9_intra_rvv.S lavc/vp9_intra: fix another .irp use with LLVM as 2024-05-19 10:22:46 +03:00
vp9_mc_rvi.S lavc/vp9dsp: R-V mc copy 2024-05-15 19:52:28 +03:00
vp9_mc_rvv.S lavc/vp9dsp: R-V V rename ff_avg to ff_vp9_avg 2024-05-30 18:30:52 +03:00
vp9dsp.h lavc/vp9dsp: R-V V rename ff_avg to ff_vp9_avg 2024-05-30 18:30:52 +03:00
vp9dsp_init.c lavc/vp9dsp: R-V V rename ff_avg to ff_vp9_avg 2024-05-30 18:30:52 +03:00