Low FPS on a high end PC -> shadow issues

DonDregon

Refugee
Hi guys I've read some threads about this here and there but can't find a way to make it work properly.

I can play most of time at decent FPS all ultra but when I go to specific places such the structure I built to face the horde, which contains like 20 torches and like 200 built blocks I get 16-24 fps.

System specs:

AMD Ryzen 3600X (AMD Ryzen High Performance energy plan)

Nvidia RTX 3080 

32Gb DDR4 3466MHz

Game installed on a Sabrent 1TB Rocket Q4 NVMe PCIe 4.0

Asus x570 mobo

NO mods installed.

I play the game through Steam (don't really know if it can be played on another platform anyway).

At the point on getting low FPS, the CPU is working at less than 30% while the GPU is at 100%. Mem usage: 4,3Gb

Lowering the shadow distance to "close" does not make any difference but setting it to "disabled" raises the fps to 50-70 on the same situation and the GPU usage drops to 40-45%, but the experience of course, is not the same, no shadows like the having 12 suns around is a bit weird...

Is there any known way to make it work properly even with close shadow distance?

Thanks

 
Last edited by a moderator:
Hi, shadows need some optimization but many users have had success by limiting 7 days to use 4 cores, you can try that and also turn off reflected shadows/SSAO for a boost as well.

 
Hi, shadows need some optimization but many users have had success by limiting 7 days to use 4 cores, you can try that and also turn off reflected shadows/SSAO for a boost as well.
Thanks I'll try turning off reflected shadows/SSAO to see how it works after the current hore (that I need to face in some real life minutes xD) and I'll provide feedback to let you know how it worked.

By the way, how limiting it to use 4 cores can help in this issue? 

 
Thanks I'll try turning off reflected shadows/SSAO to see how it works after the current hore (that I need to face in some real life minutes xD) and I'll provide feedback to let you know how it worked.

By the way, how limiting it to use 4 cores can help in this issue? 
This game/most games in general most effectively use 4 cores especially with Ryzen, so limiting the game to 4 will allow it to utilize resources easier.

@Naz has done a lot of nice writing up about it, can see more here (there's some benchmarking posts he's done and etc too) along with other feedback which would likely help you out: 







 
Last edited by a moderator:
Thanks I'll try turning off reflected shadows/SSAO to see how it works after the current hore (that I need to face in some real life minutes xD) and I'll provide feedback to let you know how it worked.

By the way, how limiting it to use 4 cores can help in this issue? 
There's a few things you can try that should help. If you check out the link jug left, it has some performance tweaks that could help. 

I'd also check to make sure you're not doing too much with electricity, it's never really been optomized and is a performance killer. Somthing to keep an eye out for also is if you're playing with ultra reflections, make sure you're not overusing highly reflective paints on your base. Also as jug suggested disable screen space reflections and reflective shadows. 

The 4 core tweak is an odd one, it sounds counterintuitive to limit how many cores the game can use, but from my testing it helps with cpus with more than 4 threads. 

I'm by no means qualified to tell you why exactly it works. However it has to do with a couple of factors. 

1. Ryzen cpus use a cpu design that uses mutiple chips and each chip separates groups of cores into ccx's. For the best single core performance you want to keep all the processing on a single die or ideally a single ccx. The core layouts for Ryzen 3000 cpus are explained in more detail in this article

2. For some reason the unity engine often works more effectively locked to 4 cores. There is an article with some possible explanation on this here. I've also benchmarked this tweak extensively and you can see in the results it can help a ton the more cores you have over 4.

 
There's a few things you can try that should help. If you check out the link jug left, it has some performance tweaks that could help. 

I'd also check to make sure you're not doing too much with electricity, it's never really been optomized and is a performance killer. Somthing to keep an eye out for also is if you're playing with ultra reflections, make sure you're not overusing highly reflective paints on your base. Also as jug suggested disable screen space reflections and reflective shadows. 

The 4 core tweak is an odd one, it sounds counterintuitive to limit how many cores the game can use, but from my testing it helps with cpus with more than 4 threads. 

I'm by no means qualified to tell you why exactly it works. However it has to do with a couple of factors. 

1. Ryzen cpus use a cpu design that uses mutiple chips and each chip separates groups of cores into ccx's. For the best single core performance you want to keep all the processing on a single die or ideally a single ccx. The core layouts for Ryzen 3000 cpus are explained in more detail in this article

2. For some reason the unity engine often works more effectively locked to 4 cores. There is an article with some possible explanation on this here. I've also benchmarked this tweak extensively and you can see in the results it can help a ton the more cores you have over 4.


Sure reflections on the base were a huge performance killer, I've some torches on pilars built with square blocks + round blocks (not as a pilar but like mini-pilars attached to the main 2x2 square block) so it caused many reflections and shadows. I'll try to build it using square blocks only or maybe using some electric lights at a given distance can help with this.

I've tried SSAO on/off/high but this does not make a difference, at this point I'm playing with close shadow distance when exploring but with it disabled when on the horde base, this seems help keeping 40-60 fps or more. If I can play stable at this fps it's "ok" to me.

I mean, i've a 144Hz 2560x1440p monitor and an rtx 3080, I would expect more but I'm used to this alpha games that will face performance issues it's entire life so I don't really bother so much... having 40+ stable is ok, i'm not gonna cry.

Thanks for the information, I'll try this tweaks when having some time and desire for it to see if it makes any difference, but according to what I've faced I guess it's simply what we already discussed about shadows and reflections as the GPU keeps at 100% unless I disable it 🙂

Thanks!

 
You may get a decent boost by playing in 1080 resolution, or use the scale setting in dynamic resolution set to about 92% or so; resolution is also highly CPU-bound. But, I'd start with limited the game to 4 cores.

 
You may get a decent boost by playing in 1080 resolution, or use the scale setting in dynamic resolution set to about 92% or so; resolution is also highly CPU-bound. But, I'd start with limited the game to 4 cores.
Sometimes that can work, however in this case with a 3080 at 1440p is cpu bound and it wouldn't perform any different. If you look at my a19.5 ultra settings benchmark results here you can see going from 1440p (OC) 58.6fps avg to 1080p (OC) 58.7fps avg

 
This game/most games in general most effectively use 4 cores especially with Ryzen, so limiting the game to 4 will allow it to utilize resources easier.

@Naz has done a lot of nice writing up about it, can see more here (there's some benchmarking posts he's done and etc too) along with other feedback which would likely help you out: 


Ok guys I read this limit to 4 true cores and that all but... tbh I'm not gonna install any software to play with the cores to play a game, I thought there was any launch command or game setting such config files or whatever but as long as it seems the only way is using third party software.. I'll just avoid that. Not for a weird reason, I'm a software engineer myself and I've my computer tweaked to work well and working is my main job on the computer, gaming is the second so... priorities.

I was playing with the settings, I'll detail the current config:

2560x1440p, full screen
dynamic res. -> disabled
vsync -> disabled
FoV -> 75 (i've a curved monitor and usually like to increase the default a bit, for reference, default is 65, max is 85).

In quality I've set the settings to Ultra and then I edited the following:
- Reflected shadows -> Disabled
- shadow distance -> Close
- Depth of field -> Disabled
- Blur -> Disabled

- SS reflections -> low
- Sun rays -> disabled

Tried moving around my underground base, then to the horde base where i got an average of 20fps most of the time, run a bit near my house and... I'm getting 50 fps on the heavy places where I got 20 before, and the rest of the time I get between 58 and 92 so it's ok to me, nice for your time :)

 
Last edited by a moderator:
You can do this with the task manager, which is built into windows.

You may also want to check your drivers and other updates. 


Sincerely... I could but I don't want to. As I've said I'm a software engineer, I don't work on games but the principle is the same, struggle with your code to make the things easier to your users/customers. The easier things are for the user and the smoother the experience with your product, the more users you keep hooked on for longer. This game need tones of tweaks, probably would be better after those years to pick a new framework (which work well with modern hardware) and re-code it on a brand new clean version with new textures and that all, but that's none of my business.

My rule is to never tweak my PC for a given game, if the devs didn't bother why should I? I can waste some of my time to take the trouble of search a bit on internet, ask on some forum and so on but that's the limit.

The current balance is that I can play at this fps because I consider it enough entertaining to me, if I had had an average of less than 40 and the unique possible solution were to tweak my PC or play it with game boy visuals, it were in all probability uninstalled and forgot long time ago, luckily it never happened so here we are.

 
Last edited by a moderator:
tbh I'm not gonna install any software to play with the cores to play a game
i'd also set
[SIZE=14.6px]- SS reflections -> Disabled[/SIZE]

[SIZE=14.6px]Also where does it say you have to install any 3rd party software? If you read my the post with the 2 links in that thread, 1 is a link to 2 windows shortcuts that apply the affinity when you use them to launch then game. The 2nd is just a guide on creating the windows shortcuts yourself. No 3rd party software was recommended anywhere in that thread.[/SIZE]

The current balance is that I can play at this fps because I consider it enough entertaining to me
Then why are you here complaining of performance problems then? If it's fine to you great, just enjoy the game. You asked for ideas and that's exactly what you got. If you don't want to put in even the minimalist amount of effort, that's fine too, nothing is forcing you to do anything. The suggestions offered to you require nothing more than 30 seconds of time. If you can't be bothered with the solutions just say so instead of buck the issue up the chain and give every excuse not to dirty your hands with any kind of effort. The game is in alpha development it takes time as you should know. You want better performance today, now, tweaking is required. If not, no problem play at 20fps in your base or wait until the game is finished.

 
@Naz

You have my thanks.  I wasn’t having issues, but I did want to use your suggestions to make my system more stable while running 7D2D.  I did have a brain freeze when figuring out what I needed to put in the value for affinity to get Cores 0, 2,4, & 6 allocated; but looking at you shortcuts, I realized I wasn’t thinking in computer (i.e. hex).  :clap2:

 
  • Thanks
Reactions: Naz
Welcome, Yeah the hex value can be a pain to work out, but it's not too bad once you get your head around it. I just use notepad and type out the thread numbers, then under than I put the binary with the cores I want and then convert it to hex. Glad you figured it out 👍

 
My rule is to never tweak my PC for a given game, if the devs didn't bother why should I? I can waste some of my time to take the trouble of search a bit on internet, ask on some forum and so on but that's the limit.


You're not really tweaking your PC, as the changes don't affect any other software. You're just changing the game's configuration, no different from changing the detail level on video settings, except you're doing it from the game launcher rather than inside the game.

I use the following shortcut to implement the tweak:

C:\Windows\System32\cmd.exe /c start "7D2D" /affinity AA "C:\Program Files (x86)\Steam\steamapps\common\7 Days To Die\7DaysToDie_EAC.exe"

All that does is bind the game to use cores 11, 9, 7, 5 (I think - I did it a while back now). It made a massive, massive difference to me, on an 8086k/48Gb/3080Ti all duly watercooled and overclocked.  I chose all odd numbers so that I don't get a physical core and its hyperthreaded virtual core competing for resources.

 
  • Like
Reactions: Naz
i'd also set
[SIZE=14.6px]- SS reflections -> Disabled[/SIZE]

[SIZE=14.6px]Also where does it say you have to install any 3rd party software? If you read my the post with the 2 links in that thread, 1 is a link to 2 windows shortcuts that apply the affinity when you use them to launch then game. The 2nd is just a guide on creating the windows shortcuts yourself. No 3rd party software was recommended anywhere in that thread.[/SIZE]

Then why are you here complaining of performance problems then? If it's fine to you great, just enjoy the game. You asked for ideas and that's exactly what you got. If you don't want to put in even the minimalist amount of effort, that's fine too, nothing is forcing you to do anything. The suggestions offered to you require nothing more than 30 seconds of time. If you can't be bothered with the solutions just say so instead of buck the issue up the chain and give every excuse not to dirty your hands with any kind of effort. The game is in alpha development it takes time as you should know. You want better performance today, now, tweaking is required. If not, no problem play at 20fps in your base or wait until the game is finished.


You're not really tweaking your PC, as the changes don't affect any other software. You're just changing the game's configuration, no different from changing the detail level on video settings, except you're doing it from the game launcher rather than inside the game.

I use the following shortcut to implement the tweak:

C:\Windows\System32\cmd.exe /c start "7D2D" /affinity AA "C:\Program Files (x86)\Steam\steamapps\common\7 Days To Die\7DaysToDie_EAC.exe"

All that does is bind the game to use cores 11, 9, 7, 5 (I think - I did it a while back now). It made a massive, massive difference to me, on an 8086k/48Gb/3080Ti all duly watercooled and overclocked.  I chose all odd numbers so that I don't get a physical core and its hyperthreaded virtual core competing for resources.


Sorry for the late response, I was checking for other options to tweak this instead telling my OS to use certain core count for a given software because in order to make a strict core association to a given software to work well you'll need to edit the core usage for ALL running apps including system processes which is a titanic task and suitable for drawbacks, otherwise you can get better fps but some other app can malfunction such discord, chrome and whatever. I've 3 monitors and I use all of them with different things so It's a bad option to me, this is of course a TWEAK that can or cannot be achieved using 3rd party software but it will definitely affect the entire computer performance at least during game sessions on 7d2d.

I was playing with some different tweaks late at night so I recap some info and now I'm detailing you what I've tried and what I got:

First, I tried -USEALLAVAILABLECORES steam launch command to see if it does make a difference, it does not.

Then I've found a thread about Unity games, that seems to work for both 7d2d and Escape from Tarkov -I assume it works well with other games made with Unity as well- it seems the best way-to-go so far, let me TL;DR the stuff here and I'll add the link to the source I originally found:

1- Go to the 7DaysToDie_Data folder inside the game installation folder, i.e. mine is:

     F:\SteamLibrary\steamapps\common\7 Days To Die\7DaysToDie_Data

2- Locate a file named boot.config  (or simply boot as config origin file, depending on your folder view options on windows)

3- Open it with notepad, VSCode or any text editor of this kind, avoid using word or text processors like this to edit config files to avoid unwanted changes.

4- You should see something like this:

gfx-enable-native-gfx-jobs=
wait-for-native-de@%$#=0
scripting-runtime-version=latest
vr-enabled=0
hdr-display-enabled=0
gc-max-time-slice=3


5- We'll just add gfx-enable-gfx-jobs=1 at the top and a 1 as value for "gfx-enable-native-gfx-jobs=", the entire file will look like this:

gfx-enable-gfx-jobs=1
gfx-enable-native-gfx-jobs=1
wait-for-native-de@%$#=0
scripting-runtime-version=latest
vr-enabled=0
hdr-display-enabled=0
gc-max-time-slice=3


!!* DON'T COPY PASTE ALL THE LINES, the forum is changing the word d e b u g g e r for de@%$# on the third line, just copy the first one and add a 1 at the end of the current "gfx-enable-native-gfx-jobs="

6- Save, close the editor and launch the game

Results:

1- Staring on a given place,

I went where I got low fps in the past (20fps before graphic options tweak explained before)

- I was getting 58-92 fps depending if day/night and the current status (you know this fps ups and downs), lights and so.

- Now I'm getting 90-120 fps on the same place

2- Walking around, looting and stuff like that:

- Before this change I as playing at an average of 58fps -unstable- with high fps increases and decreases, sometimes from 90 to 40.

- After the change, the lowest peak I could see so far -yet- is 81 fps while I was able to see peaks over 125 fps 😍 and the average is around 91.

- Before (fps count on the top left corner)

AQ3TO4F.jpg


- After (fps count on the top left corner)

5NPbz6S.jpg


Original post that I used:

Link
 

Combining tweaks:

I tried to use the affinity thing using task manager to set the affinity for 4 cores only while having the "gfx-enable-gfx-jobs=1" and "gfx-enable-native-gfx-jobs=1" codes in boot.config, it does not make much difference, same fps, a bit less stability so we cannot combine them both (at least with my current hardware).

Giving that I would say that edit the boot.config would be a better option as you let the OS to choose which cores/threads to use while getting a good amount of FPS using the tweak that is isolated to the game.

Other options:

I saw there's a -threads launch command that can be set in steam launch options which I guess can deal to the same result than using the affinity thing.

I mean if you set up the game to run on cores 0, 1, 2, 3 it will use (if muli-threading enabled) the threads:
0/1, 0/2, 1/1, 1/2, 2/1, 2/2, 3/1, 3/2

So if you set the launch command to use those threads, the result should be the same than saying "use this specific cores".

* Note that this is my guess, I said I'm a software engineer and it's true but I work on a different field so I may be wrong if any of those options have underlying effects that I know nothing about.

There is also another option like -high which makes it a high priority process but well, check the details here

I've tried:

-threads 4 -high

-threads 8 -high

-threads 4

-threads 8

Result: -threads 4 deals a performance loss, -threads 8 does not make any difference and -high does not make any difference as well.

Recap:

There are multiple ways to increase performance in 7D2D:

- Lowering shadow distance and reflections does make a huge difference even with an RTX 3080

- If your GPU is part of the issue you can try using any re-scaling tech (such AMD's built-in image sharpening, check your AMD software) or using the in-game built-in option (options -> Screen -> Dynamic res -> Scale) checking the perfect resolution % for performance/appearance that you like.

- Editing the boot.config file does make a huge difference, in my case it's +12,5% (average) CPU usage and around +30 average FPS.

- Editing the boot.config seems to not combine with core affinity tweak so I'll say that editing the boot.config is the way to go as it has less drawbacks than core affinity has.

Check it if you can/want and tell us your results to see if this is specifically working like that with my hardware or does it work similar with yours.

My Hardware

- AMD Ryzen 3600X, Watercooled, no OC.

- RAM 4x8Gb DDR4 3466MHz

- Game installed on a Sabrent 1TB Rocket Q4 NVMe PCIe 4.0

- Asus Prime x570-P  mobo

- Nvidia RTX 3080 

Mods

All of this were tried in Alpha 19.6 (b8) vanilla (NO MODS installed)

 
Last edited by a moderator:
Just a reminder that this is a CPU-bound game. It's also a 3D Voxel game, not something flat like CoD. Your 3080 doesn't really mean a whole lot in regards to performance.


This is not true at all, the GPU will affect the texture quality, texture filters, object quality, render distance and so on so your statement would be true if you've all those graphic options set to lowest/disabled.

Even using the CPU to deal with many things, the GPU is needed for many things while gaming.

 
Added different hardware test:

A friend of mine who uses a Ryzen 3400G (without dedicated GPU) has increased the fps count from around 30-35 to 40-52 depending on the scene and gained stability by doing this boot.config tweak.

Extra info: 2x8Gb DDR4 3200 dual-channel

Game installed on an SSD.

 
This is not true at all, the GPU will affect the texture quality, texture filters, object quality, render distance and so on so your statement would be true if you've all those graphic options set to lowest/disabled.

Even using the CPU to deal with many things, the GPU is needed for many things while gaming.
Sorry, I probably should have been more clear.

Yes the GPU is necessary, and it is recommended to have quite a good one. Just the difference between a 1060 and a 1070 is noticeable, though not significantly different. What I meant was that the 3080 won't see a notable improvement compared to the previous generations because the game is primarily CPU-bound still for SI and AI mechanics. For this particular title, it most likely does not perform significantly better than a 1080 or 2080.

I am almost constantly inundated with people asking "Why can't I get 144+FPS at 4k on this game?", when they're sitting there running it on a 6th or 7th-gen Intel. Even Gen4 AMD CPU's aren't seeing significant improvements over the Gen3's simply because the game can't really utilize all the extra cores.

Back in Alpha 18 I did a direct comparison on varying clock speeds here. It shows how much of a difference small changes in CPU and RAM can make with no change to the GPU. Somewhere in General Discussion here there is a similar thread where I also included benchmark scores on the different setups.

 
Back
Top