[Switch DeviceProfile]
!TextureLODGroups=ClearArray
+TextureLODGroups=(Group=TEXTUREGROUP_World,				MaxLODSize=1024,	OptionalMaxLODSize=512,		OptionalLODBias=1,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_WorldNormalMap,		MaxLODSize=512,		OptionalMaxLODSize=256,		OptionalLODBias=0,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_WorldSpecular,		MaxLODSize=512,		OptionalMaxLODSize=64,		OptionalLODBias=1,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_Character,			MaxLODSize=1024,	OptionalMaxLODSize=1024,	OptionalLODBias=1,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_CharacterNormalMap,	MaxLODSize=512,		OptionalMaxLODSize=512,		OptionalLODBias=1,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_CharacterSpecular,	MaxLODSize=512,		OptionalMaxLODSize=256,		OptionalLODBias=1,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_Weapon,				MaxLODSize=1024,	OptionalMaxLODSize=256,		OptionalLODBias=1,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_WeaponNormalMap,		MaxLODSize=512,		OptionalMaxLODSize=128,		OptionalLODBias=1,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_WeaponSpecular,		MaxLODSize=512,		OptionalMaxLODSize=64,		OptionalLODBias=1,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_Vehicle,				MaxLODSize=1024,	OptionalMaxLODSize=256,		OptionalLODBias=1,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_VehicleNormalMap,		MaxLODSize=512,		OptionalMaxLODSize=64,		OptionalLODBias=1,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_VehicleSpecular,		MaxLODSize=512,		OptionalMaxLODSize=64,		OptionalLODBias=1,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_Cinematic,			MaxLODSize=1024,	OptionalMaxLODSize=1024,	OptionalLODBias=1,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_Effects,				MaxLODSize=1024,	OptionalMaxLODSize=256,		OptionalLODBias=1,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_EffectsNotFiltered,	MaxLODSize=1024,	OptionalMaxLODSize=128,		OptionalLODBias=1,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_Skybox,				MaxLODSize=1024,	OptionalMaxLODSize=128,		OptionalLODBias=1,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_UI,					MaxLODSize=4096,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_NoMipmaps)
+TextureLODGroups=(Group=TEXTUREGROUP_Lightmap,				MaxLODSize=1024,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_Shadowmap,			MaxLODSize=1024,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		NumStreamedMips=3,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_RenderTarget,			MaxLODSize=1024,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_MobileFlattened,		MaxLODSize=1024,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_Terrain_Heightmap,	MaxLODSize=1024,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_Terrain_Weightmap,	MaxLODSize=1024,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_Bokeh,				MaxLODSize=256,		LODBias=0,	MinMagFilter=linear,		MipFilter=linear,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_Pixels2D,				MaxLODSize=1024,	LODBias=0,	MinMagFilter=point,			MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_Impostor,				MaxLODSize=1024,	OptionalMaxLODSize=512,		OptionalLODBias=0,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_ImpostorNormalDepth,	MaxLODSize=1024,	OptionalMaxLODSize=512,		OptionalLODBias=0,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)
+TextureLODGroups=(Group=TEXTUREGROUP_HierarchicalLOD,		MaxLODSize=512,		OptionalMaxLODSize=128,		OptionalLODBias=0,	LODBias=0,	MinMagFilter=linear,		MipFilter=point,		MipGenSettings=TMGS_SimpleAverage)

; Scalability Groups
+CVars=sg.ViewDistanceQuality=1

; Shadows
+CVars=r.Shadow.CSM.MaxCascades=1
+CVars=r.Shadow.DistanceScale=0.4
+CVars=r.Shadow.CSM.TransitionScale=0.8
+CVars=r.DistanceFieldShadowing=1 
+CVars=r.DFShadowCompactCulledObjects=0
+CVars=r.DistanceFields.BlockAllocatorSizeInBricks=8
+CVars=r.DistanceFields.OffsetDataStructure=2
+CVars=r.Mobile.Shadow.CSMShaderCullingMethod=5

; memory related
+CVars=r.Streaming.PoolSize=430
+CVars=r.Streaming.UseFixedPoolSize=0
+CVars=fx.GPUSimulationTextureSizeX=512
+CVars=fx.GPUSimulationTextureSizeY=256
+CVars=r.FreeSkeletalMeshBuffers=1
+CVars=r.RenderTargetPoolMin=0
+CVars=r.Streaming.MaxTempMemoryAllowed=35
; Force detail mode
+CVars=r.DetailMode=1
; Cook out data that does not match the detail mode
+CVars=fx.PruneEmittersOnCookByDetailMode=1
+CVars=r.CookOutUnusedDetailModeComponents=1
+CVars=a.StripFramesOnCompression=1
+CVars=a.StripOddFramesWhenFrameStripping=1
+CVars=r.StaticMesh.StripDistanceFieldDataDuringLoad=0
; Medium quality materials - Others discarded at cook
+CVars=r.MaterialQualityLevel=2
+CVars=r.DiscardUnusedQuality=1

; Virtual texture settings
+CVars=r.VT.MaxUploadsPerFrame=1
+CVars=r.VT.NumFeedbackTasks=1
+CVars=r.VT.NumGatherTasks=1
+CVars=r.VT.PoolSizeScale=0.5
; Disable VirtualHeightfieldMesh
+CVars=r.VHM.Enable=0

+CVars=r.PhysicsField.EnableField=0

; LODS
+CVars=r.ViewDistanceScale.FieldOfViewAffectsHLOD=1

; Enable dynamic resolution
+CVars=r.DynamicRes.OperationMode=2
+CVars=r.TemporalAA.Upsampling=1
+CVars=r.SecondaryScreenPercentage.GameViewport=83.33
+CVars=r.ViewTextureMipBias.Min=-1.0

; Color-coding thresholds / hitch thresholds for 30 Hz
+CVars=t.TargetFrameTimeThreshold=33.9
+CVars=t.UnacceptableFrameTimeThreshold=50
+CVars=t.HitchFrameTimeThreshold=60
+CVars=t.HitchDeadTimeWindow=200.0

; FPS/input latency config
+CVars=Lyra.DeviceProfile.Console.TargetFPS=30
+CVars=Lyra.DeviceProfile.Console.FrameSyncType=2

; Physics
+CVars=p.RigidBodyNode=1
+CVars=p.ClothPhysics=0

+CVars=r.StaticMesh.MinLodQualityLevel=1

; SkyLUT
+CVars=r.SkyAtmosphere.AerialPerspectiveLUT.FastApplyOnOpaque=1
+CVars=r.SkyAtmosphere.AerialPerspectiveLUT.SampleCountPerSlice=1
+CVars=r.SkyAtmosphere.AerialPerspectiveLUT.DepthResolution=8
+CVars=r.SkyAtmosphere.FastSkyLUT=1
+CVars=r.SkyAtmosphere.FastSkyLUT.SampleCountMin=1.0
+CVars=r.SkyAtmosphere.FastSkyLUT.SampleCountMax=12.0
+CVars=r.SkyAtmosphere.FastSkyLUT.Width=96
+CVars=r.SkyAtmosphere.FastSkyLUT.Height=50
+CVars=r.SkyAtmosphere.TransmittanceLUT.UseSmallFormat=1

[SwitchConsole DeviceProfile]
+CVars=r.DFShadowQuality=2

[SwitchHandheld DeviceProfile]
+CVars=r.DFShadowQuality=1

[Switch_Console_Forward DeviceProfile]
+CVars=r.Mobile.AntiAliasing=1
+CVars=r.TemporalAA.Quality=0
+CVars=r.Mobile.TemporalAAMethod=1
+CVars=r.Mobile.EnableOcclusionExtraFrame=0
+CVars=r.AmbientOcclusionStaticFraction=1
+CVars=r.StaticMeshLODDistanceScale=1.5

[Switch_Handheld_Forward DeviceProfile]
+CVars=r.Mobile.AntiAliasing=1
+CVars=r.TemporalAA.Quality=0
+CVars=r.Mobile.TemporalAAMethod=1
+CVars=r.Mobile.EnableOcclusionExtraFrame=0
+CVars=r.AmbientOcclusionStaticFraction=1
+CVars=r.StaticMeshLODDistanceScale=1.5
