From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 6E98A4346B for ; Wed, 13 Jul 2022 20:47:35 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B76B368B9D0; Wed, 13 Jul 2022 23:47:25 +0300 (EEST) Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8638068B9B9 for ; Wed, 13 Jul 2022 23:47:19 +0300 (EEST) Received: by mail-lf1-f46.google.com with SMTP id bp17so13192262lfb.3 for ; Wed, 13 Jul 2022 13:47:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=martin-st.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=b6pgbI6w7Fh0doM1YLFyiXT84nr1Xr5TOv2+DSAPIao=; b=B1rhFGDJga2DAekdGVDtBW+ZwdSCAb/uSSC6QgEo47tPyQkBh23Jwc2DLXBQq4K2j6 zwLrdoHAgrniJ28G2Mx8oOqffCle6Blv6bGsiC6l2z1KyA1Agclwkb21/8czLt2yjjLS gQwxoqYnHzRGReR7E18E+SfsVkIT7FZhYAfm3Jq3cqqMfF9aXtcmSC4tYYb6aO5glO8Z 5W/PqrsDZs4rHZtuI5MrzuTchgnI0KrFOkfaUrA7yjBW4PC/HKG7mQuom7g/ULaulwsE Z83h2gQR95KL9fWb2TjoNKwwK+kM/R0OPxjdXxcMsVdpGcpW6KOTyrAqlrUBTvh2MY+G BcaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=b6pgbI6w7Fh0doM1YLFyiXT84nr1Xr5TOv2+DSAPIao=; b=X2iTfCc/KGR+RSlx41diLpKYYvR58huDeWcWpQ5G4g/Qg2/Dheqgc2emZTVkZ4HXay oOcV+9LNLDoy/92EKSYBLbPaaJapgmBwL5vYW9RUh3Jf32qPvyp1yfFJP+LR/Fz8rF/V GwaHVzwqYfNJ4VoBCb3JRrn/OarWzGFG7zphBVobQeypvPmpOlwO252aYXHwjCaSqIUR mXLDbqioM+itQv/ZxhvtMxrIpgXRjxetMnJ2vGqHRIRvktDME66sIS8QDiIizCkh/5M4 eAPRK/YLb8mYbVHs8jLXs80z9v6EMT2j9+ZPzKPUA+J9gZKmsp4RWVVUQMzKeNK0UQnc O8Rg== X-Gm-Message-State: AJIora90wttNanx9GIhVKzhB1HpdxwpR8+q7nfc4EHujIeBYWpqJ9KZN 8fNw7NPDhIHv+LlcWU+HVHWturwc2LAsESq6 X-Google-Smtp-Source: AGRyM1v2n1wKvVPXhuDR9GhRmrlozVFQLvsE/WFExnekUdlv19meWbZFqA4VrSfIV0l1wJ88Gm3owQ== X-Received: by 2002:a05:6512:3981:b0:478:54e2:7003 with SMTP id j1-20020a056512398100b0047854e27003mr3001827lfu.416.1657745238734; Wed, 13 Jul 2022 13:47:18 -0700 (PDT) Received: from localhost.localdomain (dsl-tkubng21-58c01c-243.dhcp.inet.fi. [88.192.28.243]) by smtp.gmail.com with ESMTPSA id f9-20020a056512360900b0047f6c98e243sm2994711lfs.102.2022.07.13.13.47.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Jul 2022 13:47:18 -0700 (PDT) From: =?UTF-8?q?Martin=20Storsj=C3=B6?= To: ffmpeg-devel@ffmpeg.org Date: Wed, 13 Jul 2022 23:47:16 +0300 Message-Id: <20220713204716.3114529-2-martin@martin.st> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220713204716.3114529-1-martin@martin.st> References: <20220713204716.3114529-1-martin@martin.st> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] RFC: checkasm: motion: Test different h parameters X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Michael Niedermayer , Jonathan Swinney Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Previously, the checkasm test always passed h=8, so no other cases were tested. Out of the me_cmp functions, in practice, some functions are hardcoded to always assume a 8x8 block (ignoring the h parameter), while others do use the parameter. For those with hardcoded height, both the reference C function and the assembly implementations ignore the parameter similarly. The documentation for the functions indicate that heights between w/2 and 2*w, within the range of 4 to 16, should be supported. This patch just tests random heights in that range, without knowing what width the current function actually uses. --- I'm not sure if it's good to have checkasm exercise cases that don't occur in practice or not. In particular, the aarch64 functions have a separate implementation for non-multiple-of-4 height, which probably doesn't ever get called in practice, while other SIMD implementations lack that. Alternatively, we'd improve the documentation for the expectations for these functions and make the test match that, and remove the unused non-multiple-of-4 case in the aarch64 assembly. --- tests/checkasm/motion.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/checkasm/motion.c b/tests/checkasm/motion.c index 0112822174..79e4358941 100644 --- a/tests/checkasm/motion.c +++ b/tests/checkasm/motion.c @@ -45,7 +45,7 @@ static void test_motion(const char *name, me_cmp_func test_func) /* motion estimation can look up to 17 bytes ahead */ static const int look_ahead = 17; - int i, x, y, d1, d2; + int i, x, y, h, d1, d2; uint8_t *ptr; LOCAL_ALIGNED_16(uint8_t, img1, [WIDTH * HEIGHT]); @@ -68,14 +68,16 @@ static void test_motion(const char *name, me_cmp_func test_func) for (i = 0; i < ITERATIONS; i++) { x = rnd() % (WIDTH - look_ahead); y = rnd() % (HEIGHT - look_ahead); + // Pick a random h between 4 and 16; pick an even value. + h = 4 + ((rnd() % (16 + 1 - 4)) & ~1); ptr = img2 + y * WIDTH + x; - d2 = call_ref(NULL, img1, ptr, WIDTH, 8); - d1 = call_new(NULL, img1, ptr, WIDTH, 8); + d2 = call_ref(NULL, img1, ptr, WIDTH, h); + d1 = call_new(NULL, img1, ptr, WIDTH, h); if (d1 != d2) { fail(); - printf("func: %s, x=%d y=%d, error: asm=%d c=%d\n", name, x, y, d1, d2); + printf("func: %s, x=%d y=%d h=%d, error: asm=%d c=%d\n", name, x, y, h, d1, d2); break; } } -- 2.25.1 _______________________________________________ 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".