; ------------------------------------------------------------------------------ ; READ THIS before editing! ; These device profiles are hierarchical! Changes to the base PS5 device ; profile will also affect derived device profiles (unless those values are ; overridden) ; ; Please don't duplicate values across multiple device profiles unnecessarily ; ; Hierarchy: ; ; PS5_120 ; | ; PS5_60 ; | ; PS5_30 ; | ; PS5 ; ; Notes: ; - PS5 is the device profile for the base game, with all shared settings ; - PS5_30 is the 30 Hz 'pretty' preset device profile ; - PS5_60 is the 60 Hz 'balanced' preset device profile ; - PS5_120 is the 120 Hz 'fast' preset device profile ; ------------------------------------------------------------------------------ [DeviceProfiles] +DeviceProfileNameAndTypes=PS5_30,PS5 +DeviceProfileNameAndTypes=PS5_60,PS5 +DeviceProfileNameAndTypes=PS5_120,PS5 ; ------------------------------------------------------------------------------ ; Base PS5 device profile ; ------------------------------------------------------------------------------ [PS5 DeviceProfile] TextureLODGroups=(Group=TEXTUREGROUP_World,MinLODSize=1,MaxLODSize=2048,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_WorldNormalMap,MinLODSize=1,MaxLODSize=1024,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_WorldSpecular,MinLODSize=1,MaxLODSize=1024,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_Character,MinLODSize=1,MaxLODSize=2048,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_CharacterNormalMap,MinLODSize=1,MaxLODSize=1024,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_CharacterSpecular,MinLODSize=1,MaxLODSize=1024,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_Weapon,MinLODSize=1,MaxLODSize=2048,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_WeaponNormalMap,MinLODSize=1,MaxLODSize=1024,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_WeaponSpecular,MinLODSize=1,MaxLODSize=1024,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_Vehicle,MinLODSize=1,MaxLODSize=2048,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_VehicleNormalMap,MinLODSize=1,MaxLODSize=1024,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_VehicleSpecular,MinLODSize=1,MaxLODSize=1024,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_Cinematic,MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_Effects,MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=linear,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_EffectsNotFiltered,MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_Skybox,MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_UI,MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_NoMipmaps) +TextureLODGroups=(Group=TEXTUREGROUP_Lightmap,MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_Shadowmap,MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=aniso,MipFilter=point,NumStreamedMips=3,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_RenderTarget,MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_MobileFlattened,MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_Terrain_Heightmap,MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_Terrain_Weightmap,MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_Bokeh,MinLODSize=1,MaxLODSize=256,LODBias=0,MinMagFilter=linear,MipFilter=linear,MipGenSettings=TMGS_SimpleAverage) +TextureLODGroups=(Group=TEXTUREGROUP_Pixels2D,MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=point,MipFilter=point,MipGenSettings=TMGS_SimpleAverage) ; Scalability Groups +CVars=sg.ViewDistanceQuality=3 +CVars=sg.AntiAliasingQuality=3 +CVars=sg.ShadowQuality=3 +CVars=sg.PostProcessQuality=3 +CVars=sg.TextureQuality=3 +CVars=sg.EffectsQuality=3 ; Don't need to wait very long for texture streaming to catch up CommonLoadingScreen.HoldLoadingScreenAdditionalSecs=0.5 ; Gen5 TAAU +CVars=r.SSS.Quality=1 ; Quality=0 relies on Gen4 TAA's clamping box +CVars=r.AntiAliasingMethod=4 ; Use TSR +CVars=r.TemporalAA.R11G11B10History=1 ; Needs r.UsePreExposure enabled ; Epic quality materials - Others discarded at cook +CVars=r.MaterialQualityLevel=3 +CVars=r.StaticMesh.MinLodQualityLevel=3 +CVars=r.Streaming.PoolSize=2048 ; Dynamic res/temporal upsampling +CVars=r.DynamicRes.OperationMode=2 +CVars=r.TemporalAA.Upsampling=1 +CVars=r.DynamicRes.FrameTimeBudget=16.66 +CVars=r.DynamicRes.TargetedGPUHeadRoomPercentage=3.5 +CVars=r.DynamicRes.MaxScreenPercentage=85 +CVars=r.DynamicRes.MinScreenPercentage=40 +CVars=r.SecondaryScreenPercentage.GameViewport=100 ; Postprocess overrides +CVars=r.PostProcessing.PreferCompute=1 +CVars=r.HZBOcclusion=0 ;+CVars=r.AmbientOcclusion.Compute=2 +CVars=r.AmbientOcclusionLevels=1 +CVars=r.AmbientOcclusionMipLevelFactor=10 +CVars=r.BloomQuality=4 +CVars=r.SceneColorFormat=3 ; Effects quality overrides (from sg.EffectsQuality=2) +CVars=r.SSS.Scale=1 +CVars=r.SSS.SampleSet=1 +CVars=r.SSS.Quality=-1 +CVars=r.SSS.HalfRes=1 ; Shadow quality overrides (from sg.ShadowQuality=2) +CVars=r.AOQuality=1 +CVars=r.VolumetricFog.GridPixelSize=16 +CVars=r.VolumetricFog.GridSizeZ=64 +CVars=r.ContactShadows=1 +CVars=r.VolumetricFog=1 +CVars=r.Shadow.MaxNumFarShadowCascades=1 +CVars=r.Shadow.FarShadowStaticMeshLODBias=1 +CVars=r.Shadow.MaxCSMResolution=2048 +CVars=r.Shadow.MaxResolution=2048 ; Virtual heightfield mesh settings ;+CVars=r.VT.RVT.TileCountBias.Group1=5 +CVars=r.VHM.Enable=0 +CVars=grass.densityScale=1.5 ;Physics +CVars=r.PhysicsField.EnableField=true ; Rendertargets +CVars=r.RenderTargetPoolMin=550 +CVars=r.Shadow.WholeSceneShadowCacheMb=300 ; Set virtual texture update rate +CVars=r.VT.MaxUploadsPerFrame=2 ; ------------------------------------------------------------------------------ [PS5_30 DeviceProfile] DeviceType=PS5 BaseProfileName=PS5 ; 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 +CVars=r.DynamicRes.FrameTimeBudget = 33.9 ; FPS/input latency config +CVars=Lyra.DeviceProfile.Console.TargetFPS=30 +CVars=Lyra.DeviceProfile.Console.FrameSyncType=2 ; Lumen +CVars=r.Lumen.HardwareRayTracing=1 ; ------------------------------------------------------------------------------ [PS5_60 DeviceProfile] DeviceType=PS5 BaseProfileName=PS5_30 ; Disable Lumen at 60 and above +CVars=sg.GlobalIlluminationQuality=1 ; Color-coding thresholds / hitch thresholds for 60 Hz +CVars=t.TargetFrameTimeThreshold=16.7 +CVars=t.UnacceptableFrameTimeThreshold=25.0 +CVars=t.HitchFrameTimeThreshold=30.0 +CVars=t.HitchDeadTimeWindow=100.0 +CVars=r.DynamicRes.FrameTimeBudget = 16.7 ; FPS/input latency config +CVars=Lyra.DeviceProfile.Console.TargetFPS=60 +CVars=Lyra.DeviceProfile.Console.FrameSyncType=0 ; Lumen +CVars=r.Lumen.HardwareRayTracing=0 ; ------------------------------------------------------------------------------ [PS5_120 DeviceProfile] DeviceType=PS5 BaseProfileName=PS5_60 ; Scalability groups +CVars=sg.ShadowQuality=2 +CVars=sg.GlobalIlluminationQuality=0 +CVars=sg.EffectsQuality=0 ; Color-coding thresholds / hitch thresholds for 120 Hz +CVars=t.TargetFrameTimeThreshold=8.4 +CVars=t.UnacceptableFrameTimeThreshold=12.5 +CVars=t.HitchFrameTimeThreshold=30.0 +CVars=t.HitchDeadTimeWindow=100.0 +CVars=r.DynamicRes.FrameTimeBudget = 8.4 ; FPS/input latency config +CVars=Lyra.DeviceProfile.Console.TargetFPS=120 +CVars=Lyra.DeviceProfile.Console.FrameSyncType=0 ; 120FPS +CVars=r.DynamicRes.FrameTimeBudget=8.33 +CVars=r.VT.MaxUploadsPerFrame=1 ; 1440p +CVars=r.SecondaryScreenPercentage.GameViewport=66.6 +CVars=r.DynamicRes.MaxScreenPercentage=100 ; TAAU1 +CVars=r.AntiAliasingMethod=2 +CVars=r.TemporalAA.Quality=1 ; Lumen +CVars=r.Lumen.HardwareRayTracing=0 ; Disable some next-gen features +CVars=r.ContactShadows=0 ; Shadows +CVars=r.Shadow.MaxNumFarShadowCascades=0 +CVars=r.Shadow.MaxCSMResolution=1800 +CVars=r.Shadow.MaxResolution=1800 +CVars=r.DFShadowQuality=2 ; View distance/density +CVars=r.ViewDistanceScale=2.0 +CVars=r.EmitterSpawnRateScale=0.5 +CVars=grass.densityScale=1 ; Postprocessing +CVars=r.Filter.SizeScale=0.8 +CVars=r.FastBlurThreshold=3 +CVars=r.MotionBlurQuality=3 +CVars=r.SceneColorFringeQuality=0 ; Other settings +CVars=r.TranslucencyLightingVolumeDim=48 +CVars=r.TranslucencyVolumeBlur=0 +CVars=r.VolumetricCloud.StepSizeOnZeroConservativeDensity=4