From patchwork Tue Sep 17 12:14:14 2024 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: 51630 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:d32e:0:b0:48e:c0f8:d0de with SMTP id cf14csp210892vqb; Tue, 17 Sep 2024 05:14:31 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWHdmUgH7nGG2bxoMJ7vNYr+Cq1sfT3ItEbjDNmLpCaFMOA/11fecS4Z8L5S0k11veGs1F7+7T/9RNQNz3wO2VW@gmail.com X-Google-Smtp-Source: AGHT+IFD72LFcniyevOpaJOl+jnsl8F3Gs9Vc0EJUW39n8klwb5mZnnunbqnwStrcp7Vgstt5qx+ X-Received: by 2002:a05:6512:3f03:b0:52c:cc38:592c with SMTP id 2adb3069b0e04-53678f616demr10147593e87.0.1726575271652; Tue, 17 Sep 2024 05:14:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1726575271; cv=none; d=google.com; s=arc-20240605; b=BN81aPB1ishkJMVez4AgMviutCE5BMfqS9qTr2VDj+Zyp/xDruxo4YJgWZwZiaOIMx exxuWXyHAJ5N+gz2fqwqI09+28c+LU6RND79zO/XO0VyRGedBlBY+MwZMLJQz5hSP2hy xPbuVYlsnKiNoiJjjgPxxwHHlQolOofD/gOJZnD5MKGnBERNOqJQbD+eHD5icu4gYh3o Hz2AedIy8xEYrsQjpINvB3z92WBwmQ0g8CI9roV4nu/HA2Tw52OQMTN3XkrHA3xcihso B3df8Pm+GgxrF+n9BqsuZvquOgAKCZgJTFxrkuCMGBM74t929u40NDFGNrm5WSK++qhE cbcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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:message-id:date:to:from :dkim-signature:delivered-to; bh=9rFrQUCXbaAJUG7Kpm3xrJlonD2Yc1vNwT65w9cHCFM=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=BBxC6rN+5+xNM806cHiLiSoQ/ZpTmqZgTGO9f+A2CwWe8iW3O6t/huwQ69cCjaQQnr vLT0fWDVgFPhc93S713HjAAe101B3Bhj9DKuQNneRUsvZpeOfr+lE7vGXsSu51qfegD2 Vr0yUlK5Z0jOCtoNDp8n8PG69zwB4wzrnJ7KpQLkjDIoF/uo/VAlJf4K/gtfkQNlXI3t fta36yEDmb5B6dxTvTIO0taNGxmP44F/iuitDfo8XqbtCArTbvOJPFt0SGSNDRV9gA+t xSQ4hSIM16QM75lnxA88Xk9Wkpq3aca7Jw/lV8ExqEEoL7q7+sT+nvy08Ay/PFW5KjXp c1uw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@martin-st.20230601.gappssmtp.com header.s=20230601 header.b=izxWTyFX; 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; dara=fail header.i=@gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-5c42bb512d7si5087545a12.76.2024.09.17.05.14.31; Tue, 17 Sep 2024 05:14:31 -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.20230601.gappssmtp.com header.s=20230601 header.b=izxWTyFX; 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; dara=fail header.i=@gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1B7C968DAE3; Tue, 17 Sep 2024 15:14:28 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com [209.85.208.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 219E568D78B for ; Tue, 17 Sep 2024 15:14:21 +0300 (EEST) Received: by mail-lj1-f174.google.com with SMTP id 38308e7fff4ca-2f75c56f16aso69247181fa.0 for ; Tue, 17 Sep 2024 05:14:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=martin-st.20230601.gappssmtp.com; s=20230601; t=1726575260; x=1727180060; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=ttDJ+iHj9RB4P/aplGETUtxKBPkhLw0MJE7H6maaO0Y=; b=izxWTyFXyNzAqhlJcBiYtkW4MwJV+TovRxrEUGehw0SSaENnCabMbKgAs3vMxrNutO d/OsFq0Ga7UeaTHgukaQFtV62h0cJVYA9dkzk+fFIMm8P+kQOmrIfJtSxmPU4IlaKR38 VVKOVsBQvzt8+Jr/xE2TGkt1aPuADnBXbL2EIZGKc2OhqameXE6lYjYp3pkil7g1Xwop TTcVW6C+4Voa6LSTD5LBlqYP87DImpjTJ9lYIbYcYHhF2o43Sd6fnty0rh42Ww2T7eeB chVOsqWXfd5/z67+GPrTteZKESktnQjeAPNlkAR0GB2tkVVoarFPDZv05L1+0szCTUN9 CJdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726575260; x=1727180060; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ttDJ+iHj9RB4P/aplGETUtxKBPkhLw0MJE7H6maaO0Y=; b=brXxE+vRx3n5LSQCwf9MUljnt7EuZfTtQnQldDQEBZhs/xIEHwswQi2TrY+6liplJu LpO9fTOgYVB9BYPPXotnxez1fa6wzy2AuqsYzPnZIPx/RGsrdquUgDccs6TUOGb8cwJB hTYEZIafi7XzmeRavQH85NAOoGog5b7gW5BqvOlc4u6f3OW9iLKtMH//zq4gc3MpGafE ui97tHIYoTZ05tepGLxtFTVF9qlnVGU3sBMwXa2bkRgb/Jxsd13GcR5PIyW6VKD/F2Fj +CPaBjX4MbxO/LVMBBxAxc3wgk/hYdIkPc+mjEns3t7Hv4it/PvaR2yMG9Or6hhUv5B2 QL5g== X-Gm-Message-State: AOJu0YyptegloGkP4mjMuwyI8RzRA1bjAHfuQQLM3RB31Z8T1BmOumDK gsFFfaTec0JcnQh79gGPA1zZIBrRZReaEoeV9g9ARb6sCAqskM802EATVJ46GkyU7Yq30tAD+4k USA== X-Received: by 2002:a05:6512:3e04:b0:52e:a68a:6076 with SMTP id 2adb3069b0e04-53678ff2e04mr8861373e87.49.1726575259769; Tue, 17 Sep 2024 05:14:19 -0700 (PDT) Received: from localhost (dsl-tkubng21-58c01c-243.dhcp.inet.fi. [88.192.28.243]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-536870b8cc0sm1164882e87.271.2024.09.17.05.14.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Sep 2024 05:14:19 -0700 (PDT) From: =?utf-8?q?Martin_Storsj=C3=B6?= To: ffmpeg-devel@ffmpeg.org Date: Tue, 17 Sep 2024 15:14:14 +0300 Message-Id: <20240917121419.610349-1-martin@martin.st> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/5] aarch64: Detect I8MM on Windows via SVE-I8MM 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: xAmbYH1VEYFp There's no direct processor feature constant for I8MM alone, but there is a flag for SVE-I8MM (added in WinSDK 10.0.26100 and recent versions of mingw-w64). If SVE-I8MM is available, we can assume that I8MM is available. While HW supporting these features isn't yet commonly running Windows, this at least allows detecting and running the I8MM codepaths in Windows builds in Wine (possibly running in QEMU). --- libavutil/aarch64/cpu.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavutil/aarch64/cpu.c b/libavutil/aarch64/cpu.c index 7631d13de0..fe24b1da4d 100644 --- a/libavutil/aarch64/cpu.c +++ b/libavutil/aarch64/cpu.c @@ -112,6 +112,13 @@ static int detect_flags(void) #ifdef PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE if (IsProcessorFeaturePresent(PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE)) flags |= AV_CPU_FLAG_DOTPROD; +#endif +#ifdef PF_ARM_SVE_I8MM_INSTRUCTIONS_AVAILABLE + /* There's no PF_* flag that indicates whether plain I8MM is available + * or not. But if SVE_I8MM is available, that also implies that + * regular I8MM is available. */ + if (IsProcessorFeaturePresent(PF_ARM_SVE_I8MM_INSTRUCTIONS_AVAILABLE)) + flags |= AV_CPU_FLAG_I8MM; #endif return flags; }