PR #23359 opened by Kacper Michajłow (kasper93)
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23359
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23359.patch


From ca2fa1bfecc53af5a0aa1e6298e1b88d29b4f85b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= <[email protected]>
Date: Fri, 5 Jun 2026 07:47:15 +0200
Subject: [PATCH 1/2] checkasm/rv34dsp: pass correct buffer to bench function
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The test can negate stride, in which case we have to use adjusted
`dst_newp`.

Signed-off-by: Kacper Michajłow <[email protected]>
---
 tests/checkasm/rv34dsp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/checkasm/rv34dsp.c b/tests/checkasm/rv34dsp.c
index 7b6dd531d4..f768a5d3bd 100644
--- a/tests/checkasm/rv34dsp.c
+++ b/tests/checkasm/rv34dsp.c
@@ -120,7 +120,7 @@ static void test_rv34_idct_add(const RV34DSPContext *const 
s)
             memcmp(block_ref, block_new, sizeof(block_new)))
             fail();
 
-        bench_new(dst_new, stride, block_new);
+        bench_new(dst_newp, stride, block_new);
     }
 
     report("rv34_idct_add");
-- 
2.52.0


From 8dc84bd02417a13771f2a9baa6262820a774b94c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= <[email protected]>
Date: Fri, 5 Jun 2026 08:13:50 +0200
Subject: [PATCH 2/2] tests/checkasm/vvc_mc: prevent function inline to avoid
 stack overflow
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fixes stack overflow on Windows when by default we have 1 MB.
Individually those functions fit, but when they are all inlined, it's
too much.

Signed-off-by: Kacper Michajłow <[email protected]>
---
 tests/checkasm/vvc_mc.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/tests/checkasm/vvc_mc.c b/tests/checkasm/vvc_mc.c
index 623b6142f1..d712cb8110 100644
--- a/tests/checkasm/vvc_mc.c
+++ b/tests/checkasm/vvc_mc.c
@@ -72,7 +72,7 @@ static const int sizes[] = { 2, 4, 8, 16, 32, 64, 128 };
         randomize_buffers(buf0, buf1, size, mask);          \
     } while (0)
 
-static void check_put_vvc_luma(void)
+static av_noinline void check_put_vvc_luma(void)
 {
     LOCAL_ALIGNED_32(int16_t, dst0, [DST_BUF_SIZE / 2]);
     LOCAL_ALIGNED_32(int16_t, dst1, [DST_BUF_SIZE / 2]);
@@ -120,7 +120,7 @@ static void check_put_vvc_luma(void)
     report("put_luma");
 }
 
-static void check_put_vvc_luma_uni(void)
+static av_noinline void check_put_vvc_luma_uni(void)
 {
     LOCAL_ALIGNED_32(uint8_t, dst0, [DST_BUF_SIZE]);
     LOCAL_ALIGNED_32(uint8_t, dst1, [DST_BUF_SIZE]);
@@ -171,7 +171,7 @@ static void check_put_vvc_luma_uni(void)
     report("put_uni_luma");
 }
 
-static void check_put_vvc_chroma(void)
+static av_noinline void check_put_vvc_chroma(void)
 {
     LOCAL_ALIGNED_32(int16_t, dst0, [DST_BUF_SIZE / 2]);
     LOCAL_ALIGNED_32(int16_t, dst1, [DST_BUF_SIZE / 2]);
@@ -219,7 +219,7 @@ static void check_put_vvc_chroma(void)
     report("put_chroma");
 }
 
-static void check_put_vvc_chroma_uni(void)
+static av_noinline void check_put_vvc_chroma_uni(void)
 {
     LOCAL_ALIGNED_32(uint8_t, dst0, [DST_BUF_SIZE]);
     LOCAL_ALIGNED_32(uint8_t, dst1, [DST_BUF_SIZE]);
@@ -273,7 +273,7 @@ static void check_put_vvc_chroma_uni(void)
 #define AVG_SRC_BUF_SIZE (MAX_CTU_SIZE * MAX_CTU_SIZE)
 #define AVG_DST_BUF_SIZE (MAX_PB_SIZE * MAX_PB_SIZE * 2)
 
-static void check_avg(void)
+static av_noinline void check_avg(void)
 {
     LOCAL_ALIGNED_32(int16_t, src00, [AVG_SRC_BUF_SIZE]);
     LOCAL_ALIGNED_32(int16_t, src01, [AVG_SRC_BUF_SIZE]);
@@ -333,7 +333,7 @@ static void check_avg(void)
 }
 
 #define SR_RANGE 2
-static void check_dmvr(void)
+static av_noinline void check_dmvr(void)
 {
     LOCAL_ALIGNED_32(uint16_t, dst0, [DST_BUF_SIZE]);
     LOCAL_ALIGNED_32(uint16_t, dst1, [DST_BUF_SIZE]);
@@ -394,7 +394,7 @@ static void check_dmvr(void)
 #define BDOF_SRC_SIZE   (MAX_PB_SIZE* (BDOF_BLOCK_SIZE + 2))
 #define BDOF_SRC_OFFSET (MAX_PB_SIZE + 1)
 #define BDOF_DST_SIZE   (BDOF_BLOCK_SIZE * BDOF_BLOCK_SIZE * 2)
-static void check_bdof(void)
+static av_noinline void check_bdof(void)
 {
     LOCAL_ALIGNED_32(uint8_t, dst0, [BDOF_DST_SIZE]);
     LOCAL_ALIGNED_32(uint8_t, dst1, [BDOF_DST_SIZE]);
@@ -431,7 +431,7 @@ static void check_bdof(void)
     report("apply_bdof");
 }
 
-static void check_vvc_sad(void)
+static av_noinline void check_vvc_sad(void)
 {
     const int bit_depth = 10;
     VVCDSPContext c;
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to