[PR] tests/checkasm/checkasm: Map rnd to checkasm_rand_uint32, h264pred: avoid declare_func_emms (PR #23931)
mkver via ffmpeg-devel <[email protected]> Mon, 27 Jul 2026 19:51:55 -0000
| Newsgroups | gmane.comp.video.ffmpeg.devel |
|---|---|
| Message-ID | <178518191559.51.7452961147809337725@29965ddac10e> |
PR #23931 opened by mkver URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23931 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23931.patch >From aebbcab045ed56bcf630456dcc40fc96800855b0 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt <[email protected]> Date: Mon, 27 Jul 2026 21:22:16 +0200 Subject: [PATCH 1/2] tests/checkasm/checkasm: Map rnd to checkasm_rand_uint32 Before the switch to libcheckasm, rnd returned an unsigned value; now it only returns a signed value in the range 0..INT_MAX, so that the sign bit is not random at all. This means that when rnd is used to initialize four bytes at a time, one bit is not random. Fix this by mapping rnd to checkasm_rand_uint32(). Signed-off-by: Andreas Rheinhardt <[email protected]> --- tests/checkasm/checkasm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h index b473c5d711..70987b52f1 100644 --- a/tests/checkasm/checkasm.h +++ b/tests/checkasm/checkasm.h @@ -133,7 +133,7 @@ void checkasm_check_vvc_alf(void); void checkasm_check_vvc_mc(void); void checkasm_check_vvc_sao(void); -#define rnd checkasm_rand +#define rnd checkasm_rand_uint32 #define declare_func_float declare_func #define bench(...) checkasm_bench(__VA_ARGS__) -- 2.52.0 >From 0547b93913f9f835ab7ed6244ae407f8bea47133 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt <[email protected]> Date: Mon, 27 Jul 2026 21:37:04 +0200 Subject: [PATCH 2/2] tests/checkasm/h264pred: Avoid declare_func_emms This is possible after the recent MMX->XMM conversions and preferable as it makes the test stricter. Signed-off-by: Andreas Rheinhardt <[email protected]> --- tests/checkasm/h264pred.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/checkasm/h264pred.c b/tests/checkasm/h264pred.c index 21ce7f4c35..1bf8357ad4 100644 --- a/tests/checkasm/h264pred.c +++ b/tests/checkasm/h264pred.c @@ -165,7 +165,7 @@ static void check_pred8x8(H264PredContext *h, uint8_t *buf0, uint8_t *buf1, int codec, int chroma_format, int bit_depth) { int pred_mode; - declare_func_emms(AV_CPU_FLAG_MMX | AV_CPU_FLAG_MMXEXT, void, uint8_t *src, ptrdiff_t stride); + declare_func(void, uint8_t *src, ptrdiff_t stride); for (pred_mode = 0; pred_mode < 11; pred_mode++) { if (check_pred_func(h->pred8x8[pred_mode], (chroma_format == 2) ? "8x16" : "8x8", @@ -185,7 +185,7 @@ static void check_pred16x16(H264PredContext *h, uint8_t *buf0, uint8_t *buf1, { if (chroma_format == 1) { int pred_mode; - declare_func_emms(AV_CPU_FLAG_MMX | AV_CPU_FLAG_MMXEXT, void, uint8_t *src, ptrdiff_t stride); + declare_func(void, uint8_t *src, ptrdiff_t stride); for (pred_mode = 0; pred_mode < 9; pred_mode++) { if (check_pred_func(h->pred16x16[pred_mode], "16x16", pred16x16_modes[codec][pred_mode])) { @@ -205,7 +205,7 @@ static void check_pred8x8l(H264PredContext *h, uint8_t *buf0, uint8_t *buf1, { if (chroma_format == 1 && codec_ids[codec] == AV_CODEC_ID_H264) { int pred_mode; - declare_func_emms(AV_CPU_FLAG_MMXEXT, void, uint8_t *src, int topleft, int topright, ptrdiff_t stride); + declare_func(void, uint8_t *src, int topleft, int topright, ptrdiff_t stride); for (pred_mode = 0; pred_mode < 12; pred_mode++) { if (check_pred_func(h->pred8x8l[pred_mode], "8x8l", pred4x4_modes[codec][pred_mode])) { -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]