snc
Veteran
@I'mDudditz! thx for finding these reddit posts, it must be one of most deep and open dev inside about consoles diff. (tough not sure he is verified so have to keep some caution here ;d)
You didn’t teach anyone anything new and just parroted the same thing over and over again.The extra headroom was for visual fidelity and they are not all related to gpu compute. For example the texture streaming pool is going to be vram dependent and the developer says PS5 has advantage here so asset quality can be pushed higher. And of course async compute is another PS5 advantage he mentions. Also, as I explained in my first reply, developers will have their own specific tolerance levels for fidelity vs performance trade-off. Remember far more often than not PS5 and Series X are running at 60fps, while PS5 higher settings are always in effect. In the most heavy situations where PS5 reveals the framerate discrepancy vs Series X, it may be the developer's willingness to accept the lower framerate for the sake of keeping the increased visual bells and whistles of PS5 activated.
I hope this explanation is clear. Not sure why this has to be contentious it's great that the developer is sharing how the sauce was made in great detail. We're learning much more than we bargained for and with all due respect to DF (it was still great coverage), it goes much further than their reporting in some significant ways.
It would explain some things about the state the game shipped in.I'm confused. Is this "Leather-tomorrow" person verified to be a dev working on Immortals? His statements are a bit strange.
Skimming (and, no ue experience): looks like they cranked virtual texture pool way up on Xbox and render target pool up(?) a little on PlayStation. The stuff the poster claimed isn’t jumping out to me here? Also, this kind of thing is so weird to share publicly.For the PS5 here are some of the changes we have in the device profile.
Only in the Xbox config (apparently).+CVars=r.FidelityFX.FSR2.Sharpness=0 ;
For the PS5 here are some of the changes we have in the device profile.
; Baseline
+CVars=r.SecondaryScreenPercentage.GameViewport=50 +CVars=r.PostProcessing.QuarterResolutionDownsample=1 +CVars=r.RenderTargetPoolMin=600 +CVars=r.LumenScene.SurfaceCache.CardMaxResolution=256 +CVars=r.Bloom.ScreenPercentage=25 +CVars=r.Lumen.Reflections.DownsampleFactor=3 +CVars=r.FreeSkeletalMeshBuffers=1 +CVars=r.SupportReversedIndexBuffers=0 +CVars=r.SupportDepthOnlyIndexBuffers=0
; Scalability Groups +CVars=sg.GlobalIlluminationQuality=2 +CVars=sg.AtmosphereQuality=2 ; CVars here used to be part of GI quality
+CVars=r.Lumen.Reflections.TraceMeshSDFs=0 ; Trace the global SDF instead +CVars=r.LumenScene.FastCameraMode=1 ; use less texel density, but update more frequently +CVars=r.Bloom.AsyncCompute=1
+CVars=r.LocalExposure=1 +CVars=r.LightShaftQuality=1
; Newly added skylight resolution CVar +CVars=ASC.SkylightMaxCubemapResolution=512
For the X we have
; Baseline
+CVars=r.SecondaryScreenPercentage.GameViewport=50 +CVars=r.PostProcessing.QuarterResolutionDownsample=1 +CVars=r.LumenScene.SurfaceCache.CardMaxResolution=256 +CVars=r.Bloom.ScreenPercentage=25 +CVars=r.Lumen.Reflections.DownsampleFactor=3 +CVars=r.FreeSkeletalMeshBuffers=1 +CVars=r.SupportReversedIndexBuffers=0 +CVars=r.SupportDepthOnlyIndexBuffers=0 +CVars=r.SSR.HalfResSceneColor=0 ; This can cause a crash if set to 1 +CVars=r.Lumen.Reflections.TraceMeshSDFs=0 ; Trace the global SDF instead +CVars=r.LumenScene.FastCameraMode=1 ; use less texel density, but update more frequently +CVars=r.Bloom.AsyncCompute=1 +CVars=r.FidelityFX.FSR2.Sharpness=0 ; To avoid artifacts
; Newly added skylight resolution CVars +CVars=ASC.SkylightMaxCubemapResolution=512
as well as the X specific overrides
[XSX_Anaconda DeviceProfile]
DeviceType=XSX BaseProfileName=XSX +CVars=r.SecondaryScreenPercentage.GameViewport=50 ; We want a 1080p secondary screen viewport +CVars=sg.ViewDistanceQuality=3 +CVars=sg.AntiAliasingQuality=3 +CVars=sg.PostProcessQuality=3 +CVars=sg.TextureQuality=3 +CVars=sg.EffectsQuality=3 +CVars=sg.FoliageQuality=3 +CVars=sg.ShadowQuality=2 +CVars=sg.ShadowResolutionQuality=2 +CVars=sg.ShadowMeshQuality=2 +CVars=sg.ShadingQuality=3 +CVars=sg.GlobalIlluminationQuality=2 +CVars=sg.AtmosphereQuality=2 +CVars=r.Streaming.MaxEffectiveScreenSize=1080 +CVars=r.Streaming.PoolSize=4096 ; Overkill but necessary to avoid pool overflow (perf hit) and has not been known to cause emergency memory pressure ; Virtual texture pools in XSXEngine.ini are scaled to XSS ; Here we make sure to configure the pool scalability to better fit the XSX +CVars=r.VT.PoolSizeScale.Group0=4 ; x4 because she's worth it +CVars=r.VT.PoolSizeScale.Group1=4 +CVars=r.VT.PoolSizeScale.Group2=4 ; There are only 3 groups that we can scale
+CVars=r.LocalExposure=1 +CVars=r.LightShaftQuality=1
; Baseline
r.SecondaryScreenPercentage.GameViewport=50
r.PostProcessing.QuarterResolutionDownsample=1
r.RenderTargetPoolMin=600
r.LumenScene.SurfaceCache.CardMaxResolution=256
r.Bloom.ScreenPercentage=25
r.Lumen.Reflections.DownsampleFactor=3
r.FreeSkeletalMeshBuffers=1
r.SupportReversedIndexBuffers=0
r.SupportDepthOnlyIndexBuffers=0
; Scalability Groups
sg.GlobalIlluminationQuality=2
sg.AtmosphereQuality=2
; CVars here used to be part of GI quality
r.Lumen.Reflections.TraceMeshSDFs=0 ; Trace the global SDF instead r.LumenScene.FastCameraMode=1 ; use less texel density, but update more frequently
r.Bloom.AsyncCompute=1
r.LocalExposure=1
r.LightShaftQuality=1
; Newly added skylight resolution CVar ASC.SkylightMaxCubemapResolution=512
For the X we have
; Baseline
r.SecondaryScreenPercentage.GameViewport=50
r.PostProcessing.QuarterResolutionDownsample=1
r.LumenScene.SurfaceCache.CardMaxResolution=256
r.Bloom.ScreenPercentage=25
r.Lumen.Reflections.DownsampleFactor=3
r.FreeSkeletalMeshBuffers=1
r.SupportReversedIndexBuffers=0
r.SupportDepthOnlyIndexBuffers=0
r.SSR.HalfResSceneColor=0 ; This can cause a crash if set to 1
r.Lumen.Reflections.TraceMeshSDFs=0 ; Trace the global SDF instead
r.LumenScene.FastCameraMode=1 ; use less texel density, but update more frequently
r.Bloom.AsyncCompute=1
r.FidelityFX.FSR2.Sharpness=0 ; To avoid artifacts
; Newly added skylight resolution CVars ASC.SkylightMaxCubemapResolution=512
as well as the X specific overrides
[XSX_Anaconda DeviceProfile]
DeviceType=XSX BaseProfileName=XSX
r.SecondaryScreenPercentage.GameViewport=50 ; We want a 1080p secondary screen viewport
sg.ViewDistanceQuality=3
sg.AntiAliasingQuality=3
sg.PostProcessQuality=3
sg.TextureQuality=3
sg.EffectsQuality=3
sg.FoliageQuality=3
sg.ShadowQuality=2
sg.ShadowResolutionQuality=2
sg.ShadowMeshQuality=2
sg.ShadingQuality=3
sg.GlobalIlluminationQuality=2
sg.AtmosphereQuality=2
r.Streaming.MaxEffectiveScreenSize=1080
r.Streaming.PoolSize=4096 ; Overkill but necessary to avoid pool overflow (perf hit) and has not been known to cause emergency memory pressure ; Virtual texture pools in XSXEngine.ini are scaled to XSS ; Here we make sure to configure the pool scalability to better fit the XSX
r.VT.PoolSizeScale.Group0=4 ; x4 because she's worth it
r.VT.PoolSizeScale.Group1=4
r.VT.PoolSizeScale.Group2=4 ; There are only 3 groups that we can scale
r.LocalExposure=1
r.LightShaftQuality=1
It’s a smaller independent developer despite the claims of them being AAA.Seems odd that a developer would actually post that. I don't recall this ever happening before. Smells fake now.
It’s a smaller independent developer despite the claims of them being AAA.
Sorry I'm not really following. Doesn't XSX have better throughput in terms of the specs he posted? I remember XSX has 10GBs of fast GDDR6 memories (320bit bus, 560GB/s). Obviously you not gonna use that 6GBs of slow rams for graphics, so how is it "higher bandwidth GDDR6"?
I'm just kinda confused here.
This is not what I'd call an indy developer. They spent 5 years on this with over 100 people.It’s a smaller independent developer despite the claims of them being AAA.
Well, they are an independent developer and required funding from EA to publish their game. I guess I should have said "larger" independent developer.This is not what I'd call an indy developer. They spent 5 years on this with over 100 people.