From cdaaf005099c36ff866805a34385434e1bffb0ca Mon Sep 17 00:00:00 2001 From: FrzMtrsprt Date: Tue, 27 Sep 2022 18:41:45 +0800 Subject: [PATCH] Make Clash cores use newer microarch level --- v2rayN/v2rayN/Handler/LazyConfig.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/v2rayN/v2rayN/Handler/LazyConfig.cs b/v2rayN/v2rayN/Handler/LazyConfig.cs index eb5ae6b9..81591688 100644 --- a/v2rayN/v2rayN/Handler/LazyConfig.cs +++ b/v2rayN/v2rayN/Handler/LazyConfig.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Runtime.Intrinsics.X86; using v2rayN.Mode; using System.Linq; @@ -68,6 +69,10 @@ namespace v2rayN.Handler { coreInfos = new List(); + // Detects microarch level v3 + // See https://github.com/golang/go/wiki/MinimumRequirements#amd64 + bool bArchV3 = Avx2.X64.IsSupported; + coreInfos.Add(new CoreInfo { coreType = ECoreType.v2rayN, @@ -137,7 +142,7 @@ namespace v2rayN.Handler coreUrl = Global.clashCoreUrl, coreReleaseApiUrl = Global.clashCoreUrl.Replace(@"https://github.com", @"https://api.github.com/repos"), coreDownloadUrl32 = Global.clashCoreUrl + "/download/{0}/clash-windows-386-{0}.zip", - coreDownloadUrl64 = Global.clashCoreUrl + "/download/{0}/clash-windows-amd64-{0}.zip", + coreDownloadUrl64 = Global.clashCoreUrl + "/download/{0}/clash-windows-amd64" + (bArchV3 ? "-v3" : "") + "-{0}.zip", match = "v", versionArg = "-v" }); @@ -150,7 +155,7 @@ namespace v2rayN.Handler coreUrl = Global.clashMetaCoreUrl, coreReleaseApiUrl = Global.clashMetaCoreUrl.Replace(@"https://github.com", @"https://api.github.com/repos"), coreDownloadUrl32 = Global.clashMetaCoreUrl + "/download/{0}/Clash.Meta-windows-386-{0}.zip", - coreDownloadUrl64 = Global.clashMetaCoreUrl + "/download/{0}/Clash.Meta-windows-amd64-compatible-{0}.zip", + coreDownloadUrl64 = Global.clashMetaCoreUrl + "/download/{0}/Clash.Meta-windows-amd64" + (bArchV3 ? "" : "-compatible") + "-{0}.zip", match = "v", versionArg = "-v" });