From patchwork Thu Jun 9 23:55:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 36137 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6914:b0:82:6b11:2509 with SMTP id q20csp656554pzj; Thu, 9 Jun 2022 17:02:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwHEyLHMv/FZKrF1uAsOrBVO/9oEfqgm4XJVZBMClRMLRluQmFiI+JJ6L+JJYw0xALMAZ/y X-Received: by 2002:a05:6402:50d0:b0:431:70e1:956 with SMTP id h16-20020a05640250d000b0043170e10956mr23196122edb.205.1654819357628; Thu, 09 Jun 2022 17:02:37 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id qb37-20020a1709077ea500b00711ed907e82si5224892ejc.492.2022.06.09.17.02.37; Thu, 09 Jun 2022 17:02:37 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=IEaaYDyh; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2E62468B955; Fri, 10 Jun 2022 02:57:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073025.outbound.protection.outlook.com [40.92.73.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F360D68B80F for ; Fri, 10 Jun 2022 02:57:38 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Tjon/ch6TCezJNyJflfsb658XrAkI/an5DLT1EQ+CJsC5vfZYxPKTRsUe2cHz72FwnN+ACefKWyeGCTN0j77o6+i0RqspeisdLliDgW/kKB2vfNy817sULnvKLN5mLgnwl8x35qkD6EJ+CyMWMTh4TTT0LImCjag/GgO6U957LK4rQOl8nDrtV1mDTHaKknGSzeTBbkOBqk0Pg/GzH5XXeIG1sWLXergdWdIYGR5/NTNLFKBzYUEqvweni6ZFfUFU1D/nYBu0tcUlvkA5E6glxXwM5QtgY0MCahoziVgC2sy9xUR3m3y1PJUuYNIkQV0EVuvPvQ91IaGTJ2Ct6DJeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=k5G8p/UzyAhd/Lk/FKvdgMZ5Jbe86lzjnlcu4lI+cM4=; b=hCY1s5TOUi77lRnDpoCoxgKmZ7gr4mvI/BMTebl9H2QXYjp+ZUtCGoE7sdBBqXTFq5lNIjRWKdWKT+IpWv0uZuu+V/WYuceEFvkvXr0fZWIiNLf6zUI2ATlx/+V2b4ee736fm4jExMB3rs1mziZ0c/JJpQDM19zJCIAj4yHALC7PZSKCgnl9HbjyVfxYMkusddNtVCfjmCaXm4ICjMvycVmtzYdFpHAbsEaxOnn1/DBPmZ4EZOjO+FRcVijzqPQbcKBu3AkxOG+SR0P6HAzgpIWlRQI76kt9nHcM4uJYzwDN1vlBw+c5aP48fLQxUYm2Q4Ifi1/AJEhJeVFFGJ0Ubw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=k5G8p/UzyAhd/Lk/FKvdgMZ5Jbe86lzjnlcu4lI+cM4=; b=IEaaYDyh3CeYIgWh6RCyl7PMXT9C1+K1Xl7wC4z0iJb1vjid6uoTR2ihoUSdOEPfkeEcfP6WEwIIYxbSWCDaRkY15E4fQb/6D9Cx0qhMnotRoWwQi4bgtFeSZ4q63Sasee+VhomRBbRSiBt8rIrd6IHIyGHVm0HuwYLn9f0xAhiWItdjjziwEaqAN2qt6CxjFTwmMQwgNuE45Q5xJp80So/Y8hgaJOYp14BS5dio13pWdLTLXg+m6dljVAChZf5/VMqCzt38cFI1mY2lUgIJPE81EJnhWtfY7Pa74Wf9uhTeCd5ZFJFyDm0GNqblxCVXaw5yVvYaW2XcImi74yllYQ== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB6PR01MB3862.eurprd01.prod.exchangelabs.com (2603:10a6:6:48::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.15; Thu, 9 Jun 2022 23:57:37 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5332.013; Thu, 9 Jun 2022 23:57:37 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 10 Jun 2022 01:55:21 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [ZCV0GWrMenHqyUhDrB3ImBVvucf8WWwu] X-ClientProxiedBy: AM5PR04CA0005.eurprd04.prod.outlook.com (2603:10a6:206:1::18) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220609235523.458689-39-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c50c38cb-ae36-45f4-374a-08da4a73d474 X-MS-Exchange-SLBlob-MailProps: sTyj/kSftouvSwbiwDu+Sg5DZpgBqDsaoZ8230d7OrPcVACKAIda0qPtx2mQ5ndPJAcA5m0J2bUhKgDDzNTYJuAa1vbVC7f5Iv90gyWNhrbr94Wa50s8HuuWgwGSavkwJN+S4Ii/k4dwn4pNh+Jqp6LQUxcZLrdyIQ0UAZWIsTQbkFF3JbTbLqGj2SjzweIHe51cjIbzOq1GCzzzEju+vesU+7SN4R5pAmLNUHcIbJImKo8i8hO6cki+BbUmSlFX/kOb9tm6iPkIAan/k6IOgTKVB3kAQsRRmPGM/xFNgvHuhMaFLKROQEEXbPKwgG2ejkCitZeP5h0eJG56QqNyZSTz8AUgdZSochIl9YcSMMLtnitQqUGTAYQ++H7JHChKbCWnLKqiTAjeX/Ss123ajFvl/HF0HF+Jaeh4MN7Pnp93oWAsANIhoo/XZvJXA86hVRkD5TZQuRKOjt9tp8T/2r+EK71Qunlgy1sCYnr6Ppk8v6iirRQsHuigBJG5ovgYuTYkucflrxj59jNzGCkXPXKW8z9WevQUWwpuYR+2kQxzbWSXWMVbPHspGiivwFFSl5ylWwT7a/AeAduyWDK3skJb9iOE+s10D60Tf5f1ug0oQDmNQ5Ixt/6BpToQAAVLuECfUSncKgEk1Z4Bk44cD2bU1h8hwjmZ9zS0oGipgJkNtWz2v8Ue8bFSAf0WccQLt0v9aaMc1EqeN2CWhst53YLapxN1M+VO2J3yg5Vyb6kFfesnvlTsZ7uUgAyto7WqnEA/SkHCiyi8QTrmEJIml1YSlkN77gp66UgLGr3dLp2zzkZTIypQLBeQ9ABwMkOx8jiWoJJyezjvL28QKPSeNw== X-MS-TrafficTypeDiagnostic: DB6PR01MB3862:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wTIIlBNl/YS0l9CDaabhIT+eC185QUXFURgAri2eeYyn17Xe5CemRLLx4OI8cOR6U+mPBjl348d16U6A2oBZRccRsR+8DGFYyrYoTzq/32k70nfHESa3jRE7aIA2O2iwuybW0yE3Ube49bp04c9AN+8Kn8GfDzqdm1+C8dZimUo+tUSoed8eozsnu6XXV6oFinwy3+Vb8NxwvxNsD9OpUPHl01j/upBbUJ/7DPBCHcvQaYP5Yso6ZxI/S8SC7K8ZoSCYtb5ReYuopeX/4INE7d3WYvI+BBXP6nhtqj8Z38bnxdTDY/z025ICr4RmDXmvMlJbEGUqeU2uzgEqJhwQcCNbjnjDP+UunAu2H+sowpGhSwDFmtWdVZu2tEy6j13L39TB+JEvPuTeZyQTSB1AgpUN5y6Z4jNxgGLwzJqnex91wIeungTZlG7o/MOTAB8tZyce7ooYjg/8l/x8B7o579v9hv/kQfejdAD1m1qPPhoxBFqwvZWAhqhT0oKnWMi5T8UAPdJxOz2/HttbA3JdWQfxUNMXOfjJIEaAIoUdKqY9ZEXO3F3PAu8959YE8WN96Jpk6rFCOsHn9b+oQ9UrMnqICWKuuBrI/dViAq0IS3j+tTMzCNVdfj4TxALqBv4Ddb3EFHE5BaPlPZjLkTOO3jkMKbL2Ej6ZS8/3nixrvlQ= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7Okxwd8SRXZn/xzrL26qNGVEkjKJaLDtLhUBU7AN9T+ZO4a3Xw0hrHIc+vcC3yjozW11UbuEJN9ncwbe0FwNdKqyTj20AGo9HnqR/hTRn3vQ2TTYy/+P8gPQhXRJ4UdJtmc9kQaiSmfTgmxuinuP3mU9ASgJeoC72TScBsEkKZnO1iodZlPgPrsLjqN8RU9cFKerx1hqjWWtv+O4Sl7AN5iiX6O1qqO/rRXhvrpCdgpASXmJmg9vtftyRwyAXbTJalEZKQmTaVTtQriRIDKTA1P2MsloSIFsmlxNfbh4o4omSzXC4raoRg28AfmlOUYlWaNbAkMWz/JKS6ak9TS9Ipai+hz7x7vTnH2pWg26boneHCzcDceNEkqFHxJuy6nL9Q8sNP22pOLB+Rr5omA/QaDqgLDRUd7HFr7fS/P8GMRTqawO+PuH7fyZGURvyJY1Czfi7QMyGf60sVNo39yUu+v1YVNm4tzKUpHFzu2+PGFEIw6toYUhbCbzLnp9QPPwZrDoWIMeBYFfZxC+HSkcIe4gf5hPBItj/Bk6P2X+paYmb9rBOZVjRvasiRMQkSRlmGZtjVwEiWN+NgLDG3LfVoyINbgZtDjoe/se4v9qNRelXCkWBPsEZ/oAK6YvTA4pIq/y55YzXlfJl0mCsVeVd9+DG4lS6vhDhoYW39EF1cykXWzFFpCOV6Ns8ZpxFlgcg/I6FNlo/gKykkEEUOndBLstvcMiuE/rgdvALbEVgp2cfG7Y1qa9pdIDFKbBO0D50bHlIBpS/UGvvLU+ldFH+KMQuxWVc+DC7F630iVUsIIYRUcSNw2CUVSPfGff9fRhIqGMYwCqK7HBM1IPh68QgpFkUvXihLhaRA06EaDhG4TgwEMLC12OVxGKzFeW9BZuHwvJTmrzWKOy+oiQ6+fizssisJ3Py2xx5KKSapmTS0dw9N529mEthpuY9MQKgROVyn/ble6D3Jhp/wZ5jOUqL0BqdYM629d3VF9ZYpInsSC4Ue7rxSIjrAlwOe4P3fBi7Q4V5lQMHHqU9A5e1WwlCWjS6riB5KGy3TEDHHOoze6W3kjcIKfXBCrxcKBX/JJwsyul6w2EvwckqCPe64m+UF0uk2JG6lCpV213sMMdKrJPlpwUQg8pRAI7KtCMRK0be7jCA9ZioZvXbXgrrdAo3yu0yN3GXhEWbqOKevcnWJTZg+JjFi0hmdI3H2mKVPzDbAjOh5pf4wQR7DA17cenvTZFMUwYZ3TesI3AnWqx5RQ8iVYbjjve2x3iXuXPxRWxqhTlHmkPt8D5lYUh17zUUkh4uwYv41YNImm6Y4aRbtjLaCbILSXieCG4ikh6mJIPcdub4JnVZkaLBUO0lERtMTUBkHlumgcJITMwSWRQTTLUF1Yr6myJhDQ8cNecUTSqEoGZLb5i7zyYNdvfuWNGm60/0OSFgOrkqtIcWCdUFym7GA9ijy3q0du0c4PKwlrtIBy1in9yoXq8b2NDh637+Q== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c50c38cb-ae36-45f4-374a-08da4a73d474 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2022 23:57:37.4770 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR01MB3862 Subject: [FFmpeg-devel] [PATCH 39/41] swscale/x86/swscale: Disable overridden functions on x64 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: HOtGKajsqFgi x64 always has MMX, MMXEXT, SSE and SSE2 and this means that some functions for MMX, MMXEXT, SSE and 3dnow are always overridden by other functions (unless one e.g. explicitly disables SSE2). This commit therefore disables the MMX implementation (which is overridden by MMXEXT) at compile-time for x64. Notice that yuv2yuvX_mmx is not removed, because it is used by SSE3 and AVX2 as fallback in case of unaligned data and also for tail processing. I don't know why yuv2yuvX_mmxext isn't being used for this; an earlier version [1] of 554c2bc7086f49ef5a6a989ad6bc4bc11807eb6f used it, but the version that was eventually applied does not. [1]: https://ffmpeg.org/pipermail/ffmpeg-devel/2020-November/272124.html Signed-off-by: Andreas Rheinhardt --- There is some issue with 32bit versions of some of the MMX functions here, leading to failures with the f32le and f32be versions of gray, gbrp and gbrap. See https://fate.ffmpeg.org/report.cgi?time=20220609221253&slot=x86_32-debian-kfreebsd-gcc-4.4-cpuflags-mmx It does not affect x64 and if SSE2 is available, the MMX functions are overridden by SSE2 functions that don't suffer from this defect. This is a good reason to remove these overridden functions for x86, too. libswscale/x86/swscale.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libswscale/x86/swscale.c b/libswscale/x86/swscale.c index 73869355b8..5cc174694c 100644 --- a/libswscale/x86/swscale.c +++ b/libswscale/x86/swscale.c @@ -55,7 +55,7 @@ DECLARE_ASM_ALIGNED(8, const uint64_t, ff_w1111) = 0x0001000100010001ULL; //MMX versions -#if HAVE_MMX_INLINE +#if ARCH_X86_32 && HAVE_MMX_INLINE #undef RENAME #define COMPILE_TEMPLATE_MMXEXT 0 #define RENAME(a) a ## _mmx @@ -470,7 +470,7 @@ av_cold void ff_sws_init_swscale_x86(SwsContext *c) { int cpu_flags = av_get_cpu_flags(); -#if HAVE_MMX_INLINE +#if ARCH_X86_32 && HAVE_MMX_INLINE if (INLINE_MMX(cpu_flags)) sws_init_swscale_mmx(c); #endif @@ -479,7 +479,7 @@ av_cold void ff_sws_init_swscale_x86(SwsContext *c) sws_init_swscale_mmxext(c); #endif if(c->use_mmx_vfilter && !(c->flags & SWS_ACCURATE_RND)) { -#if HAVE_MMX_EXTERNAL +#if ARCH_X86_32 && HAVE_MMX_EXTERNAL if (EXTERNAL_MMX(cpu_flags)) c->yuv2planeX = yuv2yuvX_mmx; #endif