Catalina, iOS 14 removal

Metal 2.3 removed, Metal 3.0 added for Mac

#jira UE-163352
#rb adam.kinge bertrand.carre
#preflight 631ea7eb94758d0bf2008668

[CL 21960671 by axel riffard in ue5-main branch]
This commit is contained in:
axel riffard
2022-09-11 23:47:08 -04:00
parent 010300bcc6
commit c64aa2de93
34 changed files with 101 additions and 208 deletions

View File

@@ -2641,7 +2641,7 @@ DistroCodeSigningIdentity=iPhone Distribution:;Apple Distribution:
VersionInfo=1.0
FrameRateLock=PUFRL_30
bEnableDynamicMaxFPS=False
MinimumiOSVersion=IOS_14
MinimumiOSVersion=IOS_15
bSupportsIPad=True
bSupportsIPhone=True
AdditionalPlistData=
@@ -2658,7 +2658,7 @@ bAutomaticSigning=false
UseFastIntrinsics=False
ForceFloats=True
EnableMathOptimisations=True
MetalLanguageVersion=6
MetalLanguageVersion=0
bDisableMotionData=False
bEnableAdvertisingIdentifier=True
@@ -2802,7 +2802,7 @@ bTarget32Bit=false
bEnableRayTracing=true
[/Script/MacTargetPlatform.MacTargetSettings]
MetalLanguageVersion=5
MetalLanguageVersion=0
+TargetedRHIs=SF_METAL_SM5
UseFastIntrinsics=False
EnableMathOptimisations=True
@@ -3078,4 +3078,4 @@ FilePickerClass=/Script/InterchangeEditorUtilities.InterchangeFilePickerGeneric
bStaticMeshUseSmoothEdgesIfSmoothingInformationIsMissing=True
ContentImportSettings=(DefaultPipelineStackOverride=((Materials, "Materials"),(Textures, "Textures")),ShowPipelineStacksConfigurationDialogOverride=((Textures, False)),PipelineStacks=(("Assets", (Pipelines=("/Interchange/Pipelines/DefaultAssetsPipeline.DefaultAssetsPipeline"))),("Materials", (Pipelines=("/Interchange/Pipelines/DefaultMaterialPipeline.DefaultMaterialPipeline"))),("Textures", (Pipelines=("/Interchange/Pipelines/DefaultTexturePipeline.DefaultTexturePipeline")))),DefaultPipelineStack="Assets",PipelineConfigurationDialogClass="/Script/InterchangeEditorPipelines.InterchangePipelineConfigurationGeneric",bShowPipelineStacksConfigurationDialog=True)
SceneImportSettings=(PipelineStacks=(("Scene", (Pipelines=("/Interchange/Pipelines/DefaultSceneAssetsPipeline.DefaultSceneAssetsPipeline","/Interchange/Pipelines/DefaultSceneLevelPipeline.DefaultSceneLevelPipeline")))),DefaultPipelineStack="Scene",PipelineConfigurationDialogClass="/Script/InterchangeEditorPipelines.InterchangePipelineConfigurationGeneric",bShowPipelineStacksConfigurationDialog=True)
GenericPipelineClass=/Script/InterchangePipelines.InterchangeGenericAssetsPipeline
GenericPipelineClass=/Script/InterchangePipelines.InterchangeGenericAssetsPipeline

View File

@@ -1321,19 +1321,7 @@ FElectraHTTPStreamApple::FChallengeResponse FElectraHTTPStreamApple::ReceivedCha
SecTrustEvaluateWithError(CertTrust, nil);
TCFRef<SecKeyRef> CertPubKey;
if (@available(macOS 11, *))
{
CertPubKey = SecTrustCopyKey(CertTrust);
}
else
{
PRAGMA_DISABLE_DEPRECATION_WARNINGS
// warning: 'SecTrustCopyPublicKey' is deprecated: first deprecated in iOS 14.0 [-Wdeprecated-declarations]
CertPubKey = SecTrustCopyPublicKey(CertTrust);
PRAGMA_ENABLE_DEPRECATION_WARNINGS
}
CertPubKey = SecTrustCopyKey(CertTrust);
TCFRef<CFDataRef> CertPubKeyData = SecKeyCopyExternalRepresentation(CertPubKey, NULL);
if (!CertPubKeyData)

View File

@@ -1030,20 +1030,20 @@ bool DoCompileMetalShader(
switch (VersionEnum)
{
#if PLATFORM_MAC
case 8:
{
TargetDesc.Version = 30000;
break;
}
case 7:
{
TargetDesc.Version = 20400;
break;
}
case 6:
{
TargetDesc.Version = 20300;
break;
}
default:
{
UE_LOG(LogShaders, Warning, TEXT("Metal Shader Version Unsupported, switching to default 2.3")); //EMacMetalShaderStandard::MacMetalSLStandard_Minimum
TargetDesc.Version = 20300;
UE_LOG(LogShaders, Warning, TEXT("Metal Shader Version Unsupported, switching to default 2.4")); //EMacMetalShaderStandard::MacMetalSLStandard_Minimum
TargetDesc.Version = 20400;
break;
}
#else
@@ -1057,15 +1057,10 @@ bool DoCompileMetalShader(
TargetDesc.Version = 20400;
break;
}
case 6:
{
TargetDesc.Version = 20300;
break;
}
default:
{
UE_LOG(LogShaders, Warning, TEXT("Metal Shader Version Unsupported, switching to default 2.3")); //EIOSMetalShaderStandard::IOSMetalSLStandard_Minimum
TargetDesc.Version = 20300;
UE_LOG(LogShaders, Warning, TEXT("Metal Shader Version Unsupported, switching to default 2.4")); //EIOSMetalShaderStandard::IOSMetalSLStandard_Minimum
TargetDesc.Version = 20400;
break;
}
#endif

View File

@@ -1906,7 +1906,7 @@ void FIOSTargetSettingsCustomization::SetShaderStandard(int32 Value)
if (MinOSPropertyHandle.IsValid())
{
uint8 IOSVersion = (uint8)EIOSVersion::IOS_14;
uint8 IOSVersion = (uint8)EIOSVersion::IOS_15;
if (MinOSPropertyHandle.IsValid())
{
MinOSPropertyHandle->GetValue(IOSVersion);
@@ -1934,9 +1934,9 @@ void FIOSTargetSettingsCustomization::UpdateOSVersionWarning()
if (bMRTEnabled)
{
if (EnumValue < (uint8)EIOSVersion::IOS_14)
if (EnumValue < (uint8)EIOSVersion::IOS_15)
{
SetMinVersion((int32)EIOSVersion::IOS_14);
SetMinVersion((int32)EIOSVersion::IOS_15);
}
}
else
@@ -1954,9 +1954,6 @@ void FIOSTargetSettingsCustomization::UpdateOSVersionWarning()
switch (ShaderStandard)
{
case (int32)EIOSMetalShaderStandard::IOSMetalSLStandard_Minimum:
case (int32)EIOSMetalShaderStandard::IOSMetalSLStandard_2_3:
if (EnumValue < (uint8)EIOSVersion::IOS_14) {IOSVersionWarningTextBox->SetError(TEXT("iOS14 is the Minimum for Metal 2.3")); return;}
break;
case (int32)EIOSMetalShaderStandard::IOSMetalSLStandard_2_4:
if (EnumValue < (uint8)EIOSVersion::IOS_15) {IOSVersionWarningTextBox->SetError(TEXT("iOS15 is the Minimum for Metal 2.4")); return;}
break;
@@ -1977,13 +1974,13 @@ void FIOSTargetSettingsCustomization::UpdateMetalMRTWarning()
{
uint8 EnumValue;
MinOSPropertyHandle->GetValue(EnumValue);
if (EnumValue < (uint8)EIOSVersion::IOS_14)
if (EnumValue < (uint8)EIOSVersion::IOS_15)
{
SetMinVersion((int32)EIOSVersion::IOS_14);
SetMinVersion((int32)EIOSVersion::IOS_15);
}
ShaderVersionPropertyHandle->GetValue(EnumValue);
if (EnumValue < (int32)EIOSMetalShaderStandard::IOSMetalSLStandard_2_3)
if (EnumValue < (int32)EIOSMetalShaderStandard::IOSMetalSLStandard_2_4)
{
SetShaderStandard((int32)EIOSMetalShaderStandard::IOSMetalSLStandard_Minimum);
}

View File

@@ -13,12 +13,13 @@
UENUM()
enum class EMacMetalShaderStandard : uint8
{
/** Metal Shader 2.3 is the minimum as of UE5.0*/
MacMetalSLStandard_Minimum = 0 UMETA(DisplayName="Minimum, Currently v2.3 (11+)"),
/** Metal Shaders Compatible With macOS 11.0 or later (std=osx-metal2.3) */
MacMetalSLStandard_2_3 = 6 UMETA(DisplayName="Metal v2.3 (11.0+)"),
/** Metal Shader 2.4 is the minimum as of UE5.1*/
MacMetalSLStandard_Minimum = 0 UMETA(DisplayName="Minimum, Currently v2.4 (12+)"),
/** Metal Shaders Compatible With macOS 12.0 or later (std=osx-metal2.4) */
MacMetalSLStandard_2_4 = 7 UMETA(DisplayName="Metal v2.4 (12.0+)"),
/** Metal Shaders Compatible With macOS 13.0 or later (std=metal3.0) */
MacMetalSLStandard_3_0 = 8 UMETA(DisplayName="Metal v3.0 (13.0+)"),
};
UENUM()

View File

@@ -122,19 +122,19 @@ static FText GetFriendlyNameFromRHINameMac(FName InRHIName)
FriendlyRHIName = LOCTEXT("OpenGLES31", "OpenGLES 3.1 (Mobile)");
break;
case SP_METAL:
FriendlyRHIName = LOCTEXT("Metal", "iOS Metal Mobile Renderer (ES3.1, Metal 2.3+, iOS 14.0 or later)");
FriendlyRHIName = LOCTEXT("Metal", "iOS Metal Mobile Renderer (ES3.1, Metal 2.4+, iOS 15.0 or later)");
break;
case SP_METAL_MRT:
FriendlyRHIName = LOCTEXT("MetalMRT", "iOS Metal Desktop Renderer (SM5, Metal 2.3+, iOS 14.0 or later)");
FriendlyRHIName = LOCTEXT("MetalMRT", "iOS Metal Desktop Renderer (SM5, Metal 2.4+, iOS 15.0 or later)");
break;
case SP_METAL_TVOS:
FriendlyRHIName = LOCTEXT("MetalTV", "tvOS Metal Mobile Renderer (ES3.1, Metal 2.3+, tvOS 14.0 or later)");
FriendlyRHIName = LOCTEXT("MetalTV", "tvOS Metal Mobile Renderer (ES3.1, Metal 2.4+, tvOS 15.0 or later)");
break;
case SP_METAL_MRT_TVOS:
FriendlyRHIName = LOCTEXT("MetalMRTTV", "tvOS Metal Desktop Renderer (SM5, Metal 2.3+, tvOS 14.0 or later)");
FriendlyRHIName = LOCTEXT("MetalMRTTV", "tvOS Metal Desktop Renderer (SM5, Metal 2.4+, tvOS 15.0 or later)");
break;
case SP_METAL_SM5:
FriendlyRHIName = LOCTEXT("MetalSM5", "Mac Metal Desktop Renderer (SM5, Metal 2.3+, macOS BigSur 11.0 or later)");
FriendlyRHIName = LOCTEXT("MetalSM5", "Mac Metal Desktop Renderer (SM5, Metal 2.4+, macOS Monterey 12.0 or later)");
break;
case SP_METAL_MACES3_1:
FriendlyRHIName = LOCTEXT("MetalES3.1", "Mac Metal High-End Mobile Preview (ES3.1)");
@@ -343,8 +343,8 @@ bool FMacTargetSettingsDetails::HandlePostExternalIconCopy(const FString& InChos
}
static uint32 GMacTargetSettingsMinOSVers[][3] = {
{11, 0,0},
{12, 0,0}
{12,0,0},
{13,0,0}
};
TSharedRef<SWidget> FMacTargetSettingsDetails::OnGetShaderVersionContent()
@@ -393,9 +393,9 @@ void FMacTargetSettingsDetails::SetShaderStandard(int32 Value)
}
ShaderVersionWarningTextBox->SetError(TEXT(""));
if (Value < 6) // EMacMetalShaderStandard::MacMetalSLStandard_Minimum
if (Value < 7) // EMacMetalShaderStandard::MacMetalSLStandard_Minimum
{
ShaderVersionWarningTextBox->SetError(TEXT("Metal Shader Standard is 2.3 on UE5.1"));
ShaderVersionWarningTextBox->SetError(TEXT("Metal Shader Standard is 2.4 on UE5.1"));
}
}
@@ -407,9 +407,9 @@ void FMacTargetSettingsDetails::UpdateShaderStandardWarning()
if (ShaderVersionPropertyHandle->IsValidHandle())
{
ShaderVersionPropertyHandle->GetValue(EnumValue);
if (EnumValue < 6)
if (EnumValue < 7)
{
SetShaderStandard(6); // EMacMetalShaderStandard::MacMetalSLStandard_Minimum
SetShaderStandard(7); // EMacMetalShaderStandard::MacMetalSLStandard_Minimum
}
}
}

View File

@@ -6910,7 +6910,7 @@ void UEditorEngine::UpdateAutoLoadProject()
#if PLATFORM_MAC
if ( !GIsBuildMachine )
{
if(FPlatformMisc::MacOSXVersionCompare(11, 0, 0) < 0)
if(FPlatformMisc::MacOSXVersionCompare(12, 0, 0) < 0)
{
if(FSlateApplication::IsInitialized())
{

View File

@@ -14,7 +14,7 @@ namespace UnrealBuildTool
protected override void GetValidSoftwareVersionRange(out string MinVersion, out string? MaxVersion)
{
// what is our min IOS version?
MinVersion = "14.0";
MinVersion = "15.0";
MaxVersion = null;
}
}

View File

@@ -34,7 +34,7 @@ namespace UnrealBuildTool
/// The version of the iOS to allow at build time.
/// </summary>
[XmlConfigFile(Category = "IOSToolChain")]
public string BuildIOSVersion = "13.0";
public string BuildIOSVersion = "15.0";
/// <summary>
/// Directory for the developer binaries
@@ -722,7 +722,7 @@ namespace UnrealBuildTool
Arguments.Append(" --launch-image \"Launch Image\"");
Arguments.Append(" --filter-for-device-model AppleTV5,3");
Arguments.Append(" --target-device tv");
Arguments.Append(" --minimum-deployment-target 14.0");
Arguments.Append(" --minimum-deployment-target 15.0");
Arguments.Append(" --platform appletvos");
}
else
@@ -731,7 +731,7 @@ namespace UnrealBuildTool
Arguments.Append(" --product-type com.apple.product-type.application");
Arguments.Append(" --target-device iphone");
Arguments.Append(" --target-device ipad");
Arguments.Append(" --minimum-deployment-target 14.0");
Arguments.Append(" --minimum-deployment-target 15.0");
Arguments.Append(" --platform iphoneos");
}
Arguments.Append(" --enable-on-demand-resources YES");

View File

@@ -14,7 +14,7 @@ namespace UnrealBuildTool
protected override void GetValidSoftwareVersionRange(out string MinVersion, out string? MaxVersion)
{
MinVersion = "11.0.0";
MinVersion = "12.0.0";
MaxVersion = null;
}
}

View File

@@ -637,14 +637,6 @@ FMetalDynamicRHI::FMetalDynamicRHI(ERHIFeatureLevel::Type RequestedFeatureLevel)
GMaxTextureMipCount = FPlatformMath::CeilLogTwo( GMaxTextureDimensions ) + 1;
GMaxTextureMipCount = FPlatformMath::Min<int32>( MAX_TEXTURE_MIP_COUNT, GMaxTextureMipCount );
// Using packed pixel formats (specifically MTLPixelFormatRG11B10Float) for texture_buffers on macOS <= 11.4 results in Metal validation errors:
// "pixel format (MTLPixelFormatRG11B10Float) cannot be written to from a shader on this device"
// macOS Big Sur 11.5.1 works; Big Sur 11.4.0 (and prior versions including Catalina) report the error; texture2d with buffer backing does not report this error.
bool bSupportsPackedPixelFormatsInTextureBuffers = true;
#if PLATFORM_MAC
bSupportsPackedPixelFormatsInTextureBuffers = FPlatformMisc::MacOSXVersionCompare(11,5,1) >= 0;
#endif
// Initialize the buffer format map - in such a way as to be able to validate it in non-shipping...
#if METAL_DEBUG_OPTIONS
FMemory::Memset(GMetalBufferFormats, 255);
@@ -658,14 +650,7 @@ FMetalDynamicRHI::FMetalDynamicRHI(ERHIFeatureLevel::Type RequestedFeatureLevel)
GMetalBufferFormats[PF_DXT3 ] = { mtlpp::PixelFormat::Invalid, (uint8)EMetalBufferFormat::Unknown };
GMetalBufferFormats[PF_DXT5 ] = { mtlpp::PixelFormat::Invalid, (uint8)EMetalBufferFormat::Unknown };
GMetalBufferFormats[PF_UYVY ] = { mtlpp::PixelFormat::Invalid, (uint8)EMetalBufferFormat::Unknown };
if(bSupportsPackedPixelFormatsInTextureBuffers)
{
GMetalBufferFormats[PF_FloatRGB ] = { mtlpp::PixelFormat::RG11B10Float, (uint8)EMetalBufferFormat::RG11B10Half };
}
else
{
GMetalBufferFormats[PF_FloatRGB ] = { mtlpp::PixelFormat::RGBA16Float, (uint8)EMetalBufferFormat::RGBA16Half };
}
GMetalBufferFormats[PF_FloatRGB ] = { mtlpp::PixelFormat::RG11B10Float, (uint8)EMetalBufferFormat::RG11B10Half };
GMetalBufferFormats[PF_FloatRGBA ] = { mtlpp::PixelFormat::RGBA16Float, (uint8)EMetalBufferFormat::RGBA16Half };
GMetalBufferFormats[PF_DepthStencil ] = { mtlpp::PixelFormat::Invalid, (uint8)EMetalBufferFormat::Unknown };
GMetalBufferFormats[PF_ShadowDepth ] = { mtlpp::PixelFormat::Invalid, (uint8)EMetalBufferFormat::Unknown };
@@ -855,16 +840,9 @@ FMetalDynamicRHI::FMetalDynamicRHI(ERHIFeatureLevel::Type RequestedFeatureLevel)
GPixelFormats[PF_DXT3 ].PlatformFormat = (uint32)mtlpp::PixelFormat::BC2_RGBA;
GPixelFormats[PF_DXT5 ].PlatformFormat = (uint32)mtlpp::PixelFormat::BC3_RGBA;
if(bSupportsPackedPixelFormatsInTextureBuffers)
{
GPixelFormats[PF_FloatRGB ].PlatformFormat = (uint32)mtlpp::PixelFormat::RG11B10Float;
GPixelFormats[PF_FloatRGB ].BlockBytes = 4;
}
else
{
GPixelFormats[PF_FloatRGB ].PlatformFormat = (uint32)mtlpp::PixelFormat::RGBA16Float;
GPixelFormats[PF_FloatRGB ].BlockBytes = 8;
}
GPixelFormats[PF_FloatRGB ].PlatformFormat = (uint32)mtlpp::PixelFormat::RG11B10Float;
GPixelFormats[PF_FloatRGB ].BlockBytes = 4;
GPixelFormats[PF_FloatR11G11B10 ].PlatformFormat = (uint32)mtlpp::PixelFormat::RG11B10Float;
GPixelFormats[PF_FloatR11G11B10 ].BlockBytes = 4;

View File

@@ -47,30 +47,9 @@ NSString* DecodeMetalSourceCode(uint32 CodeSize, TArray<uint8> const& Compressed
mtlpp::LanguageVersion ValidateVersion(uint32 Version)
{
mtlpp::LanguageVersion Result = mtlpp::LanguageVersion::Version2_2;
mtlpp::LanguageVersion Result = mtlpp::LanguageVersion::Version2_4;
#if PLATFORM_MAC
Result = mtlpp::LanguageVersion::Version2_2;
switch(Version)
{
case 7:
Result = mtlpp::LanguageVersion::Version2_4;
break;
case 6:
Result = mtlpp::LanguageVersion::Version2_3;
break;
case 0:
Version = 6;
Result = mtlpp::LanguageVersion::Version2_3; // minimum version as of UE5.1
break;
default:
//EMacMetalShaderStandard::MacMetalSLStandard_Minimum is currently 2.3
UE_LOG(LogTemp, Warning, TEXT("The Metal version currently set is not supported anymore. Set it in the Project Settings. Defaulting to the minimum version."));
Version = 6;
Result = mtlpp::LanguageVersion::Version2_3;
break;
}
#else
Result = mtlpp::LanguageVersion::Version2_3;
Result = mtlpp::LanguageVersion::Version2_4;
switch(Version)
{
case 8:
@@ -79,18 +58,36 @@ mtlpp::LanguageVersion ValidateVersion(uint32 Version)
case 7:
Result = mtlpp::LanguageVersion::Version2_4;
break;
case 6:
Result = mtlpp::LanguageVersion::Version2_3;
break;
case 0:
Version = 6;
Result = mtlpp::LanguageVersion::Version2_3; // minimum version as of UE5.0
Version = 7;
Result = mtlpp::LanguageVersion::Version2_4; // minimum version as of UE5.1
break;
default:
//EMacMetalShaderStandard::MacMetalSLStandard_Minimum and EIOSMetalShaderStandard::IOSMetalSLStandard_Minimum is currently 2.3
//EMacMetalShaderStandard::MacMetalSLStandard_Minimum is currently 2.4
UE_LOG(LogTemp, Warning, TEXT("The Metal version currently set is not supported anymore. Set it in the Project Settings. Defaulting to the minimum version."));
Version = 6;
Result = mtlpp::LanguageVersion::Version2_3;
Version = 7;
Result = mtlpp::LanguageVersion::Version2_4;
break;
}
#else
Result = mtlpp::LanguageVersion::Version2_4;
switch(Version)
{
case 8:
Result = mtlpp::LanguageVersion::Version3_0;
break;
case 7:
Result = mtlpp::LanguageVersion::Version2_4;
break;
case 0:
Version = 7;
Result = mtlpp::LanguageVersion::Version2_4; // minimum version as of UE5.1
break;
default:
//EMacMetalShaderStandard::MacMetalSLStandard_Minimum and EIOSMetalShaderStandard::IOSMetalSLStandard_Minimum is currently 2.4
UE_LOG(LogTemp, Warning, TEXT("The Metal version currently set is not supported anymore. Set it in the Project Settings. Defaulting to the minimum version."));
Version = 7;
Result = mtlpp::LanguageVersion::Version2_4;
break;
}
#endif

View File

@@ -303,18 +303,15 @@ void TMetalBaseShader<BaseResourceType, ShaderType>::Init(TArrayView<const uint8
mtlpp::LanguageVersion MetalVersion;
switch (Header.Version)
{
case 8:
MetalVersion = mtlpp::LanguageVersion::Version3_0;
break;
case 7:
MetalVersion = mtlpp::LanguageVersion::Version2_4;
break;
case 6:
MetalVersion = mtlpp::LanguageVersion::Version2_3;
break;
case 5:
MetalVersion = mtlpp::LanguageVersion::Version2_2;
break;
default:
UE_LOG(LogRHI, Fatal, TEXT("Failed to create shader with unknown version %d: %s"), Header.Version, *FString(NewShaderString));
MetalVersion = mtlpp::LanguageVersion::Version2_2;
MetalVersion = mtlpp::LanguageVersion::Version2_4;
break;
}
CompileOptions.SetLanguageVersion(MetalVersion);

View File

@@ -176,7 +176,7 @@ void FAppleControllerInterface::HandleConnection(GCController* Controller)
Controllers[ControllerIndex].Controller = [Controller retain];
SetControllerType(ControllerIndex);
// Deprecated but buttonMenu behavior is unreliable in iOS/tvOS 14
// Deprecated but buttonMenu behavior is unreliable since iOS/tvOS 14
Controllers[ControllerIndex].bPauseWasPressed = false;
PRAGMA_DISABLE_DEPRECATION_WARNINGS
Controller.controllerPausedHandler = ^(GCController* Cont)
@@ -245,11 +245,10 @@ void FAppleControllerInterface::SendControllerEvents()
FInputDeviceId DeviceId = INPUTDEVICEID_NONE;
DeviceMapper.RemapControllerIdToPlatformUserAndDevice(Controller.PlayerIndex, OUT UserId, OUT DeviceId);
// Assumes iOS13, tvOS 13 & macOS 10.15
GCExtendedGamepad* ExtendedGamepad = [ControllerImpl capture].extendedGamepad;
GCMotion* Motion = ControllerImpl.motion;
// Workaround for unreliable buttonMenu behavior in iOS/tvOS 14
// Workaround for unreliable buttonMenu behavior since iOS/tvOS 14
if (Controller.bPauseWasPressed)
{
MessageHandler->OnControllerButtonPressed(FGamepadKeyNames::SpecialRight, UserId, DeviceId, false);

View File

@@ -138,7 +138,7 @@ protected:
bool bHasReferenceAttitude;
#endif
// Workaround for unreliable buttonMenu behavior in iOS/tvOS 14
// Workaround for unreliable buttonMenu behavior since iOS/tvOS 14
bool bPauseWasPressed;
};

View File

@@ -527,10 +527,7 @@ FProcHandle FMacPlatformProcess::CreateProcInternal(const TCHAR* URL, const TCHA
if (OptionalWorkingDirectory)
{
if (@available(macOS 10.15, *))
{
posix_spawn_file_actions_addchdir_np(&FileActions, TCHAR_TO_UTF8(OptionalWorkingDirectory));
}
posix_spawn_file_actions_addchdir_np(&FileActions, TCHAR_TO_UTF8(OptionalWorkingDirectory));
}
posix_spawnattr_setflags(&SpawnAttr, SpawnFlags);

View File

@@ -30,9 +30,6 @@ enum class EPowerUsageFrameRateLock : uint8
UENUM()
enum class EIOSVersion : uint8
{
/** iOS 14 */
IOS_14 = 14 UMETA(DisplayName = "14.0"),
/** iOS 15 */
IOS_15 = 15 UMETA(DisplayName = "15.0"),
@@ -44,9 +41,7 @@ UENUM()
enum class EIOSMetalShaderStandard : uint8
{
/** Metal Shader 2.3 is the minimum as of UE5.0*/
IOSMetalSLStandard_Minimum = 0 UMETA(DisplayName="Minimum, Currently v2.3 (iOS 14.0/tvOS 14.0)"),
/** Metal Shaders Compatible With iOS 14.0/tvOS 14.0 or later (std=ios-metal2.3) */
IOSMetalSLStandard_2_3 = 6 UMETA(DisplayName="Metal v2.3 (iOS 14.0/tvOS 14.0)"),
IOSMetalSLStandard_Minimum = 0 UMETA(DisplayName="Minimum, Currently v2.4 (iOS 15.0/tvOS 15.0)"),
/** Metal Shaders Compatible With iOS 15.0/tvOS 15.0 or later (std=ios-metal2.4) */
IOSMetalSLStandard_2_4 = 7 UMETA(DisplayName="Metal v2.4 (iOS 15.0/tvOS 15.0)"),
/** Metal Shaders Compatible With iOS 16.0/tvOS 16.0 or later (std=metal3.0) */

View File

@@ -31,7 +31,7 @@ UIOSRuntimeSettings::UIOSRuntimeSettings(const FObjectInitializer& ObjectInitial
bEnableDynamicMaxFPS = false;
bSupportsIPad = true;
bSupportsIPhone = true;
MinimumiOSVersion = EIOSVersion::IOS_14;
MinimumiOSVersion = EIOSVersion::IOS_15;
bBuildAsFramework = true;
bGeneratedSYMFile = false;
bGeneratedSYMBundle = false;
@@ -126,9 +126,9 @@ void UIOSRuntimeSettings::PostInitProperties()
}
}
if (MinimumiOSVersion < EIOSVersion::IOS_14)
if (MinimumiOSVersion < EIOSVersion::IOS_15)
{
MinimumiOSVersion = EIOSVersion::IOS_14;
MinimumiOSVersion = EIOSVersion::IOS_15;
UpdateSinglePropertyInConfigFile(GetClass()->FindPropertyByName(GET_MEMBER_NAME_CHECKED(UIOSRuntimeSettings, MinimumiOSVersion)), GetDefaultConfigFilename());
}
if (!bSupportsMetal && !bSupportsMetalMRT)

View File

@@ -266,8 +266,8 @@ static int32 MacOSVersionCompare(const NSOperatingSystemVersion& VersionA, const
NSString* MinimumSystemVersionString = (NSString*)InfoDictionary[@"LSMinimumSystemVersion"];
NSOperatingSystemVersion MinimumSystemVersion = { 0 };
NSOperatingSystemVersion CurrentSystemVersion = [[NSProcessInfo processInfo] operatingSystemVersion];
NSOperatingSystemVersion MinSupportedMacOSVersion = { 11, 0, 0 };
NSString* MinSupportedMacOSVersionString = @"11.0.0";
NSOperatingSystemVersion MinSupportedMacOSVersion = { 12, 0, 0 };
NSString* MinSupportedMacOSVersionString = @"12.0.0";
NSArray<NSString*>* VersionComponents = [MinimumSystemVersionString componentsSeparatedByString:@"."];
MinimumSystemVersion.majorVersion = [[VersionComponents objectAtIndex:0] integerValue];

View File

@@ -713,19 +713,7 @@ static const unsigned char ecdsaSecp384r1Asn1Header[] =
SecTrustEvaluateWithError(CertTrust, nil);
TCFRef<SecKeyRef> CertPubKey;
if (@available(macOS 11, *))
{
CertPubKey = SecTrustCopyKey(CertTrust);
}
else
{
PRAGMA_DISABLE_DEPRECATION_WARNINGS
// warning: 'SecTrustCopyPublicKey' is deprecated: first deprecated in iOS 14.0 [-Wdeprecated-declarations]
CertPubKey = SecTrustCopyPublicKey(CertTrust);
PRAGMA_ENABLE_DEPRECATION_WARNINGS
}
CertPubKey = SecTrustCopyKey(CertTrust);
TCFRef<CFDataRef> CertPubKeyData = SecKeyCopyExternalRepresentation(CertPubKey, NULL);
if (!CertPubKeyData)

Some files were not shown because too many files have changed in this diff Show More