diff --git a/Source/Engine/Scripting/ScriptingType.h b/Source/Engine/Scripting/ScriptingType.h index b9735a5af..e1fb3dc04 100644 --- a/Source/Engine/Scripting/ScriptingType.h +++ b/Source/Engine/Scripting/ScriptingType.h @@ -5,6 +5,9 @@ #include "Types.h" #include "Engine/Core/Types/StringView.h" #include "Engine/Core/Types/Guid.h" +#if PLATFORM_ARCH_ARM64 +#include "Engine/Core/Core.h" +#endif class MMethod; class BinaryModule; diff --git a/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchain.cs b/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchain.cs index fddbdb3de..0c2d44c5d 100644 --- a/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchain.cs +++ b/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchain.cs @@ -19,7 +19,7 @@ namespace Flax.Build /// /// Specifies the minimum CPU architecture type to support (on x86/x64). /// - [CommandLine("winCpuArch", "", "Specifies the minimum CPU architecture type to support (om x86/x64).")] + [CommandLine("winCpuArch", "", "Specifies the minimum CPU architecture type to support (on x86/x64).")] public static CpuArchitecture WindowsCpuArch = CpuArchitecture.SSE4_2; // 99.78% support on PC according to Steam Hardware & Software Survey: September 2025 (https://store.steampowered.com/hwsurvey/) } } @@ -76,22 +76,27 @@ namespace Flax.Build.Platforms options.LinkEnv.InputLibraries.Add("oleaut32.lib"); options.LinkEnv.InputLibraries.Add("delayimp.lib"); - if (options.Architecture == TargetArchitecture.ARM64) + options.CompileEnv.CpuArchitecture = Configuration.WindowsCpuArch; + + if (options.Architecture == TargetArchitecture.x64) + { + if (_minVersion.Major <= 7 && options.CompileEnv.CpuArchitecture == CpuArchitecture.AVX2) + { + // Old Windows had lower support ratio for latest CPU features + options.CompileEnv.CpuArchitecture = CpuArchitecture.AVX; + } + if (_minVersion.Major >= 11 && options.CompileEnv.CpuArchitecture == CpuArchitecture.AVX) + { + // Windows 11 has hard requirement on SSE4.2 + options.CompileEnv.CpuArchitecture = CpuArchitecture.SSE4_2; + } + } + else if (options.Architecture == TargetArchitecture.ARM64) { options.CompileEnv.PreprocessorDefinitions.Add("USE_SOFT_INTRINSICS"); options.LinkEnv.InputLibraries.Add("softintrin.lib"); - } - - options.CompileEnv.CpuArchitecture = Configuration.WindowsCpuArch; - if (_minVersion.Major <= 7 && options.CompileEnv.CpuArchitecture == CpuArchitecture.AVX2) - { - // Old Windows had lower support ratio for latest CPU features - options.CompileEnv.CpuArchitecture = CpuArchitecture.AVX; - } - if (_minVersion.Major >= 11 && options.CompileEnv.CpuArchitecture == CpuArchitecture.AVX) - { - // Windows 11 has hard requirement on SSE4.2 - options.CompileEnv.CpuArchitecture = CpuArchitecture.SSE4_2; + if (options.CompileEnv.CpuArchitecture != CpuArchitecture.None) + options.CompileEnv.CpuArchitecture = CpuArchitecture.NEON; } }