384 lines
15 KiB
INI
384 lines
15 KiB
INI
; ------------------------------------------------------------------------------
|
|
; READ THIS before editing!
|
|
;
|
|
; These device profiles are hierarchical! Changes to the base XSX device
|
|
; profile will also affect all derived device profiles (unless those values are
|
|
; overridden)
|
|
;
|
|
; Please don't duplicate values across multiple device profiles unnecessarily
|
|
;
|
|
; Hierarchy:
|
|
;
|
|
; XSX_Anaconda_120 XSX_Lockhart_120
|
|
; | |
|
|
; XSX_Anaconda_60 XSX_Lockhart_60
|
|
; | |
|
|
; XSX_Anaconda_30 XSX_Lockhart_30
|
|
; | |
|
|
; XSX_Anaconda XSX_Lockhart
|
|
; | |
|
|
; ----------------------------------------------------------
|
|
; |
|
|
; XSX
|
|
;
|
|
; Notes:
|
|
; - XSX is the device profile for the base game, with all shared settings
|
|
; - XSX_Anaconda and XSX_Lockhart device profiles are for the variants
|
|
; - *_30 device profiles are for the 30 Hz 'pretty' preset device profiles
|
|
; - *_60 device profiles are for the 60 Hz 'balanced' preset device profiles
|
|
; - *_120 device profiles are for the 120 Hz 'fast' preset device profiles
|
|
; ------------------------------------------------------------------------------
|
|
|
|
[DeviceProfiles]
|
|
+DeviceProfileNameAndTypes=XSX_Anaconda_30,XSX
|
|
+DeviceProfileNameAndTypes=XSX_Anaconda_60,XSX
|
|
+DeviceProfileNameAndTypes=XSX_Anaconda_120,XSX
|
|
+DeviceProfileNameAndTypes=XSX_Lockhart_30,XSX
|
|
+DeviceProfileNameAndTypes=XSX_Lockhart_60,XSX
|
|
+DeviceProfileNameAndTypes=XSX_Lockhart_120,XSX
|
|
|
|
; ------------------------------------------------------------------------------
|
|
; Base XSX device profile
|
|
; ------------------------------------------------------------------------------
|
|
[XSX DeviceProfile]
|
|
BaseProfileName=
|
|
TextureLODGroups=(Group=TEXTUREGROUP_World,OptionalMaxLODSize=1024,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,OptionalMaxLODSize=1024,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,OptionalMaxLODSize=1024,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,OptionalMaxLODSize=1024,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,OptionalMaxLODSize=2048,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
|
|
|
|
+CVars=r.TemporalAA.R11G11B10History=1
|
|
|
|
; 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=100
|
|
+CVars=r.DynamicRes.MinScreenPercentage=50
|
|
+CVars=r.SecondaryScreenPercentage.GameViewport=83.33
|
|
|
|
; Postprocess overrides
|
|
; FORT-349350 FORT-353656 disable compute postprocessing to workaround a flickering issue on series X
|
|
+CVars=r.PostProcessing.PreferCompute=0
|
|
+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
|
|
; Workaround for FORT-354096. Remove this after fixing barrier batching logic in the d3d12 RHI
|
|
+CVars=r.SSS.Burley.SubmitCommandsBeforeSetup=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
|
|
|
|
; 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
|
|
|
|
; Workaround for FORT-357614
|
|
+CVars=d3d12.SeparateRTV2SRVTranstions=1
|
|
|
|
; Workaround for depth bounds test always being disabled when PSOs are created using the new API
|
|
+CVars=d3d12.UseNewPSOCreationAPI=0
|
|
|
|
; ------------------------------------------------------------------------------
|
|
; Anaconda device profiles
|
|
; ------------------------------------------------------------------------------
|
|
[XSX_Anaconda DeviceProfile]
|
|
; Enable specific rendering features
|
|
; Gen5 TAAU. Anaconda only for now (res is more important on Lockhart)
|
|
+CVars=r.SSS.Quality=1 ; Quality=0 relies on Gen4 TAA's clamping box
|
|
+CVars=r.AntiAliasingMethod=4
|
|
+CVars=r.DynamicRes.MaxScreenPercentage=85
|
|
+CVars=r.DynamicRes.MinScreenPercentage=40
|
|
+CVars=r.SecondaryScreenPercentage.GameViewport=100
|
|
+CVars=r.Shadow.MaxCSMResolution=2048
|
|
+CVars=r.Shadow.MaxResolution=2048
|
|
|
|
; ------------------------------------------------------------------------------
|
|
|
|
[XSX_Anaconda_30 DeviceProfile]
|
|
DeviceType=XSX
|
|
BaseProfileName=XSX_Anaconda
|
|
|
|
; 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
|
|
|
|
; ------------------------------------------------------------------------------
|
|
|
|
[XSX_Anaconda_60 DeviceProfile]
|
|
DeviceType=XSX
|
|
BaseProfileName=XSX_Anaconda_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
|
|
|
|
; FPS/input latency config
|
|
+CVars=Lyra.DeviceProfile.Console.TargetFPS=60
|
|
+CVars=Lyra.DeviceProfile.Console.FrameSyncType=0
|
|
|
|
; ------------------------------------------------------------------------------
|
|
|
|
[XSX_Anaconda_120 DeviceProfile]
|
|
DeviceType=XSX
|
|
BaseProfileName=XSX_Anaconda_60
|
|
|
|
; Scalability groups
|
|
+CVars=sg.ShadowQuality=2
|
|
|
|
; 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
|
|
|
|
; 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.67
|
|
+CVars=r.DynamicRes.MaxScreenPercentage=100
|
|
|
|
; TAAU1
|
|
+CVars=r.AntiAliasingMethod=2
|
|
+CVars=r.TemporalAA.Quality=1
|
|
|
|
; 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
|
|
|
|
|
|
; ------------------------------------------------------------------------------
|
|
; Lockhart device profiles
|
|
; ------------------------------------------------------------------------------
|
|
[XSX_Lockhart DeviceProfile]
|
|
; Similar to XboxOne_Scorpio for now
|
|
+CVars=sg.ShadowQuality=2
|
|
|
|
; TAAU1
|
|
+CVars=r.AntiAliasingMethod=2
|
|
+CVars=r.TemporalAA.Quality=1
|
|
|
|
+CVars=r.SceneColorFringeQuality=0
|
|
+CVars=r.MotionBlurQuality=3
|
|
+CVars=r.TranslucencyVolumeBlur=0
|
|
+CVars=r.FastBlurThreshold=3
|
|
+CVars=r.Filter.SizeScale=0.8
|
|
+CVars=r.EmitterSpawnRateScale=0.5
|
|
+CVars=r.ParticleLightQuality=1
|
|
+CVars=r.SSS.Quality=-1
|
|
+CVars=r.SSS.SampleSet=1
|
|
+CVars=r.SSR.Quality=2
|
|
+CVars=r.TranslucencyLightingVolumeDim=48
|
|
+CVars=r.DFShadowQuality=2
|
|
+CVars=r.ViewDistanceScale=2.2
|
|
+CVars=r.Streaming.PoolSize=1800
|
|
|
|
; Output 1200p (percentage of 1440p)
|
|
+CVars=r.SecondaryScreenPercentage.GameViewport=83.33
|
|
|
|
; Shadow settings (overriding XB1 SG 2)
|
|
+CVars=r.Shadow.MaxCSMResolution=2048
|
|
+CVars=r.Shadow.MaxResolution=2048
|
|
+CVars=r.Shadow.CachedShadowsCastFromMovablePrimitives=1
|
|
+CVars=r.RenderTargetPoolMin=450
|
|
|
|
; Enable specific rendering features
|
|
+CVars=r.ContactShadows=0
|
|
|
|
; We need to override explicitly here (even though they're defined above) because they're set in the base engine version of the XSX_Lockhart deviceprofile assuming a 4K backbuffer
|
|
+CVars=r.DynamicRes.MaxScreenPercentage=100
|
|
+CVars=r.DynamicRes.MinScreenPercentage=50
|
|
|
|
; ------------------------------------------------------------------------------
|
|
|
|
[XSX_Lockhart_30 DeviceProfile]
|
|
DeviceType=XSX
|
|
BaseProfileName=XSX_Lockhart
|
|
|
|
; 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
|
|
|
|
; ------------------------------------------------------------------------------
|
|
|
|
[XSX_Lockhart_60 DeviceProfile]
|
|
DeviceType=XSX
|
|
BaseProfileName=XSX_Lockhart_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
|
|
|
|
; FPS/input latency config
|
|
+CVars=Lyra.DeviceProfile.Console.TargetFPS=60
|
|
+CVars=Lyra.DeviceProfile.Console.FrameSyncType=0
|
|
|
|
; ------------------------------------------------------------------------------
|
|
|
|
[XSX_Lockhart_120 DeviceProfile]
|
|
DeviceType=XSX
|
|
BaseProfileName=XSX_Lockhart_60
|
|
|
|
; Scalability groups
|
|
+CVars=sg.ViewDistanceQuality=2
|
|
+CVars=sg.PostProcessQuality=2
|
|
|
|
; 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
|
|
|
|
; FPS/input latency config
|
|
+CVars=Lyra.DeviceProfile.Console.TargetFPS=120
|
|
+CVars=Lyra.DeviceProfile.Console.FrameSyncType=0
|
|
|
|
; 120FPS
|
|
+CVars=xsx.MaxRefreshRate=120
|
|
+CVars=r.DynamicRes.FrameTimeBudget=8.33
|
|
+CVars=r.VT.MaxUploadsPerFrame=1
|
|
|
|
; 1080p (percentage of 1440p)
|
|
+CVars=r.SecondaryScreenPercentage.GameViewport=75
|
|
|
|
; Shadows
|
|
+CVars=r.Shadow.MaxNumFarShadowCascades=0
|
|
+CVars=r.Shadow.MaxResolution=1024
|
|
+CVars=r.Shadow.MaxCSMResolution=1024
|
|
+CVars=r.distancefieldao=0
|
|
; Reduce skylight intensity when disabling DFAO to maintain similar contrast
|
|
+CVars=r.SkylightIntensityMultiplier=0.7
|
|
+CVars=r.ShadowQuality=3
|
|
+CVars=r.Shadow.RadiusThreshold=0.04
|
|
+CVars=r.Shadow.MaxNumPointShadowCacheUpdatesPerFrame=1
|
|
+CVars=r.Shadow.MaxNumSpotShadowCacheUpdatesPerFrame=1
|
|
|
|
; Disable next-gen features
|
|
+CVars=r.VolumetricFog=0
|
|
+CVars=grass.densityScale=1
|
|
+CVars=r.ViewDistanceScale=1.5
|
|
+CVars=r.SkyLight.RealTimeReflectionCapture=0
|
|
|
|
; Postprocessing
|
|
+CVars=r.Filter.SizeScale=0.8
|
|
+CVars=r.FastBlurThreshold=3
|
|
+CVars=r.MotionBlurQuality=3
|
|
+CVars=r.SceneColorFringeQuality=0
|
|
+CVars=r.SSS.Quality=0
|