You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#rb andrew.grant #jira none #rnx #ROBOMERGE-SOURCE: CL 16706311 in //UE5/Main/... #ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529) [CL 16706320 by will damon in ue5-release-engine-test branch]
142 lines
6.8 KiB
C++
142 lines
6.8 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
/*=============================================================================
|
|
MacTargetSettings.h: Declares the UMacTargetSettings class.
|
|
=============================================================================*/
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "UObject/Object.h"
|
|
#include "MacTargetSettings.generated.h"
|
|
|
|
UENUM()
|
|
enum class EMacMetalShaderStandard : uint8
|
|
{
|
|
/** Metal Shaders Compatible With macOS 10.13 or later (std=osx-metal2.0) */
|
|
MacMetalSLStandard_2_0 = 3 UMETA(DisplayName="Metal v2.0 (10.13.0+)"),
|
|
|
|
/** Metal Shaders Compatible With macOS 10.14 or later (std=osx-metal2.1) */
|
|
MacMetalSLStandard_2_1 = 4 UMETA(DisplayName="Metal v2.1 (10.14.0+)"),
|
|
|
|
/** Metal Shaders Compatible With macOS 10.15 or later (std=osx-metal2.2) */
|
|
MacMetalSLStandard_2_2 = 5 UMETA(DisplayName="Metal v2.2 (10.15.0+)"),
|
|
|
|
/** Metal Shaders Compatible With macOS 11.0 or later (std=osx-metal2.3) */
|
|
MacMetalSLStandard_2_3 = 6 UMETA(DisplayName="Metal v2.3 (11.0+)"),
|
|
};
|
|
|
|
UENUM()
|
|
enum class EMacTargetArchitecture : uint8
|
|
{
|
|
/** Create packages that can run natively on Intel Macs and under translation on Apple Silicon Macs */
|
|
MacTargetArchitectureIntel = 0 UMETA(DisplayName="Intel x64"),
|
|
|
|
/** Create Universal packages that run natively on all Macs */
|
|
MacTargetArchitectureUniversal = 1 UMETA(DisplayName="Universal (Intel & Apple Silicon)"),
|
|
|
|
/** Create packages that can run natively on Apple Silicon Macs */
|
|
MacTargetArchitectureAppleSil = 2 UMETA(DisplayName="Apple Silicon"),
|
|
};
|
|
|
|
|
|
/**
|
|
* Implements the settings for the Mac target platform.
|
|
*/
|
|
UCLASS(config=Engine, defaultconfig)
|
|
class MACTARGETPLATFORM_API UMacTargetSettings
|
|
: public UObject
|
|
{
|
|
public:
|
|
|
|
GENERATED_UCLASS_BODY()
|
|
|
|
/**
|
|
* The collection of RHI's we want to support on this platform.
|
|
* This is not always the full list of RHI we can support.
|
|
*/
|
|
UPROPERTY(EditAnywhere, config, Category=Rendering)
|
|
TArray<FString> TargetedRHIs;
|
|
|
|
/**
|
|
* The target Mac platform CPU architecture.
|
|
* This defines which CPU architectures to target: x86_64 (Intel), arm64 (Apple Silicon) or Universal (Intel & Apple Silicon).
|
|
*/
|
|
UPROPERTY(EditAnywhere, config, Category=Packaging, meta = (DisplayName = "Architectures to Package For (Experimental)"))
|
|
EMacTargetArchitecture TargetArchitecture;
|
|
|
|
/**
|
|
* The maximum supported Metal shader langauge version.
|
|
* This defines what features may be used and OS versions supported.
|
|
*/
|
|
UPROPERTY(EditAnywhere, config, Category=Rendering, meta = (DisplayName = "Max. Metal Shader Standard To Target", ConfigRestartRequired = true))
|
|
uint8 MaxShaderLanguageVersion;
|
|
|
|
/**
|
|
* Whether to use the Metal shading language's "fast" intrinsics.
|
|
* Fast intrinsics assume that no NaN or INF value will be provided as input,
|
|
* so are more efficient. However, they will produce undefined results if NaN/INF
|
|
* is present in the argument/s. By default fast-instrinics are disabled so Metal correctly handles NaN/INF arguments.
|
|
*/
|
|
UPROPERTY(EditAnywhere, config, Category=Rendering, meta = (DisplayName = "Use Fast-Math intrinsics", ConfigRestartRequired = true))
|
|
bool UseFastIntrinsics;
|
|
|
|
/**
|
|
* Whether to force Metal shaders to use 32bit floating point precision even when the shader uses half floats.
|
|
* Half floats are much more efficient when they are availble but have less accuracy over large ranges,
|
|
* as such some projects may need to use 32bit floats to ensure correct rendering.
|
|
*/
|
|
UPROPERTY(EditAnywhere, config, Category=Rendering, meta = (DisplayName = "Force 32bit Floating Point Precision", ConfigRestartRequired = true))
|
|
bool ForceFloats;
|
|
|
|
/**
|
|
* Whether to use of Metal shader-compiler's -ffast-math optimisations.
|
|
* Fast-Math performs algebraic-equivalent & reassociative optimisations not permitted by the floating point arithmetic standard (IEEE-754).
|
|
* These can improve shader performance at some cost to precision and can lead to NaN/INF propagation as they rely on
|
|
* shader inputs or variables not containing NaN/INF values. By default fast-math is enabled for performance.
|
|
*/
|
|
UPROPERTY(EditAnywhere, config, Category=Rendering, meta = (DisplayName = "Enable Fast-Math optimisations", ConfigRestartRequired = true))
|
|
bool EnableMathOptimisations;
|
|
|
|
/** Whether to compile shaders using a tier Indirect Argument Buffers. */
|
|
UPROPERTY(config, EditAnywhere, Category = Rendering, Meta = (DisplayName = "Tier of Indirect Argument Buffers to use when compiling shaders", ConfigRestartRequired = true))
|
|
int32 IndirectArgumentTier;
|
|
|
|
/** Sample rate to run the audio mixer with. */
|
|
UPROPERTY(config, EditAnywhere, Category = "Audio", Meta = (DisplayName = "Audio Mixer Sample Rate"))
|
|
int32 AudioSampleRate;
|
|
|
|
/** The amount of audio to compute each callback block. Lower values decrease latency but may increase CPU cost. */
|
|
UPROPERTY(config, EditAnywhere, Category = "Audio", meta = (ClampMin = "512", ClampMax = "4096", DisplayName = "Callback Buffer Size"))
|
|
int32 AudioCallbackBufferFrameSize;
|
|
|
|
/** The number of buffers to keep enqueued. More buffers increases latency, but can compensate for variable compute availability in audio callbacks on some platforms. */
|
|
UPROPERTY(config, EditAnywhere, Category = "Audio", meta = (ClampMin = "1", UIMin = "1", DisplayName = "Number of Buffers To Enqueue"))
|
|
int32 AudioNumBuffersToEnqueue;
|
|
|
|
/** The max number of channels (voices) to limit for this platform. The max channels used will be the minimum of this value and the global audio quality settings. A value of 0 will not apply a platform channel count max. */
|
|
UPROPERTY(config, EditAnywhere, Category = "Audio", meta = (ClampMin = "0", UIMin = "0", DisplayName = "Max Channels"))
|
|
int32 AudioMaxChannels;
|
|
|
|
/** The number of workers to use to compute source audio. Will only use up to the max number of sources. Will evenly divide sources to each source worker. */
|
|
UPROPERTY(config, EditAnywhere, Category = "Audio", meta = (ClampMin = "0", UIMin = "0", DisplayName = "Number of Source Workers"))
|
|
int32 AudioNumSourceWorkers;
|
|
|
|
/** Which of the currently enabled spatialization plugins to use on Windows. */
|
|
UPROPERTY(config, EditAnywhere, Category = "Audio")
|
|
FString SpatializationPlugin;
|
|
|
|
/** Which of the currently enabled reverb plugins to use on Windows. */
|
|
UPROPERTY(config, EditAnywhere, Category = "Audio")
|
|
FString ReverbPlugin;
|
|
|
|
/** Which of the currently enabled occlusion plugins to use on Windows. */
|
|
UPROPERTY(config, EditAnywhere, Category = "Audio")
|
|
FString OcclusionPlugin;
|
|
|
|
/** Quality Level to COOK SoundCues at (if set, all other levels will be stripped by the cooker). */
|
|
UPROPERTY(GlobalConfig, EditAnywhere, Category = "Audio|CookOverrides", meta = (DisplayName = "Sound Cue Cook Quality"))
|
|
int32 SoundCueCookQualityIndex = INDEX_NONE;
|
|
|
|
};
|