From patchwork Fri May 26 08:03:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Martin_Storsj=C3=B6?= X-Patchwork-Id: 41835 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c51c:b0:10c:5e6f:955f with SMTP id gm28csp1145421pzb; Fri, 26 May 2023 01:04:06 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6dld1EVRuvaiQ8EW2MAuR++oiw7DhpDJxTKJqvBE5U6D8yjHM1/9qVqaZm7hZ1JF1mI7VG X-Received: by 2002:a17:907:d27:b0:94b:d57e:9d4b with SMTP id gn39-20020a1709070d2700b0094bd57e9d4bmr1525449ejc.2.1685088246433; Fri, 26 May 2023 01:04:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685088246; cv=none; d=google.com; s=arc-20160816; b=yF3ZDv3CKVmeAQEfaR23BqMBC/gHcuqXM7LXOrPdmunU35AYXetxTNUWiyeYs2dSyd dOynzPvKXiZCkkN/iAAH0Tt3wtBe/bHrBYOEdDBUrEhwkTmZaawzcSkBcdJGS46RYA+d r9zxwoFcMpvff6Md7gE5GQnsqFOxQtjJZFS2j2Gk+eDy3cqhXfQU7S5mkMa8iQwMDYm0 4y//1/dj+ZdDiWVUQXxtY+RUCkI2Kb9INDBmRK7iV85yMyYsoRLQ+Q9rcgnjYm5iUftm 2F4gwqE9nTtyVzsVFPvvi0d0ARMLNSPxbOgodf/xHzKAz9A4o9aJP57fKKilFzQ9n8gM aI4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=FW6UFAckJ2g3iZzV/m548s7+AABtyx5CBzDTZKebSIM=; b=Dwo7pkiAoJvJ5CtMcoaivvvRun57gsT5gyX40hf7ulE50HGTdk/ru9te/Lql5yER76 OCWv+DfIsRmVwce+oYl2QwDBUFazh5PagPMi5OmzXc/YqLBUuu5jx3UhkXYQmuCdGmt2 0MepzyyfOxwKCqjg0pC7XOGub8Z0Rj0v7No1Dbq/xYIxzMSVl/EjwE+QQkOCAV7gDq3G 1UcmAPF63r3ZZMqP/b8/MhSnjji6I++g4icsXmfQ9UWjG+4+vlNbhgWCRCW+uWI3JWrq hlDdmU+13AKVARQOZRQCMNIrJUmGWec+AaCfnumFOzmMbsqQ3JVZhtIriNEVEOJ7zgOf 1Ojg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@martin-st.20221208.gappssmtp.com header.s=20221208 header.b=sk1MynBp; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id st5-20020a170907c08500b00973877aac6fsi780864ejc.30.2023.05.26.01.04.06; Fri, 26 May 2023 01:04:06 -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=@martin-st.20221208.gappssmtp.com header.s=20221208 header.b=sk1MynBp; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CB17468BBF7; Fri, 26 May 2023 11:03:27 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f176.google.com (mail-lj1-f176.google.com [209.85.208.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 13C1668B9FF for ; Fri, 26 May 2023 11:03:19 +0300 (EEST) Received: by mail-lj1-f176.google.com with SMTP id 38308e7fff4ca-2af1e290921so4281601fa.3 for ; Fri, 26 May 2023 01:03:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=martin-st.20221208.gappssmtp.com; s=20221208; t=1685088198; x=1687680198; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=YFlUz7sZjYoQVjDEtjrVrhvD1J+V2cdKdTpEhwgUrLI=; b=sk1MynBpt8gcIODHgcn4K1wVPhQNPTUNFdoXKrF/74TyZazO7HcGFghNy68GW5+IQE mZlqzmt/gLkMlZ0GQiK/1NOaOX4iBPHPWi6k0p4xLuq7g0HBGvL+4ZJ85LeNonyyMh/j CJwUfdZwptwkjfe3sGrrMZnARLeCN3r4AfI6fhv+jGCS3R8+0i2fr0tY9ghMk4hraKee qndXjUGTlrgJ+mcxZPPj/Z1Cz76N6vjQW2gpbhwWPIRzj4kyKjtuacnQPpWLciPmeBBe 2r1kWKwdA3TMkq6r+iQPGHY/VBh40EUSjEX7O/jW1SWPeTDA8KXyzsbT+5e6mjszCfiu qAxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685088198; x=1687680198; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YFlUz7sZjYoQVjDEtjrVrhvD1J+V2cdKdTpEhwgUrLI=; b=WQpWULvU5socI1wbo6OyzlOqqjHcqfR8hp6teJn3RbIH4NMOLVhHqSGxczcolNZ4Qq NfRtSYeppJr9v1RS+I5Dlk3uuQ/49uZXuJJkJpmhHQM6nCR6Frw9Z+G+FbNVVAvojGIy 9z85qsGUWNpmLSgFZFZ711fcPIEVTcanyuDUMboew+zPaT2Sab7m50tcMllcR7PR83JS Nm7rLQVK6tQs7h3QGsC08XE2hshnmLLVMoadXbZJC0S2Kh+mYB5UXPDg6TdPHZoXxQu2 lX/rjaweFqdI1MEmqA5ruIWFKe4jcWj9UyrbZK+QfjL15Yw2aXVcQpDUHrNrRgKUNbVy ZKEQ== X-Gm-Message-State: AC+VfDz4MKg0WOxFBBgVOB/auNJG5WMQoQqkN9AcoPtAsmfPJKg9HIyu 4CzDrjOY/CCqdrhu1WYf9AF7ifG1RQWyViKs1oAMmw== X-Received: by 2002:a2e:b6c2:0:b0:2a8:a651:8098 with SMTP id m2-20020a2eb6c2000000b002a8a6518098mr349827ljo.38.1685088198363; Fri, 26 May 2023 01:03:18 -0700 (PDT) Received: from localhost (dsl-tkubng21-58c01c-243.dhcp.inet.fi. [88.192.28.243]) by smtp.gmail.com with ESMTPSA id i10-20020a2e864a000000b002ad90c2d0dasm607301ljj.71.2023.05.26.01.03.18 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 26 May 2023 01:03:18 -0700 (PDT) From: =?utf-8?q?Martin_Storsj=C3=B6?= To: ffmpeg-devel@ffmpeg.org Date: Fri, 26 May 2023 11:03:15 +0300 Message-Id: <20230526080315.83424-4-martin@martin.st> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) In-Reply-To: <20230526080315.83424-1-martin@martin.st> References: <20230526080315.83424-1-martin@martin.st> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/4] aarch64: Add Apple runtime detection of dotprod and i8mm using sysctl 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: X1nMqrxsxeF6 --- configure | 2 ++ libavutil/aarch64/cpu.c | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/configure b/configure index b5357b8d27..45bdc16c7d 100755 --- a/configure +++ b/configure @@ -2346,6 +2346,7 @@ SYSTEM_FUNCS=" strerror_r sysconf sysctl + sysctlbyname usleep UTGetOSTypeFromString VirtualAlloc @@ -6384,6 +6385,7 @@ check_func_headers mach/mach_time.h mach_absolute_time check_func_headers stdlib.h getenv check_func_headers sys/stat.h lstat check_func_headers sys/auxv.h getauxval +check_func_headers sys/sysctl.h sysctlbyname check_func_headers windows.h GetModuleHandle check_func_headers windows.h GetProcessAffinityMask diff --git a/libavutil/aarch64/cpu.c b/libavutil/aarch64/cpu.c index 34c838c2f5..f35e4356df 100644 --- a/libavutil/aarch64/cpu.c +++ b/libavutil/aarch64/cpu.c @@ -47,6 +47,28 @@ static int detect_flags(void) return flags; } +#elif defined(__APPLE__) && HAVE_SYSCTLBYNAME +#include + +static int detect_flags(void) +{ + uint32_t value = 0; + size_t size; + int flags = 0; + + size = sizeof(value); + if (!sysctlbyname("hw.optional.arm.FEAT_DotProd", &value, &size, NULL, 0)) { + if (value) + flags |= AV_CPU_FLAG_DOTPROD; + } + size = sizeof(value); + if (!sysctlbyname("hw.optional.arm.FEAT_I8MM", &value, &size, NULL, 0)) { + if (value) + flags |= AV_CPU_FLAG_I8MM; + } + return flags; +} + #else static int detect_flags(void)