History

lavc/riscv: depend on RVB and simplify accordingly

There is no known (real) hardware with V and without the complete B extension. B was indeed required in the RISC-V application profile from 2022, earlier than V. There should not be any relevant hardware in the future either. In practice, different R-V Vector optimisations in FFmpeg already depend on every constituent of the B extension anyhow, so it would not work well.

Rémi Denis-Courmont committed 2 years ago

Commit 616fdea1 parent cb31f1722 files · +45 −47Browse files

Unified · Split

22 files
  1. libavcodec/riscv/aacencdsp_init.c +1 −1
  2. libavcodec/riscv/aacpsdsp_init.c +16 −11
  3. libavcodec/riscv/alacdsp_init.c +1 −1
  4. libavcodec/riscv/audiodsp_init.c +4 −5
  5. libavcodec/riscv/exrdsp_init.c +1 −2
  6. libavcodec/riscv/flacdsp_init.c +2 −2
  7. libavcodec/riscv/fmtconvert_init.c +1 −1
  8. libavcodec/riscv/h264_chroma_init_riscv.c +1 −1
  9. libavcodec/riscv/h264dsp_init.c +1 −1
  10. libavcodec/riscv/huffyuvdsp_init.c +2 −3
  11. libavcodec/riscv/jpeg2000dsp_init.c +1 −1
  12. libavcodec/riscv/llauddsp_init.c +1 −1
  13. libavcodec/riscv/lpc_init.c +2 −3
  14. libavcodec/riscv/opusdsp_init.c +1 −2
  15. libavcodec/riscv/rv40dsp_init.c +1 −1
  16. libavcodec/riscv/sbrdsp_init.c +3 −5
  17. libavcodec/riscv/svqenc_init.c +1 −1
  18. libavcodec/riscv/takdsp_init.c +1 −1
  19. libavcodec/riscv/utvideodsp_init.c +1 −1
  20. libavcodec/riscv/vorbisdsp_init.c +1 −1
  21. libavcodec/riscv/vp7dsp_init.c +1 −1
  22. libavcodec/riscv/vp8dsp_init.c +1 −1
libavcodec/riscv/aacencdsp_init.c+1−1
@@ -35,7 +35,7 @@ av_cold void ff_aacenc_dsp_init_riscv(AACEncDSPContext *s) · 34 unmodified lines
3535 int flags = av_get_cpu_flags();
3636
3737 if (flags & AV_CPU_FLAG_RVV_F32) {
38− if (flags & AV_CPU_FLAG_RVB_ADDR) {
38+ if (flags & AV_CPU_FLAG_RVB) {
3939 s->abs_pow34 = ff_abs_pow34_rvv;
4040 s->quant_bands = ff_aac_quant_bands_rvv;
4141 }
libavcodec/riscv/aacpsdsp_init.c+16−11
@@ -42,20 +42,25 @@ av_cold void ff_psdsp_init_riscv(PSDSPContext *c) · 41 unmodified lines
4242 #if HAVE_RVV
4343 int flags = av_get_cpu_flags();
4444
45− if (flags & AV_CPU_FLAG_RVV_F32) {
46− c->hybrid_analysis = ff_ps_hybrid_analysis_rvv;
45+ if (flags & AV_CPU_FLAG_RVV_I32) {
46+ if (flags & AV_CPU_FLAG_RVV_F32) {
47+ if (flags & AV_CPU_FLAG_RVB) {
48+ if (flags & AV_CPU_FLAG_RVV_I64)
49+ c->add_squares = ff_ps_add_squares_rvv;
4750
48− if (flags & AV_CPU_FLAG_RVB_ADDR) {
49− if (flags & AV_CPU_FLAG_RVV_I64) {
50− c->add_squares = ff_ps_add_squares_rvv;
51− c->hybrid_synthesis_deint = ff_ps_hybrid_synthesis_deint_rvv;
51+ c->mul_pair_single = ff_ps_mul_pair_single_rvv;
5252 }
53− c->mul_pair_single = ff_ps_mul_pair_single_rvv;
54− c->stereo_interpolate[0] = ff_ps_stereo_interpolate_rvv;
53+ c->hybrid_analysis = ff_ps_hybrid_analysis_rvv;
5554 }
56− }
5755
58− if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR))
59− c->hybrid_analysis_ileave = ff_ps_hybrid_analysis_ileave_rvv;
56+ if (flags & AV_CPU_FLAG_RVB) {
57+ c->hybrid_analysis_ileave = ff_ps_hybrid_analysis_ileave_rvv;
58+
59+ if (flags & AV_CPU_FLAG_RVV_I64)
60+ c->hybrid_synthesis_deint = ff_ps_hybrid_synthesis_deint_rvv;
61+ if (flags & AV_CPU_FLAG_RVV_F32)
62+ c->stereo_interpolate[0] = ff_ps_stereo_interpolate_rvv;
63+ }
64+ }
6065 #endif
6166 }
libavcodec/riscv/alacdsp_init.c+1−1
@@ -41,7 +41,7 @@ av_cold void ff_alacdsp_init_riscv(ALACDSPContext *c) · 40 unmodified lines
4141 #if HAVE_RVV && (__riscv_xlen == 64)
4242 int flags = av_get_cpu_flags();
4343
44− if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
44+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
4545 c->decorrelate_stereo = ff_alac_decorrelate_stereo_rvv;
4646 c->append_extra_bits[0] = ff_alac_append_extra_bits_mono_rvv;
4747 c->append_extra_bits[1] = ff_alac_append_extra_bits_stereo_rvv;
libavcodec/riscv/audiodsp_init.c+4−5
@@ -34,11 +34,10 @@ av_cold void ff_audiodsp_init_riscv(AudioDSPContext *c) · 33 unmodified lines
3434 #if HAVE_RVV
3535 int flags = av_get_cpu_flags();
3636
37− if (flags & AV_CPU_FLAG_RVB_ADDR) {
38− if (flags & AV_CPU_FLAG_RVV_I32) {
39− c->scalarproduct_int16 = ff_scalarproduct_int16_rvv;
40− c->vector_clip_int32 = ff_vector_clip_int32_rvv;
41− }
37+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
38+ c->scalarproduct_int16 = ff_scalarproduct_int16_rvv;
39+ c->vector_clip_int32 = ff_vector_clip_int32_rvv;
40+
4241 if (flags & AV_CPU_FLAG_RVV_F32)
4342 c->vector_clipf = ff_vector_clipf_rvv;
4443 }
libavcodec/riscv/exrdsp_init.c+1−2
@@ -31,8 +31,7 @@ av_cold void ff_exrdsp_init_riscv(ExrDSPContext *c) · 30 unmodified lines
3131 #if HAVE_RVV
3232 int flags = av_get_cpu_flags();
3333
34− if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
34+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB))
3535 c->reorder_pixels = ff_reorder_pixels_rvv;
36− }
3736 #endif
3837 }
libavcodec/riscv/flacdsp_init.c+2−2
@@ -70,10 +70,10 @@ av_cold void ff_flacdsp_init_riscv(FLACDSPContext *c, enum AVSampleFormat fmt, · 69 unmodified lines
7070 #if HAVE_RVV
7171 int flags = av_get_cpu_flags();
7272
73− if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
73+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
7474 int vlenb = ff_get_rv_vlenb();
7575
76− if ((flags & AV_CPU_FLAG_RVB_BASIC) && vlenb >= 16) {
76+ if (vlenb >= 16) {
7777 c->lpc16 = ff_flac_lpc16_rvv;
7878
7979 # if (__riscv_xlen >= 64)
libavcodec/riscv/fmtconvert_init.c+1−1
@@ -36,7 +36,7 @@ av_cold void ff_fmt_convert_init_riscv(FmtConvertContext *c) · 35 unmodified lines
3636 #if HAVE_RVV
3737 int flags = av_get_cpu_flags();
3838
39− if ((flags & AV_CPU_FLAG_RVV_F32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
39+ if ((flags & AV_CPU_FLAG_RVV_F32) && (flags & AV_CPU_FLAG_RVB)) {
4040 c->int32_to_float_fmul_scalar = ff_int32_to_float_fmul_scalar_rvv;
4141 c->int32_to_float_fmul_array8 = ff_int32_to_float_fmul_array8_rvv;
4242 }
libavcodec/riscv/h264_chroma_init_riscv.c+1−1
@@ -38,7 +38,7 @@ av_cold void ff_h264chroma_init_riscv(H264ChromaContext *c, int bit_depth) · 37 unmodified lines
3838 int flags = av_get_cpu_flags();
3939
4040 if (bit_depth == 8 && (flags & AV_CPU_FLAG_RVV_I32) &&
41− (flags & AV_CPU_FLAG_RVB_ADDR) && ff_rv_vlen_least(128)) {
41+ (flags & AV_CPU_FLAG_RVB) && ff_rv_vlen_least(128)) {
4242 c->put_h264_chroma_pixels_tab[0] = h264_put_chroma_mc8_rvv;
4343 c->avg_h264_chroma_pixels_tab[0] = h264_avg_chroma_mc8_rvv;
4444 c->put_h264_chroma_pixels_tab[1] = h264_put_chroma_mc4_rvv;
libavcodec/riscv/h264dsp_init.c+1−1
@@ -128,7 +128,7 @@ av_cold void ff_h264dsp_init_riscv(H264DSPContext *dsp, const int bit_depth, · 127 unmodified lines
128128 if (bit_depth == depth) { \
129129 if (zvl128b) \
130130 dsp->h264_idct_add = ff_h264_idct_add_##depth##_rvv; \
131− if (flags & AV_CPU_FLAG_RVB_ADDR) \
131+ if (flags & AV_CPU_FLAG_RVB) \
132132 dsp->h264_idct8_add = ff_h264_idct8_add_##depth##_rvv; \
133133 if (zvl128b && (flags & AV_CPU_FLAG_RVB)) { \
134134 dsp->h264_idct_dc_add = ff_h264_idct4_dc_add_##depth##_rvv; \
libavcodec/riscv/huffyuvdsp_init.c+2−3
@@ -33,10 +33,9 @@ av_cold void ff_huffyuvdsp_init_riscv(HuffYUVDSPContext *c, · 32 unmodified lines
3333 #if HAVE_RVV
3434 int flags = av_get_cpu_flags();
3535
36− if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
36+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
3737 c->add_int16 = ff_add_int16_rvv;
38− if (flags & AV_CPU_FLAG_RVB_BASIC)
39− c->add_hfyu_left_pred_bgr32 = ff_add_hfyu_left_pred_bgr32_rvv;
38+ c->add_hfyu_left_pred_bgr32 = ff_add_hfyu_left_pred_bgr32_rvv;
4039 }
4140 #endif
4241 }
libavcodec/riscv/jpeg2000dsp_init.c+1−1
@@ -31,7 +31,7 @@ av_cold void ff_jpeg2000dsp_init_riscv(Jpeg2000DSPContext *c) · 30 unmodified lines
3131 #if HAVE_RVV
3232 int flags = av_get_cpu_flags();
3333
34− if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
34+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
3535 if (flags & AV_CPU_FLAG_RVV_F32)
3636 c->mct_decode[FF_DWT97] = ff_ict_float_rvv;
3737 c->mct_decode[FF_DWT53] = ff_rct_int_rvv;
libavcodec/riscv/llauddsp_init.c+1−1
@@ -36,7 +36,7 @@ av_cold void ff_llauddsp_init_riscv(LLAudDSPContext *c) · 35 unmodified lines
3636 #if HAVE_RVV
3737 int flags = av_get_cpu_flags();
3838
39− if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
39+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
4040 c->scalarproduct_and_madd_int16 = ff_scalarproduct_and_madd_int16_rvv;
4141 c->scalarproduct_and_madd_int32 = ff_scalarproduct_and_madd_int32_rvv;
4242 }
libavcodec/riscv/lpc_init.c+2−3
@@ -33,11 +33,10 @@ av_cold void ff_lpc_init_riscv(LPCContext *c) · 32 unmodified lines
3333 #if HAVE_RVV && (__riscv_xlen >= 64)
3434 int flags = av_get_cpu_flags();
3535
36− if ((flags & AV_CPU_FLAG_RVV_F64) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
36+ if ((flags & AV_CPU_FLAG_RVV_F64) && (flags & AV_CPU_FLAG_RVB)) {
3737 c->lpc_apply_welch_window = ff_lpc_apply_welch_window_rvv;
3838
39− if ((flags & AV_CPU_FLAG_RVB_BASIC) &&
40− ff_get_rv_vlenb() > c->max_order)
39+ if (ff_get_rv_vlenb() > c->max_order)
4140 c->lpc_compute_autocorr = ff_lpc_compute_autocorr_rvv;
4241 }
4342 #endif
libavcodec/riscv/opusdsp_init.c+1−2
@@ -32,8 +32,7 @@ av_cold void ff_opus_dsp_init_riscv(OpusDSP *d) · 31 unmodified lines
3232 #if HAVE_RVV
3333 int flags = av_get_cpu_flags();
3434
35− if ((flags & AV_CPU_FLAG_RVV_F32) && (flags & AV_CPU_FLAG_RVB_ADDR) &&
36− (flags & AV_CPU_FLAG_RVB_BASIC))
35+ if ((flags & AV_CPU_FLAG_RVV_F32) && (flags & AV_CPU_FLAG_RVB))
3736 d->postfilter = ff_opus_postfilter_rvv;
3837 #endif
3938 }
libavcodec/riscv/rv40dsp_init.c+1−1
@@ -41,7 +41,7 @@ av_cold void ff_rv40dsp_init_riscv(RV34DSPContext *c) · 40 unmodified lines
4141 int flags = av_get_cpu_flags();
4242
4343 if ((flags & AV_CPU_FLAG_RVV_I32) && ff_rv_vlen_least(128) &&
44− (flags & AV_CPU_FLAG_RVB_ADDR)) {
44+ (flags & AV_CPU_FLAG_RVB)) {
4545 c->put_chroma_pixels_tab[0] = ff_put_rv40_chroma_mc8_rvv;
4646 c->put_chroma_pixels_tab[1] = ff_put_rv40_chroma_mc4_rvv;
4747 c->avg_chroma_pixels_tab[0] = ff_avg_rv40_chroma_mc8_rvv;
libavcodec/riscv/sbrdsp_init.c+3−5
@@ -47,7 +47,7 @@ av_cold void ff_sbrdsp_init_riscv(SBRDSPContext *c) · 46 unmodified lines
4747 int flags = av_get_cpu_flags();
4848
4949 if (flags & AV_CPU_FLAG_RVV_F32) {
50− if (flags & AV_CPU_FLAG_RVB_ADDR) {
50+ if (flags & AV_CPU_FLAG_RVB) {
5151 c->sum64x5 = ff_sbr_sum64x5_rvv;
5252 c->sum_square = ff_sbr_sum_square_rvv;
5353 c->hf_gen = ff_sbr_hf_gen_rvv;
@@ -55,10 +55,8 @@ av_cold void ff_sbrdsp_init_riscv(SBRDSPContext *c) · 1 unmodified line
5555 if (ff_get_rv_vlenb() <= 32) {
5656 c->hf_apply_noise[0] = ff_sbr_hf_apply_noise_0_rvv;
5757 c->hf_apply_noise[2] = ff_sbr_hf_apply_noise_2_rvv;
58− if (flags & AV_CPU_FLAG_RVB_BASIC) {
59− c->hf_apply_noise[1] = ff_sbr_hf_apply_noise_1_rvv;
60− c->hf_apply_noise[3] = ff_sbr_hf_apply_noise_3_rvv;
61− }
58+ c->hf_apply_noise[1] = ff_sbr_hf_apply_noise_1_rvv;
59+ c->hf_apply_noise[3] = ff_sbr_hf_apply_noise_3_rvv;
6260 }
6361 }
6462 c->autocorrelate = ff_sbr_autocorrelate_rvv;
libavcodec/riscv/svqenc_init.c+1−1
@@ -33,7 +33,7 @@ av_cold void ff_svq1enc_init_riscv(SVQ1EncDSPContext *c) · 32 unmodified lines
3333 int flags = av_get_cpu_flags();
3434
3535 if (flags & AV_CPU_FLAG_RVV_I32) {
36− if (flags & AV_CPU_FLAG_RVB_ADDR) {
36+ if (flags & AV_CPU_FLAG_RVB) {
3737 c->ssd_int8_vs_int16 = ff_ssd_int8_vs_int16_rvv;
3838 }
3939 }
libavcodec/riscv/takdsp_init.c+1−1
@@ -35,7 +35,7 @@ av_cold void ff_takdsp_init_riscv(TAKDSPContext *dsp) · 34 unmodified lines
3535 #if HAVE_RVV
3636 int flags = av_get_cpu_flags();
3737
38− if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
38+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
3939 dsp->decorrelate_ls = ff_decorrelate_ls_rvv;
4040 dsp->decorrelate_sr = ff_decorrelate_sr_rvv;
4141 dsp->decorrelate_sm = ff_decorrelate_sm_rvv;
libavcodec/riscv/utvideodsp_init.c+1−1
@@ -38,7 +38,7 @@ av_cold void ff_utvideodsp_init_riscv(UTVideoDSPContext *c) · 37 unmodified lines
3838 if (flags & AV_CPU_FLAG_RVV_I32) {
3939 c->restore_rgb_planes = ff_restore_rgb_planes_rvv;
4040
41− if (flags & AV_CPU_FLAG_RVB_ADDR)
41+ if (flags & AV_CPU_FLAG_RVB)
4242 c->restore_rgb_planes10 = ff_restore_rgb_planes10_rvv;
4343 }
4444 #endif
libavcodec/riscv/vorbisdsp_init.c+1−1
@@ -31,7 +31,7 @@ av_cold void ff_vorbisdsp_init_riscv(VorbisDSPContext *c) · 30 unmodified lines
3131 #if HAVE_RVV
3232 int flags = av_get_cpu_flags();
3333
34− if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR))
34+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB))
3535 c->vorbis_inverse_coupling = ff_vorbis_inverse_coupling_rvv;
3636 #endif
3737 }
libavcodec/riscv/vp7dsp_init.c+1−1
@@ -44,7 +44,7 @@ av_cold void ff_vp7dsp_init_riscv(VP8DSPContext *c) · 43 unmodified lines
4444 #if HAVE_RVV
4545 int flags = av_get_cpu_flags();
4646
47− if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR) &&
47+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB) &&
4848 ff_rv_vlen_least(128)) {
4949 #if __riscv_xlen >= 64
5050 c->vp8_luma_dc_wht = ff_vp7_luma_dc_wht_rvv;
libavcodec/riscv/vp8dsp_init.c+1−1
@@ -86,7 +86,7 @@ av_cold void ff_vp78dsp_init_riscv(VP8DSPContext *c) · 85 unmodified lines
8686 c->put_vp8_bilinear_pixels_tab[2][2][1] = ff_put_vp8_bilin4_hv_rvv;
8787 c->put_vp8_bilinear_pixels_tab[2][2][2] = ff_put_vp8_bilin4_hv_rvv;
8888
89− if (flags & AV_CPU_FLAG_RVB_ADDR) {
89+ if (flags & AV_CPU_FLAG_RVB) {
9090 c->put_vp8_epel_pixels_tab[0][0][2] = ff_put_vp8_epel16_h6_rvv;
9191 c->put_vp8_epel_pixels_tab[1][0][2] = ff_put_vp8_epel8_h6_rvv;
9292 c->put_vp8_epel_pixels_tab[2][0][2] = ff_put_vp8_epel4_h6_rvv;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t