Ryzen 9 5950X with 3080TI, any other setting to try?

You want to force the game to one of the two CCXs not every other logical processor. So first half or last half. I think one of the performance issues is the workload gets spread across both CCXs but the workload is accessing the same memory so you get cache thrashing. The same memory is being updated by work done on both CCXs so it’s constantly invalidating the cache and has to hit main memory. This is much worse on the 30 series, but still present on the 50 and 70 series.

For a 3900X/5900X/7900X you want 0xFFF or 0xFFF000
3950X/5950X/7950X you want 0xFFFF or 0xFFFF0000

You don’t need to restrict it from the hyperthreading cores, you just need to keep in mind they are not full cores and cannot handle the full load. I go with real + 1 for the worker thread count. So 7 or 9.

If someone with a 3900X, 3950X, 5900X, 5950X, 7900X or 7950X could test this and report back that would be great. If you don’t want to run a power shell script, it’s pretty easy to do with task manager, but annoying to do every time you want to play.

Open the launcher, but not the game. Open task manager and go to the details tab. find the launcher process, right click and select Set Affinity. Then uncheck the first half of the processors. Then launch the game from the launcher and the game process will inherit the settings.

I don’t know for sure this is what is going on with DT, but I know for a fact this happens with other CPU intensive games like 7 days to die. I have a 5600X in my gaming computer so I can’t test, but the game does run great on it.

Afterburner benchmark, with framerate min, framerate avg, framerate max, framerate 1% low and framerate 0.1% low - setup hotkey for start stop, started once loaded into map and stopped just before extraction.

My 5990X is 16 core physical, so you think I should be using 17 then? That seems high - I’ve been mainly using 8, 10 or 12 in testing.

In the past I tried 8 = 0x5555 and 12 = 0x555555 using (once launcher is opened):
Get-Process "Launcher" | Where-Object {$_.Path -like "*\Steam\*"} | ForEach-Object {$_.ProcessorAffinity=0x5555 ; Write-Output $_.Path}

Without much notable impact, is this the sort of thing you mean?

Test setting
Rig: Ryzen 9 5950X 16 Core, 3080TI, 32GB RAM DDR4 3000, M.2 SSD
Aux settings: gsync off, nvidia geforce overlay disabled, nvidia drivers 527.37, affinity off for first 16 cpus at launcher (and checked inherited)
Game settings: VFOV 65, 2560 x 1440, fullscreen, DLSS Automatic, RT off, AO Low, Fog Low, DoF off, Bloom off, Skin Sub on, blur off, all lens off, 12 ragdolls, anything else high, 12 worker threads
Map(s): Smelter

02-12-2022, 21:04:46 Darktide.exe benchmark completed, 131457 frames rendered in 1291.828 s
Average framerate : 101.7 FPS
Minimum framerate : 57.9 FPS
Maximum framerate : 157.6 FPS
1% low framerate : 62.2 FPS
0.1% low framerate : 31.0 FPS

For the 5950X, I am recommending using the mask 0xFFFF or 0xFFFF0000, not 5’s. The 5’s is a really old recommendation that hasn’t been relevant for many years. It helped back when hyper threading was new and the windows cpu scheduler was much dumber.

For the thread count, I mean n+1 of the real cores you’re allowing the game to run on. So in your case, 9. 0xFFFF or 0xFFFF0000 will restrict the game to run on the first 16, or last 16 cores, 8 of which are full fledged cores and the other 8 are hyper-threading one.

Thank you, will try that out tomorrow - and I appreciate the excellent descriptions / knowledge you’re providing.

1 Like

Alright - benchmark done on smelter

Test setting
Rig: Ryzen 9 5950X 16 Core, 3080TI, 32GB RAM DDR4 3000, M.2 SSD
Aux settings: gsync off, nvidia geforce overlay disabled, nvidia drivers 527.37
Game settings: VFOV 65, 2560 x 1440, fullscreen, DLSS Automatic, RT off, AO Low, Fog Low, DoF off, Bloom off, Skin Sub on, blur off, all lens off, 12 ragdolls, anything else high, 9 worker threads
Affinity Settings (confirmed inherited): Get-Process “Launcher” | Where-Object {$.Path -like “*\Steam*”} | ForEach-Object {$.ProcessorAffinity=0xFFFF ; Write-Output $_.Path}
Map(s): Smelter

03-12-2022, 13:57:21 Darktide.exe benchmark completed, 101622 frames rendered in 1123.625 s
Average framerate : 90.4 FPS
Minimum framerate : 48.2 FPS
Maximum framerate : 138.4 FPS
1% low framerate : 59.3 FPS
0.1% low framerate : 24.0 FPS

03-12-2022, 14:20:06 Darktide.exe benchmark completed, 75792 frames rendered in 821.735 s
Average framerate : 92.2 FPS
Minimum framerate : 17.3 FPS
Maximum framerate : 134.9 FPS
1% low framerate : 59.9 FPS
0.1% low framerate : 16.6 FPS

Not was I was expecting but I appreciate your testing. Looks like the improvements to the 3000 series and the 5000 series is way more than I thought. Do you mind running it one more time with 0xFFFF0000 to get the second half?

Only other thing I can think of is memory speeds. I know Ryzen likes fast memory. However I underclocked my memory from 3600 to 2400 and only dropped about 10% FPS. I would not expect you to get much of a boost moving to 3600 from 3000 and I don’t think the price would be worth it.

Intel is actually effected by memory speeds far more than ryzen cpus are now days especially since the ryzen cpus now have 8 core ccds.

Ram speed barely matters.
it is not your hardware, it is the game.
I can do 1080p/high/120 fps, but that is insane for my pc, I can do more like 240 fps in well optimized games.