* [FFmpeg-devel] [PATCH 1/6] lavu/riscv: depend on RVB and simplify accordingly
@ 2024-08-01 19:59 Rémi Denis-Courmont
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 2/6] lavc/riscv: " Rémi Denis-Courmont
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Rémi Denis-Courmont @ 2024-08-01 19:59 UTC (permalink / raw)
To: ffmpeg-devel
---
libavutil/riscv/fixed_dsp_init.c | 2 +-
libavutil/riscv/float_dsp_init.c | 2 +-
libavutil/riscv/lls_init.c | 5 ++---
3 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/libavutil/riscv/fixed_dsp_init.c b/libavutil/riscv/fixed_dsp_init.c
index cd318af486..36612d49e4 100644
--- a/libavutil/riscv/fixed_dsp_init.c
+++ b/libavutil/riscv/fixed_dsp_init.c
@@ -45,7 +45,7 @@ av_cold void ff_fixed_dsp_init_riscv(AVFixedDSPContext *fdsp)
#if HAVE_RVV
int flags = av_get_cpu_flags();
- if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
if (flags & AV_CPU_FLAG_RVV_I64) {
fdsp->vector_fmul_window_scaled = ff_vector_fmul_window_scaled_rvv;
fdsp->vector_fmul_window = ff_vector_fmul_window_fixed_rvv;
diff --git a/libavutil/riscv/float_dsp_init.c b/libavutil/riscv/float_dsp_init.c
index 155496fa6b..91fd9982ea 100644
--- a/libavutil/riscv/float_dsp_init.c
+++ b/libavutil/riscv/float_dsp_init.c
@@ -54,7 +54,7 @@ av_cold void ff_float_dsp_init_riscv(AVFloatDSPContext *fdsp)
#if HAVE_RVV
int flags = av_get_cpu_flags();
- if (flags & AV_CPU_FLAG_RVB_ADDR) {
+ if (flags & AV_CPU_FLAG_RVB) {
if (flags & AV_CPU_FLAG_RVV_F32) {
fdsp->vector_fmul = ff_vector_fmul_rvv;
fdsp->vector_fmac_scalar = ff_vector_fmac_scalar_rvv;
diff --git a/libavutil/riscv/lls_init.c b/libavutil/riscv/lls_init.c
index b1317dc925..d6ba319552 100644
--- a/libavutil/riscv/lls_init.c
+++ b/libavutil/riscv/lls_init.c
@@ -47,9 +47,8 @@ av_cold void ff_init_lls_riscv(LLSModel *m)
#if HAVE_RVV
int flags = av_get_cpu_flags();
- if ((flags & AV_CPU_FLAG_RVB_ADDR) && (flags & AV_CPU_FLAG_RVV_F64)) {
- if ((flags & AV_CPU_FLAG_RVB_BASIC) &&
- ff_get_rv_vlenb() > m->indep_count)
+ if ((flags & AV_CPU_FLAG_RVB) && (flags & AV_CPU_FLAG_RVV_F64)) {
+ if (ff_get_rv_vlenb() > m->indep_count)
m->update_lls = ff_lls_update_rvv;
m->evaluate_lls = ff_lls_evaluate_rvv;
}
--
2.45.2
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 6+ messages in thread
* [FFmpeg-devel] [PATCH 2/6] lavc/riscv: depend on RVB and simplify accordingly
2024-08-01 19:59 [FFmpeg-devel] [PATCH 1/6] lavu/riscv: depend on RVB and simplify accordingly Rémi Denis-Courmont
@ 2024-08-01 19:59 ` Rémi Denis-Courmont
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 3/6] lavfi/riscv: " Rémi Denis-Courmont
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Rémi Denis-Courmont @ 2024-08-01 19:59 UTC (permalink / raw)
To: ffmpeg-devel
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.
---
libavcodec/riscv/aacencdsp_init.c | 2 +-
libavcodec/riscv/aacpsdsp_init.c | 27 ++++++++++++++---------
libavcodec/riscv/alacdsp_init.c | 2 +-
libavcodec/riscv/audiodsp_init.c | 9 ++++----
libavcodec/riscv/exrdsp_init.c | 3 +--
libavcodec/riscv/flacdsp_init.c | 4 ++--
libavcodec/riscv/fmtconvert_init.c | 2 +-
libavcodec/riscv/h264_chroma_init_riscv.c | 2 +-
libavcodec/riscv/h264dsp_init.c | 2 +-
libavcodec/riscv/huffyuvdsp_init.c | 5 ++---
libavcodec/riscv/jpeg2000dsp_init.c | 2 +-
libavcodec/riscv/llauddsp_init.c | 2 +-
libavcodec/riscv/lpc_init.c | 5 ++---
libavcodec/riscv/opusdsp_init.c | 3 +--
libavcodec/riscv/rv40dsp_init.c | 2 +-
libavcodec/riscv/sbrdsp_init.c | 8 +++----
libavcodec/riscv/svqenc_init.c | 2 +-
libavcodec/riscv/takdsp_init.c | 2 +-
libavcodec/riscv/utvideodsp_init.c | 2 +-
libavcodec/riscv/vorbisdsp_init.c | 2 +-
libavcodec/riscv/vp7dsp_init.c | 2 +-
libavcodec/riscv/vp8dsp_init.c | 2 +-
22 files changed, 45 insertions(+), 47 deletions(-)
diff --git a/libavcodec/riscv/aacencdsp_init.c b/libavcodec/riscv/aacencdsp_init.c
index 73bc8d8fa3..a2dc0a8d3f 100644
--- a/libavcodec/riscv/aacencdsp_init.c
+++ b/libavcodec/riscv/aacencdsp_init.c
@@ -35,7 +35,7 @@ av_cold void ff_aacenc_dsp_init_riscv(AACEncDSPContext *s)
int flags = av_get_cpu_flags();
if (flags & AV_CPU_FLAG_RVV_F32) {
- if (flags & AV_CPU_FLAG_RVB_ADDR) {
+ if (flags & AV_CPU_FLAG_RVB) {
s->abs_pow34 = ff_abs_pow34_rvv;
s->quant_bands = ff_aac_quant_bands_rvv;
}
diff --git a/libavcodec/riscv/aacpsdsp_init.c b/libavcodec/riscv/aacpsdsp_init.c
index e094660cf3..b37c93f525 100644
--- a/libavcodec/riscv/aacpsdsp_init.c
+++ b/libavcodec/riscv/aacpsdsp_init.c
@@ -42,20 +42,25 @@ av_cold void ff_psdsp_init_riscv(PSDSPContext *c)
#if HAVE_RVV
int flags = av_get_cpu_flags();
- if (flags & AV_CPU_FLAG_RVV_F32) {
- c->hybrid_analysis = ff_ps_hybrid_analysis_rvv;
+ if (flags & AV_CPU_FLAG_RVV_I32) {
+ if (flags & AV_CPU_FLAG_RVV_F32) {
+ if (flags & AV_CPU_FLAG_RVB) {
+ if (flags & AV_CPU_FLAG_RVV_I64)
+ c->add_squares = ff_ps_add_squares_rvv;
- if (flags & AV_CPU_FLAG_RVB_ADDR) {
- if (flags & AV_CPU_FLAG_RVV_I64) {
- c->add_squares = ff_ps_add_squares_rvv;
- c->hybrid_synthesis_deint = ff_ps_hybrid_synthesis_deint_rvv;
+ c->mul_pair_single = ff_ps_mul_pair_single_rvv;
}
- c->mul_pair_single = ff_ps_mul_pair_single_rvv;
- c->stereo_interpolate[0] = ff_ps_stereo_interpolate_rvv;
+ c->hybrid_analysis = ff_ps_hybrid_analysis_rvv;
}
- }
- if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR))
- c->hybrid_analysis_ileave = ff_ps_hybrid_analysis_ileave_rvv;
+ if (flags & AV_CPU_FLAG_RVB) {
+ c->hybrid_analysis_ileave = ff_ps_hybrid_analysis_ileave_rvv;
+
+ if (flags & AV_CPU_FLAG_RVV_I64)
+ c->hybrid_synthesis_deint = ff_ps_hybrid_synthesis_deint_rvv;
+ if (flags & AV_CPU_FLAG_RVV_F32)
+ c->stereo_interpolate[0] = ff_ps_stereo_interpolate_rvv;
+ }
+ }
#endif
}
diff --git a/libavcodec/riscv/alacdsp_init.c b/libavcodec/riscv/alacdsp_init.c
index cd6dc4f8ae..c71b00c329 100644
--- a/libavcodec/riscv/alacdsp_init.c
+++ b/libavcodec/riscv/alacdsp_init.c
@@ -41,7 +41,7 @@ av_cold void ff_alacdsp_init_riscv(ALACDSPContext *c)
#if HAVE_RVV && (__riscv_xlen == 64)
int flags = av_get_cpu_flags();
- if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
c->decorrelate_stereo = ff_alac_decorrelate_stereo_rvv;
c->append_extra_bits[0] = ff_alac_append_extra_bits_mono_rvv;
c->append_extra_bits[1] = ff_alac_append_extra_bits_stereo_rvv;
diff --git a/libavcodec/riscv/audiodsp_init.c b/libavcodec/riscv/audiodsp_init.c
index 5750d4d8a7..e2d829ed57 100644
--- a/libavcodec/riscv/audiodsp_init.c
+++ b/libavcodec/riscv/audiodsp_init.c
@@ -34,11 +34,10 @@ av_cold void ff_audiodsp_init_riscv(AudioDSPContext *c)
#if HAVE_RVV
int flags = av_get_cpu_flags();
- if (flags & AV_CPU_FLAG_RVB_ADDR) {
- if (flags & AV_CPU_FLAG_RVV_I32) {
- c->scalarproduct_int16 = ff_scalarproduct_int16_rvv;
- c->vector_clip_int32 = ff_vector_clip_int32_rvv;
- }
+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
+ c->scalarproduct_int16 = ff_scalarproduct_int16_rvv;
+ c->vector_clip_int32 = ff_vector_clip_int32_rvv;
+
if (flags & AV_CPU_FLAG_RVV_F32)
c->vector_clipf = ff_vector_clipf_rvv;
}
diff --git a/libavcodec/riscv/exrdsp_init.c b/libavcodec/riscv/exrdsp_init.c
index 690a2231c5..f074c71c58 100644
--- a/libavcodec/riscv/exrdsp_init.c
+++ b/libavcodec/riscv/exrdsp_init.c
@@ -31,8 +31,7 @@ av_cold void ff_exrdsp_init_riscv(ExrDSPContext *c)
#if HAVE_RVV
int flags = av_get_cpu_flags();
- if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB))
c->reorder_pixels = ff_reorder_pixels_rvv;
- }
#endif
}
diff --git a/libavcodec/riscv/flacdsp_init.c b/libavcodec/riscv/flacdsp_init.c
index 861276be28..2689ebf2dc 100644
--- a/libavcodec/riscv/flacdsp_init.c
+++ b/libavcodec/riscv/flacdsp_init.c
@@ -70,10 +70,10 @@ av_cold void ff_flacdsp_init_riscv(FLACDSPContext *c, enum AVSampleFormat fmt,
#if HAVE_RVV
int flags = av_get_cpu_flags();
- if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
int vlenb = ff_get_rv_vlenb();
- if ((flags & AV_CPU_FLAG_RVB_BASIC) && vlenb >= 16) {
+ if (vlenb >= 16) {
c->lpc16 = ff_flac_lpc16_rvv;
# if (__riscv_xlen >= 64)
diff --git a/libavcodec/riscv/fmtconvert_init.c b/libavcodec/riscv/fmtconvert_init.c
index f5eeafba45..4d3f0f6464 100644
--- a/libavcodec/riscv/fmtconvert_init.c
+++ b/libavcodec/riscv/fmtconvert_init.c
@@ -36,7 +36,7 @@ av_cold void ff_fmt_convert_init_riscv(FmtConvertContext *c)
#if HAVE_RVV
int flags = av_get_cpu_flags();
- if ((flags & AV_CPU_FLAG_RVV_F32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
+ if ((flags & AV_CPU_FLAG_RVV_F32) && (flags & AV_CPU_FLAG_RVB)) {
c->int32_to_float_fmul_scalar = ff_int32_to_float_fmul_scalar_rvv;
c->int32_to_float_fmul_array8 = ff_int32_to_float_fmul_array8_rvv;
}
diff --git a/libavcodec/riscv/h264_chroma_init_riscv.c b/libavcodec/riscv/h264_chroma_init_riscv.c
index 9802fa517f..b6bde42c0a 100644
--- a/libavcodec/riscv/h264_chroma_init_riscv.c
+++ b/libavcodec/riscv/h264_chroma_init_riscv.c
@@ -38,7 +38,7 @@ av_cold void ff_h264chroma_init_riscv(H264ChromaContext *c, int bit_depth)
int flags = av_get_cpu_flags();
if (bit_depth == 8 && (flags & AV_CPU_FLAG_RVV_I32) &&
- (flags & AV_CPU_FLAG_RVB_ADDR) && ff_rv_vlen_least(128)) {
+ (flags & AV_CPU_FLAG_RVB) && ff_rv_vlen_least(128)) {
c->put_h264_chroma_pixels_tab[0] = h264_put_chroma_mc8_rvv;
c->avg_h264_chroma_pixels_tab[0] = h264_avg_chroma_mc8_rvv;
c->put_h264_chroma_pixels_tab[1] = h264_put_chroma_mc4_rvv;
diff --git a/libavcodec/riscv/h264dsp_init.c b/libavcodec/riscv/h264dsp_init.c
index 7f787d8f57..b99c0124ee 100644
--- a/libavcodec/riscv/h264dsp_init.c
+++ b/libavcodec/riscv/h264dsp_init.c
@@ -128,7 +128,7 @@ av_cold void ff_h264dsp_init_riscv(H264DSPContext *dsp, const int bit_depth,
if (bit_depth == depth) { \
if (zvl128b) \
dsp->h264_idct_add = ff_h264_idct_add_##depth##_rvv; \
- if (flags & AV_CPU_FLAG_RVB_ADDR) \
+ if (flags & AV_CPU_FLAG_RVB) \
dsp->h264_idct8_add = ff_h264_idct8_add_##depth##_rvv; \
if (zvl128b && (flags & AV_CPU_FLAG_RVB)) { \
dsp->h264_idct_dc_add = ff_h264_idct4_dc_add_##depth##_rvv; \
diff --git a/libavcodec/riscv/huffyuvdsp_init.c b/libavcodec/riscv/huffyuvdsp_init.c
index 79e93e213f..362ccb215f 100644
--- a/libavcodec/riscv/huffyuvdsp_init.c
+++ b/libavcodec/riscv/huffyuvdsp_init.c
@@ -33,10 +33,9 @@ av_cold void ff_huffyuvdsp_init_riscv(HuffYUVDSPContext *c,
#if HAVE_RVV
int flags = av_get_cpu_flags();
- if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
c->add_int16 = ff_add_int16_rvv;
- if (flags & AV_CPU_FLAG_RVB_BASIC)
- c->add_hfyu_left_pred_bgr32 = ff_add_hfyu_left_pred_bgr32_rvv;
+ c->add_hfyu_left_pred_bgr32 = ff_add_hfyu_left_pred_bgr32_rvv;
}
#endif
}
diff --git a/libavcodec/riscv/jpeg2000dsp_init.c b/libavcodec/riscv/jpeg2000dsp_init.c
index e82ec47bde..d6930721cd 100644
--- a/libavcodec/riscv/jpeg2000dsp_init.c
+++ b/libavcodec/riscv/jpeg2000dsp_init.c
@@ -31,7 +31,7 @@ av_cold void ff_jpeg2000dsp_init_riscv(Jpeg2000DSPContext *c)
#if HAVE_RVV
int flags = av_get_cpu_flags();
- if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
if (flags & AV_CPU_FLAG_RVV_F32)
c->mct_decode[FF_DWT97] = ff_ict_float_rvv;
c->mct_decode[FF_DWT53] = ff_rct_int_rvv;
diff --git a/libavcodec/riscv/llauddsp_init.c b/libavcodec/riscv/llauddsp_init.c
index 1924b36821..e2c1edb400 100644
--- a/libavcodec/riscv/llauddsp_init.c
+++ b/libavcodec/riscv/llauddsp_init.c
@@ -36,7 +36,7 @@ av_cold void ff_llauddsp_init_riscv(LLAudDSPContext *c)
#if HAVE_RVV
int flags = av_get_cpu_flags();
- if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
c->scalarproduct_and_madd_int16 = ff_scalarproduct_and_madd_int16_rvv;
c->scalarproduct_and_madd_int32 = ff_scalarproduct_and_madd_int32_rvv;
}
diff --git a/libavcodec/riscv/lpc_init.c b/libavcodec/riscv/lpc_init.c
index d9bcbbe604..b093271071 100644
--- a/libavcodec/riscv/lpc_init.c
+++ b/libavcodec/riscv/lpc_init.c
@@ -33,11 +33,10 @@ av_cold void ff_lpc_init_riscv(LPCContext *c)
#if HAVE_RVV && (__riscv_xlen >= 64)
int flags = av_get_cpu_flags();
- if ((flags & AV_CPU_FLAG_RVV_F64) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
+ if ((flags & AV_CPU_FLAG_RVV_F64) && (flags & AV_CPU_FLAG_RVB)) {
c->lpc_apply_welch_window = ff_lpc_apply_welch_window_rvv;
- if ((flags & AV_CPU_FLAG_RVB_BASIC) &&
- ff_get_rv_vlenb() > c->max_order)
+ if (ff_get_rv_vlenb() > c->max_order)
c->lpc_compute_autocorr = ff_lpc_compute_autocorr_rvv;
}
#endif
diff --git a/libavcodec/riscv/opusdsp_init.c b/libavcodec/riscv/opusdsp_init.c
index 88d8e77f0e..7ec261493b 100644
--- a/libavcodec/riscv/opusdsp_init.c
+++ b/libavcodec/riscv/opusdsp_init.c
@@ -32,8 +32,7 @@ av_cold void ff_opus_dsp_init_riscv(OpusDSP *d)
#if HAVE_RVV
int flags = av_get_cpu_flags();
- if ((flags & AV_CPU_FLAG_RVV_F32) && (flags & AV_CPU_FLAG_RVB_ADDR) &&
- (flags & AV_CPU_FLAG_RVB_BASIC))
+ if ((flags & AV_CPU_FLAG_RVV_F32) && (flags & AV_CPU_FLAG_RVB))
d->postfilter = ff_opus_postfilter_rvv;
#endif
}
diff --git a/libavcodec/riscv/rv40dsp_init.c b/libavcodec/riscv/rv40dsp_init.c
index 47df0e98c5..6aba571794 100644
--- a/libavcodec/riscv/rv40dsp_init.c
+++ b/libavcodec/riscv/rv40dsp_init.c
@@ -41,7 +41,7 @@ av_cold void ff_rv40dsp_init_riscv(RV34DSPContext *c)
int flags = av_get_cpu_flags();
if ((flags & AV_CPU_FLAG_RVV_I32) && ff_rv_vlen_least(128) &&
- (flags & AV_CPU_FLAG_RVB_ADDR)) {
+ (flags & AV_CPU_FLAG_RVB)) {
c->put_chroma_pixels_tab[0] = ff_put_rv40_chroma_mc8_rvv;
c->put_chroma_pixels_tab[1] = ff_put_rv40_chroma_mc4_rvv;
c->avg_chroma_pixels_tab[0] = ff_avg_rv40_chroma_mc8_rvv;
diff --git a/libavcodec/riscv/sbrdsp_init.c b/libavcodec/riscv/sbrdsp_init.c
index 562c75e6b4..0915fe9964 100644
--- a/libavcodec/riscv/sbrdsp_init.c
+++ b/libavcodec/riscv/sbrdsp_init.c
@@ -47,7 +47,7 @@ av_cold void ff_sbrdsp_init_riscv(SBRDSPContext *c)
int flags = av_get_cpu_flags();
if (flags & AV_CPU_FLAG_RVV_F32) {
- if (flags & AV_CPU_FLAG_RVB_ADDR) {
+ if (flags & AV_CPU_FLAG_RVB) {
c->sum64x5 = ff_sbr_sum64x5_rvv;
c->sum_square = ff_sbr_sum_square_rvv;
c->hf_gen = ff_sbr_hf_gen_rvv;
@@ -55,10 +55,8 @@ av_cold void ff_sbrdsp_init_riscv(SBRDSPContext *c)
if (ff_get_rv_vlenb() <= 32) {
c->hf_apply_noise[0] = ff_sbr_hf_apply_noise_0_rvv;
c->hf_apply_noise[2] = ff_sbr_hf_apply_noise_2_rvv;
- if (flags & AV_CPU_FLAG_RVB_BASIC) {
- c->hf_apply_noise[1] = ff_sbr_hf_apply_noise_1_rvv;
- c->hf_apply_noise[3] = ff_sbr_hf_apply_noise_3_rvv;
- }
+ c->hf_apply_noise[1] = ff_sbr_hf_apply_noise_1_rvv;
+ c->hf_apply_noise[3] = ff_sbr_hf_apply_noise_3_rvv;
}
}
c->autocorrelate = ff_sbr_autocorrelate_rvv;
diff --git a/libavcodec/riscv/svqenc_init.c b/libavcodec/riscv/svqenc_init.c
index f4c398960c..5021849e4c 100644
--- a/libavcodec/riscv/svqenc_init.c
+++ b/libavcodec/riscv/svqenc_init.c
@@ -33,7 +33,7 @@ av_cold void ff_svq1enc_init_riscv(SVQ1EncDSPContext *c)
int flags = av_get_cpu_flags();
if (flags & AV_CPU_FLAG_RVV_I32) {
- if (flags & AV_CPU_FLAG_RVB_ADDR) {
+ if (flags & AV_CPU_FLAG_RVB) {
c->ssd_int8_vs_int16 = ff_ssd_int8_vs_int16_rvv;
}
}
diff --git a/libavcodec/riscv/takdsp_init.c b/libavcodec/riscv/takdsp_init.c
index 58be83860b..12d2d8dab9 100644
--- a/libavcodec/riscv/takdsp_init.c
+++ b/libavcodec/riscv/takdsp_init.c
@@ -35,7 +35,7 @@ av_cold void ff_takdsp_init_riscv(TAKDSPContext *dsp)
#if HAVE_RVV
int flags = av_get_cpu_flags();
- if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
dsp->decorrelate_ls = ff_decorrelate_ls_rvv;
dsp->decorrelate_sr = ff_decorrelate_sr_rvv;
dsp->decorrelate_sm = ff_decorrelate_sm_rvv;
diff --git a/libavcodec/riscv/utvideodsp_init.c b/libavcodec/riscv/utvideodsp_init.c
index f5038c4736..9d7469f388 100644
--- a/libavcodec/riscv/utvideodsp_init.c
+++ b/libavcodec/riscv/utvideodsp_init.c
@@ -38,7 +38,7 @@ av_cold void ff_utvideodsp_init_riscv(UTVideoDSPContext *c)
if (flags & AV_CPU_FLAG_RVV_I32) {
c->restore_rgb_planes = ff_restore_rgb_planes_rvv;
- if (flags & AV_CPU_FLAG_RVB_ADDR)
+ if (flags & AV_CPU_FLAG_RVB)
c->restore_rgb_planes10 = ff_restore_rgb_planes10_rvv;
}
#endif
diff --git a/libavcodec/riscv/vorbisdsp_init.c b/libavcodec/riscv/vorbisdsp_init.c
index 0bbbcb68de..64c858dcba 100644
--- a/libavcodec/riscv/vorbisdsp_init.c
+++ b/libavcodec/riscv/vorbisdsp_init.c
@@ -31,7 +31,7 @@ av_cold void ff_vorbisdsp_init_riscv(VorbisDSPContext *c)
#if HAVE_RVV
int flags = av_get_cpu_flags();
- if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR))
+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB))
c->vorbis_inverse_coupling = ff_vorbis_inverse_coupling_rvv;
#endif
}
diff --git a/libavcodec/riscv/vp7dsp_init.c b/libavcodec/riscv/vp7dsp_init.c
index 9b8357ec05..e2771379e7 100644
--- a/libavcodec/riscv/vp7dsp_init.c
+++ b/libavcodec/riscv/vp7dsp_init.c
@@ -44,7 +44,7 @@ av_cold void ff_vp7dsp_init_riscv(VP8DSPContext *c)
#if HAVE_RVV
int flags = av_get_cpu_flags();
- if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR) &&
+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB) &&
ff_rv_vlen_least(128)) {
#if __riscv_xlen >= 64
c->vp8_luma_dc_wht = ff_vp7_luma_dc_wht_rvv;
diff --git a/libavcodec/riscv/vp8dsp_init.c b/libavcodec/riscv/vp8dsp_init.c
index d9e2beb237..250fecb2f0 100644
--- a/libavcodec/riscv/vp8dsp_init.c
+++ b/libavcodec/riscv/vp8dsp_init.c
@@ -86,7 +86,7 @@ av_cold void ff_vp78dsp_init_riscv(VP8DSPContext *c)
c->put_vp8_bilinear_pixels_tab[2][2][1] = ff_put_vp8_bilin4_hv_rvv;
c->put_vp8_bilinear_pixels_tab[2][2][2] = ff_put_vp8_bilin4_hv_rvv;
- if (flags & AV_CPU_FLAG_RVB_ADDR) {
+ if (flags & AV_CPU_FLAG_RVB) {
c->put_vp8_epel_pixels_tab[0][0][2] = ff_put_vp8_epel16_h6_rvv;
c->put_vp8_epel_pixels_tab[1][0][2] = ff_put_vp8_epel8_h6_rvv;
c->put_vp8_epel_pixels_tab[2][0][2] = ff_put_vp8_epel4_h6_rvv;
--
2.45.2
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 6+ messages in thread
* [FFmpeg-devel] [PATCH 3/6] lavfi/riscv: depend on RVB and simplify accordingly
2024-08-01 19:59 [FFmpeg-devel] [PATCH 1/6] lavu/riscv: depend on RVB and simplify accordingly Rémi Denis-Courmont
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 2/6] lavc/riscv: " Rémi Denis-Courmont
@ 2024-08-01 19:59 ` Rémi Denis-Courmont
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 4/6] sws/riscv: " Rémi Denis-Courmont
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Rémi Denis-Courmont @ 2024-08-01 19:59 UTC (permalink / raw)
To: ffmpeg-devel
---
libavfilter/riscv/af_afir_init.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavfilter/riscv/af_afir_init.c b/libavfilter/riscv/af_afir_init.c
index 52aa18c126..66402f5c1b 100644
--- a/libavfilter/riscv/af_afir_init.c
+++ b/libavfilter/riscv/af_afir_init.c
@@ -34,7 +34,7 @@ av_cold void ff_afir_init_riscv(AudioFIRDSPContext *s)
int flags = av_get_cpu_flags();
if (flags & AV_CPU_FLAG_RVV_F64) {
- if (flags & AV_CPU_FLAG_RVB_ADDR) {
+ if (flags & AV_CPU_FLAG_RVB) {
s->fcmul_add = ff_fcmul_add_rvv;
}
}
--
2.45.2
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 6+ messages in thread
* [FFmpeg-devel] [PATCH 4/6] sws/riscv: depend on RVB and simplify accordingly
2024-08-01 19:59 [FFmpeg-devel] [PATCH 1/6] lavu/riscv: depend on RVB and simplify accordingly Rémi Denis-Courmont
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 2/6] lavc/riscv: " Rémi Denis-Courmont
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 3/6] lavfi/riscv: " Rémi Denis-Courmont
@ 2024-08-01 19:59 ` Rémi Denis-Courmont
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 5/6] lavu/riscv: drop probing for zba CPU capability Rémi Denis-Courmont
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 6/6] lavu/cpu: deprecate RISC-V F, D and zba CPU flags Rémi Denis-Courmont
4 siblings, 0 replies; 6+ messages in thread
From: Rémi Denis-Courmont @ 2024-08-01 19:59 UTC (permalink / raw)
To: ffmpeg-devel
---
libswscale/riscv/rgb2rgb.c | 8 +++-----
libswscale/riscv/swscale.c | 4 ++--
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/libswscale/riscv/rgb2rgb.c b/libswscale/riscv/rgb2rgb.c
index fb527e2bbe..7e0c0046da 100644
--- a/libswscale/riscv/rgb2rgb.c
+++ b/libswscale/riscv/rgb2rgb.c
@@ -50,16 +50,14 @@ av_cold void rgb2rgb_init_riscv(void)
shuffle_bytes_3210 = ff_shuffle_bytes_3210_rvb;
#endif
#if HAVE_RVV
- if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
shuffle_bytes_0321 = ff_shuffle_bytes_0321_rvv;
shuffle_bytes_2103 = ff_shuffle_bytes_2103_rvv;
shuffle_bytes_1230 = ff_shuffle_bytes_1230_rvv;
shuffle_bytes_3012 = ff_shuffle_bytes_3012_rvv;
interleaveBytes = ff_interleave_bytes_rvv;
- if (flags & AV_CPU_FLAG_RVB_BASIC) {
- uyvytoyuv422 = ff_uyvytoyuv422_rvv;
- yuyvtoyuv422 = ff_yuyvtoyuv422_rvv;
- }
+ uyvytoyuv422 = ff_uyvytoyuv422_rvv;
+ yuyvtoyuv422 = ff_yuyvtoyuv422_rvv;
}
#endif
#endif
diff --git a/libswscale/riscv/swscale.c b/libswscale/riscv/swscale.c
index 529d817aaa..c452d93e5d 100644
--- a/libswscale/riscv/swscale.c
+++ b/libswscale/riscv/swscale.c
@@ -39,7 +39,7 @@ av_cold static void ff_sws_init_range_convert_riscv(SwsContext *c, int flags)
if (c->srcRange != c->dstRange && !isAnyRGB(c->dstFormat) &&
c->dstBpc <= 14 &&
- (flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
+ (flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
bool from = c->srcRange != 0;
c->lumConvertRange = convs[from].lum;
@@ -70,7 +70,7 @@ av_cold void ff_sws_init_swscale_riscv(SwsContext *c)
int flags = av_get_cpu_flags();
#if HAVE_RVV
- if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
+ if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB)) {
switch (c->srcFormat) {
case AV_PIX_FMT_ABGR:
c->lumToYV12 = ff_abgr32ToY_rvv;
--
2.45.2
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 6+ messages in thread
* [FFmpeg-devel] [PATCH 5/6] lavu/riscv: drop probing for zba CPU capability
2024-08-01 19:59 [FFmpeg-devel] [PATCH 1/6] lavu/riscv: depend on RVB and simplify accordingly Rémi Denis-Courmont
` (2 preceding siblings ...)
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 4/6] sws/riscv: " Rémi Denis-Courmont
@ 2024-08-01 19:59 ` Rémi Denis-Courmont
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 6/6] lavu/cpu: deprecate RISC-V F, D and zba CPU flags Rémi Denis-Courmont
4 siblings, 0 replies; 6+ messages in thread
From: Rémi Denis-Courmont @ 2024-08-01 19:59 UTC (permalink / raw)
To: ffmpeg-devel
---
libavutil/cpu.c | 1 -
libavutil/riscv/cpu.c | 10 +---------
libavutil/tests/cpu.c | 1 -
tests/checkasm/checkasm.c | 1 -
4 files changed, 1 insertion(+), 12 deletions(-)
diff --git a/libavutil/cpu.c b/libavutil/cpu.c
index 6c26182b78..41cee7fa77 100644
--- a/libavutil/cpu.c
+++ b/libavutil/cpu.c
@@ -189,7 +189,6 @@ int av_parse_cpu_caps(unsigned *flags, const char *s)
{ "zve32f", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_RVV_F32 }, .unit = "flags" },
{ "zve64x", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_RVV_I64 }, .unit = "flags" },
{ "zve64d", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_RVV_F64 }, .unit = "flags" },
- { "zba", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_RVB_ADDR }, .unit = "flags" },
{ "zbb", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_RVB_BASIC }, .unit = "flags" },
{ "zvbb", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_RV_ZVBB }, .unit = "flags" },
{ "misaligned", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_RV_MISALIGNED }, .unit = "flags" },
diff --git a/libavutil/riscv/cpu.c b/libavutil/riscv/cpu.c
index 6537e91965..52ca2ce814 100644
--- a/libavutil/riscv/cpu.c
+++ b/libavutil/riscv/cpu.c
@@ -63,10 +63,6 @@ int ff_get_cpu_flags_riscv(void)
ret |= AV_CPU_FLAG_RVV_I32 | AV_CPU_FLAG_RVV_I64
| AV_CPU_FLAG_RVV_F32 | AV_CPU_FLAG_RVV_F64;
#endif
-#ifdef RISCV_HWPROBE_EXT_ZBA
- if (pairs[1].value & RISCV_HWPROBE_EXT_ZBA)
- ret |= AV_CPU_FLAG_RVB_ADDR;
-#endif
#ifdef RISCV_HWPROBE_EXT_ZBB
if (pairs[1].value & RISCV_HWPROBE_EXT_ZBB)
ret |= AV_CPU_FLAG_RVB_BASIC;
@@ -95,8 +91,7 @@ int ff_get_cpu_flags_riscv(void)
if (hwcap & HWCAP_RV('I'))
ret |= AV_CPU_FLAG_RVI;
if (hwcap & HWCAP_RV('B'))
- ret |= AV_CPU_FLAG_RVB_ADDR | AV_CPU_FLAG_RVB_BASIC |
- AV_CPU_FLAG_RVB;
+ ret |= AV_CPU_FLAG_RVB_BASIC | AV_CPU_FLAG_RVB;
/* The V extension implies all Zve* functional subsets */
if (hwcap & HWCAP_RV('V'))
@@ -109,9 +104,6 @@ int ff_get_cpu_flags_riscv(void)
ret |= AV_CPU_FLAG_RVI;
#endif
-#ifdef __riscv_zba
- ret |= AV_CPU_FLAG_RVB_ADDR;
-#endif
#ifdef __riscv_zbb
ret |= AV_CPU_FLAG_RVB_BASIC;
#endif
diff --git a/libavutil/tests/cpu.c b/libavutil/tests/cpu.c
index e03fbf94eb..0a459c1d9e 100644
--- a/libavutil/tests/cpu.c
+++ b/libavutil/tests/cpu.c
@@ -86,7 +86,6 @@ static const struct {
{ AV_CPU_FLAG_LASX, "lasx" },
#elif ARCH_RISCV
{ AV_CPU_FLAG_RVI, "rvi" },
- { AV_CPU_FLAG_RVB_ADDR, "zba" },
{ AV_CPU_FLAG_RVB_BASIC, "zbb" },
{ AV_CPU_FLAG_RVB, "rvb" },
{ AV_CPU_FLAG_RVV_I32, "zve32x" },
diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c
index 49b47f8615..58597d3888 100644
--- a/tests/checkasm/checkasm.c
+++ b/tests/checkasm/checkasm.c
@@ -291,7 +291,6 @@ static const struct {
#elif ARCH_RISCV
{ "RVI", "rvi", AV_CPU_FLAG_RVI },
{ "misaligned", "misaligned", AV_CPU_FLAG_RV_MISALIGNED },
- { "RVBaddr", "rvb_a", AV_CPU_FLAG_RVB_ADDR },
{ "RVBbasic", "rvb_b", AV_CPU_FLAG_RVB_BASIC },
{ "RVB", "rvb", AV_CPU_FLAG_RVB },
{ "RVVi32", "rvv_i32", AV_CPU_FLAG_RVV_I32 },
--
2.45.2
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 6+ messages in thread
* [FFmpeg-devel] [PATCH 6/6] lavu/cpu: deprecate RISC-V F, D and zba CPU flags
2024-08-01 19:59 [FFmpeg-devel] [PATCH 1/6] lavu/riscv: depend on RVB and simplify accordingly Rémi Denis-Courmont
` (3 preceding siblings ...)
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 5/6] lavu/riscv: drop probing for zba CPU capability Rémi Denis-Courmont
@ 2024-08-01 19:59 ` Rémi Denis-Courmont
4 siblings, 0 replies; 6+ messages in thread
From: Rémi Denis-Courmont @ 2024-08-01 19:59 UTC (permalink / raw)
To: ffmpeg-devel
---
doc/APIchanges | 4 ++++
libavutil/cpu.h | 5 +++++
libavutil/version.h | 3 ++-
3 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/doc/APIchanges b/doc/APIchanges
index 6937718e83..046828ded1 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -2,6 +2,10 @@ The last version increases of all libraries were on 2024-03-07
API changes, most recent first:
+2024-07-30 - xxxxxxxxx - lavu 59.32.100 - cpu.h
+ Deprecate AV_CPU_FLAG_RVF and AV_CPU_FLAG_RVD without replacement.
+ Deprecate AV_CPU_FLAG_RVB_ADDR, subsumed into AV_CPU_FLAG_RVB.
+
2024-07-29 - xxxxxxxxx - lavu 59.31.100 - intreadwrite.h
Add AV_{R,W}{L,B}{16,32}A and AV_{R,W}B64A.
diff --git a/libavutil/cpu.h b/libavutil/cpu.h
index 9f419aae02..ba6c234e04 100644
--- a/libavutil/cpu.h
+++ b/libavutil/cpu.h
@@ -22,6 +22,7 @@
#define AVUTIL_CPU_H
#include <stddef.h>
+#include "version.h"
#define AV_CPU_FLAG_FORCE 0x80000000 /* force usage of selected flags (OR) */
@@ -82,14 +83,18 @@
// RISC-V extensions
#define AV_CPU_FLAG_RVI (1 << 0) ///< I (full GPR bank)
+#if FF_API_RISCV_FD_ZBA
#define AV_CPU_FLAG_RVF (1 << 1) ///< F (single precision FP)
#define AV_CPU_FLAG_RVD (1 << 2) ///< D (double precision FP)
+#endif
#define AV_CPU_FLAG_RVV_I32 (1 << 3) ///< Vectors of 8/16/32-bit int's */
#define AV_CPU_FLAG_RVV_F32 (1 << 4) ///< Vectors of float's */
#define AV_CPU_FLAG_RVV_I64 (1 << 5) ///< Vectors of 64-bit int's */
#define AV_CPU_FLAG_RVV_F64 (1 << 6) ///< Vectors of double's
#define AV_CPU_FLAG_RVB_BASIC (1 << 7) ///< Basic bit-manipulations
+#if FF_API_RISCV_FD_ZBA
#define AV_CPU_FLAG_RVB_ADDR (1 << 8) ///< Address bit-manipulations
+#endif
#define AV_CPU_FLAG_RV_ZVBB (1 << 9) ///< Vector basic bit-manipulations
#define AV_CPU_FLAG_RV_MISALIGNED (1 <<10) ///< Fast misaligned accesses
#define AV_CPU_FLAG_RVB (1 <<11) ///< B (bit manipulations)
diff --git a/libavutil/version.h b/libavutil/version.h
index 24418600f0..aa2b3900ee 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -79,7 +79,7 @@
*/
#define LIBAVUTIL_VERSION_MAJOR 59
-#define LIBAVUTIL_VERSION_MINOR 31
+#define LIBAVUTIL_VERSION_MINOR 32
#define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
@@ -113,6 +113,7 @@
#define FF_API_VULKAN_CONTIGUOUS_MEMORY (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_H274_FILM_GRAIN_VCS (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_MOD_UINTP2 (LIBAVUTIL_VERSION_MAJOR < 60)
+#define FF_API_RISCV_FD_ZBA (LIBAVUTIL_VERSION_MAJOR < 60)
/**
* @}
--
2.45.2
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-08-01 20:00 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-08-01 19:59 [FFmpeg-devel] [PATCH 1/6] lavu/riscv: depend on RVB and simplify accordingly Rémi Denis-Courmont
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 2/6] lavc/riscv: " Rémi Denis-Courmont
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 3/6] lavfi/riscv: " Rémi Denis-Courmont
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 4/6] sws/riscv: " Rémi Denis-Courmont
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 5/6] lavu/riscv: drop probing for zba CPU capability Rémi Denis-Courmont
2024-08-01 19:59 ` [FFmpeg-devel] [PATCH 6/6] lavu/cpu: deprecate RISC-V F, D and zba CPU flags Rémi Denis-Courmont
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git