Jump to content


Photo

Found a couple of ini tweaks that dramatically reduce the cpu bottleneck.


  • Please log in to reply
5 replies to this topic

#1 HyperSlayer72

HyperSlayer72

    Citizen

  • Citizen
  • 20 posts

Posted 21 May 2020 - 04:01 PM

Hello everyone, and hopefully doubleyou specifically as this could be a great tweak to add to bethini.

 

I have a i7 2600k and a gtx 1060. Yes my cpu is getting on in age a bit but is still great for my needs.

 

I found some ini tweaks that lightened the cpu load improving my gpu utilization in my test scene from 72% to 96%.

 

I slapped my character in front of whiterun. The location that for me always results in reduced gpu utilization. At ultra I get ~72% Gpu Usage. and 39% Cpu. Process Specific.

 

I changed the following settings from their bethini ultra configuration to the values used at medium. Do note that these increases in gpu utilization are indeed a result of the settings actually reducing cpu usage, improving cpu overhead.

 

[LOD]
fLODFadeOutMultObjects = 6.0000 // 13% Increase in GPU Usage.
fLODFadeOutMultActors = 5.0000 // 5% Increase in GPU Usage.
fLODFadeOutMultItems = 3.0000 // 3% Increase in GPU Usage.
 
 
[TerrainManager] // 3% Increase in GPU Usage. (Many people would prefer to leave this at ultra and thats perfectly understandable.)
fBlockLevel0Distance was changed from 50000.0000 to 20000
fBlockLevel1Distance was changed from 72500.0000 to 42000
fBlockMaximumDistance was changed from 94000.0000 to 90000
fSplitDistanceMult was changed from 4.0000 to 0.750
fTreeLoadDistance was changed from 72500.0000 to 25600
 
This wound up improving my framerate from 67fps to 96fps with a very minimal performance impact.
 
I attempted the same tweaks on a higher end system as-well.
 
9700k + gtx 2080 = 142fps at ultra (no-vsync or fps caps I promise), at ultra with the above tweaks the framerate roared up to 205fps improving gpu utilization by ~20%.
 
The major thing I noticed while doing testing for this is that my 2600k processor seems incapable of being utilized nearly as much as the 9700k. my cpu would top out at 50% usage whereas the 9700k went all the way up to 78% at times.
 
For those interested in the data I collected here it is. I maintained an identical system enviroment with nothing else running except skyrim and mo2.
 
SE Vanilla 1080p - ENB Installed with "Use Effect" Off -  144hz Havok Settings in Bethini - Turned towards whiterun 
 
SE Ultra Low
28% CPU  // The Cpu Usage Measured with a fps cap of 65 fps set in enb. Done with the intention of isolating cpu usage of the given graphics preset.
18% GPU  // The GPU Usage Measured at 65fps. Will of course be quite low at low graphics settings.
57% GPU Uncapped  // The GPU Usage Measured with the fps uncapped. This is the value that really matters. 
 
SE Poor
30% CPU
20% GPU
57% GPU Uncapped
 
SE Low
32% CPU
26% GPU
55% GPU Uncapped
 
SE Medium
32% CPU
43% GPU
85% GPU Uncapped \\ This is where I noticed the improved gpu utilization dispite the expectation that ultra would better utilize the gpu.
 
SE High
35% CPU
58% GPU
77% GPU Uncapped
 
SE Ultra -
38% CPU  \\ The elevated cpu usage dispite the capped framerate also caught my attention and highlights the impact of leaving the above ini tweaks at ultra.
69% GPU
72% GPU Uncapped 67 FPS
 
SE Ultra with Medium Lod + TerrainManager settings.
34% CPU
62% GPU
90% GPU Uncapped 96 FPS
 
This all may seem minor for some but this has enabled me to finally use open cities without nearly as much of a performance hit. I now maintain 75fps with open cities compared to my previous average of 52fps.
 
Here are some screenshots taken on the high end system. (The game was running at 1080p the monitor was 1440p.)

 

In conclusion, these tweaks work great for people plagued with low gpu utilization. If however your gpu is already fully utilized by skyrim (rare for vanilla) then these tweaks will have no effect for you. Additionally for people who plan to mod their games graphics way beyond ultra, and not use open cities in their load order these tweaks become pointless.


Edited by HyperSlayer72, 22 May 2020 - 12:30 AM.

  • 0

#2 DoubleYou

DoubleYou

    Wiki Stepper

  • Uber Moderator
  • PipPipPipPipPipPipPipPipPipPipPip
  • 4,736 posts

Posted 21 May 2020 - 04:29 PM

These settings are very important in relation to performance, and I have known this for some time, and is the biggest reason why BethINI improves performance. Please note that BethINI Ultra tends to push all draw call settings to their seeable maximum (except TerrainManager settings). This is why I generally recommend BethINI High. I think the takeaway here is that the GPU is used more and provides more FPS when the CPU is less bottlenecked in your case. Each frame requires so many draw calls, and the farther out, the slower it renders the scene. This game doesn't use the CPU very well.

 

Your CPU has 8 threads/4 cores. I would like to see if you see improvements with the following in your Skyrim.ini. It probably does nothing, but it has been theorized that it could improve CPU usage on CPUs with more than 4 threads.

[General]
iNumHWThreads=8


#3 HyperSlayer72

HyperSlayer72

    Citizen

  • Citizen
  • 20 posts

Posted 21 May 2020 - 08:27 PM

Unfortunately setting iNumHWThreads=8 seems to make no difference at all. No change in gpu usage and the cpu graph is just as unpredictable as usual. Seems that Thread#3 of my cpu is being hit harder than the rest of the threads though. 75% on thread 3. Approximately 30% - 50% across all other threads. Id be curious what the HWThread options do.

 

Getting back to the above tweaks, especially the Actor and Object fade distances. This is an awkward position because essentially anyone with a strong video card is likely to play at ultra, but at the same time its those same people that could benefit from the tweaks. Do you think something could be added that informs users of the impact of these tweaks? It took me several hours to find these and think all users who play at high/ultra should be aware of the option.


  • 0

#4 DoubleYou

DoubleYou

    Wiki Stepper

  • Uber Moderator
  • PipPipPipPipPipPipPipPipPipPipPip
  • 4,736 posts

Posted 21 May 2020 - 09:32 PM

Well, probably the best thing would be to go through and label the performance impact of all the settings.

#5 HyperSlayer72

HyperSlayer72

    Citizen

  • Citizen
  • 20 posts

Posted 21 May 2020 - 11:00 PM

True. Thats a hell of a lot of work though. You would need to also provide info on whether it adds cpu or gpu load.

 

One major thing i'm curious about. Do you know of any draw-distance settings that can be lowered when using dyndolod?


  • 0

#6 DoubleYou

DoubleYou

    Wiki Stepper

  • Uber Moderator
  • PipPipPipPipPipPipPipPipPipPipPip
  • 4,736 posts

Posted 22 May 2020 - 04:22 AM

Not really. The main reason for DynDoLOD is so you get good lod without increasing uGridsToLoad. The large refs one in prefs might be able to be lowered to 5, but I haven't studied it.


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users