CPU Performance Patch (Up to 30% faster physics, up to 60% more FPS)

Other CPU Performance Patch (Up to 30% faster physics, up to 60% more FPS)

Thanks for getting back to me with an answer, Kretos.

I don't mean to contradict your advice but since asking the question I have done some experimenting with the settings and research on Unity threads and have found that using all the threads on your machine (in my case 32) loses a big chunk of fps. For me, using about 2-6 threads seems to work well.

For anyone interested, the line in question is 'job-worker-count=' which goes in the 'boot' config
What cpu are you having with 2-6?
 
What cpu are you having with 2-6?
I use the same cpu as turtlebackgoofy (ryzen 5950x). In VAM I use 8- 1,3,5,7,9,11,13,15 with 1 and 7 assigned to engineAffinity

When I say 2-6 threads, that's for adding to Kretos' boot addition i.e. job-worker-count=6
 
whenever I drag sliders for the morphs the fps drops or whenever I select controllers it freezes for a few seconds
 
Last edited:
Speaking of fps drops, I usually play windowed, not fullscreen on desktop. If I move my mouse pointer outside of the window I get a 30fps increase. Surprised a mouse pointer can drop a game 30fps.
 
disable motion smoothing in VR, so it never gets locked to 45fps.
It also appears your CPU performance was already great, you probably have some very good RAM.
Motion smoothing was already disabled for benchmarking purposes. Since disabling it also solved another issue of liquified transitions (I don't know the technical term LOL), I just left it as disabled.

To give the devil his dues, I am using OLOy Memory. I personally had never heard of them, but they were on sale for a great price during Black Friday. And the reviews seemed really decent. I guess I really lucked out
 
My patch isn't even running. I tried the powershell command, but it comes back empty.
vam2.jpg




The replaced .dll file is in VaM_Data, and the other 2 files are in PerformancePatches, so I'm certain that the paths are correct.
vam1.jpg



In boot.config I wrote, just like the screenshot guide.
gfx-enable-gfx-jobs=1
gfx-enable-native-gfx-jobs=1
gfx-disable-mt-rendering=0
wait-for-native-debugger=0
gc-max-time-slice=3
job-worker-count=12
single-instance=1


What am I missing here?
 
My patch isn't even running. I tried the powershell command, but it comes back empty.
View attachment 342150



The replaced .dll file is in VaM_Data, and the other 2 files are in PerformancePatches, so I'm certain that the paths are correct.View attachment 342149


In boot.config I wrote, just like the screenshot guide.



What am I missing here?

Did you edit the config file in the Performance Patches folder to reflect your CPU specs?
 
After a bunch of experimenting there's one thing that still leaves me confused constantly,

Windows task manager refers to my cores as "Core 0 - 11."
But in all of your guides you always start at core 1, not core 0.

This throws my entire config file off, to determine what is what

Is core 0 for me, the same as core 1 that you reference to as affinity 1 ?

In AMD master, it for example says that for me, core 1 and core 3 are my fastest cores. (Out of the 6)

So according to your guide I would want to set these 2 cores as the "engineAffinity" cores, would I put in Affinity 0, 4 here?
Or 1,5 ?

Im so confused.
- How I assume it is:
Core 0 = Physical core 1,
Core 1 = SMT core 1 ^
Core 2 = Physical core 2
Core 3 = SMT core 2 ^

etc. etc.

I also noticed that looking in task manager and opening the VaM service affinity it reports this:
1709803181627.png


Here I can clearly see it starting at CPU 0, not CPU 1.

My question then is, why does your guide refer to CPU 1 which should be CPU 0?


How task manager currently looks when I use EngineAffinity 1,5
1709802639272.png


This was during an scene where allot of movements happen (dancing). What I can gather from this is that, core 1 and 3 are being used allot, especially core 1, but core 2, 4, 5 and 6 are constantly hovering around 40% usage, seemingly doing nothing at all in terms of variable calculation?


Also, is it correct to my understanding that, using this patch of yours, is simply a method to DISABLE any hyperthreading/SMT that would otherwise be applied to VaM? Because with this patch activated, all of the hyperthreading/SMT cores report back 0-5% usage in task manager (as shown in the picture). Where as before, most of the SMT cores were used at all times, seemingly spreading out the load allot more.


Ryzen 5 5600
 
Last edited:
After a bunch of experimenting there's one thing that still leaves me confused constantly,

Windows task manager refers to my cores as "Core 0 - 11."
But in all of your guides you always start at core 1, not core 0.

This throws my entire config file off, to determine what is what

Is core 0 for me, the same as core 1 that you reference to as affinity 1 ?

In AMD master, it for example says that for me, core 1 and core 3 are my fastest cores. (Out of the 6)

So according to your guide I would want to set these 2 cores as the "engineAffinity" cores, would I put in Affinity 0, 4 here?
Or 1,5 ?

Im so confused.
- How I assume it is:
Core 0 = Physical core 1,
Core 1 = SMT core 1 ^
Core 2 = Physical core 2
Core 3 = SMT core 2 ^

etc. etc.

I also noticed that looking in task manager and opening the VaM service affinity it reports this:
View attachment 342395

Here I can clearly see it starting at CPU 0, not CPU 1.

My question then is, why does your guide refer to CPU 1 which should be CPU 0?


How task manager currently looks when I use EngineAffinity 1,5
View attachment 342394

This was during an scene where allot of movements happen (dancing). What I can gather from this is that, core 1 and 3 are being used allot, especially core 1, but core 2, 4, 5 and 6 are constantly hovering around 40% usage, seemingly doing nothing at all in terms of variable calculation?


Also, is it correct to my understanding that, using this patch of yours, is simply a method to DISABLE any hyperthreading/SMT that would otherwise be applied to VaM? Because with this patch activated, all of the hyperthreading/SMT cores report back 0-5% usage in task manager (as shown in the picture). Where as before, most of the cores were used at all times, seemingly spreading out the load allot more.


Ryzen 5 5600

I might be wrong, but I always thought Core 0 was mainly used by the Windows system, so selecting 0 for gaming wasn't encouraged.
 
I might be wrong, but I always thought Core 0 was mainly used by the Windows system, so selecting 0 for gaming wasn't encouraged.
No this is not the issue at hand, the issue I describe is that windows uses a different terminology compared to what is used here in the OP page

Windows calls the FIRST physical core, CPU 0, and it's SMT is called CPU 1.

Where as this guide referes to the exact same physical core as "Core 1", and calling it's SMT core 2......

Thus, creating allot of confusion as to what is supposed to be what.

If you look at the creator his OP, you can clearly see that he tells us to make sure VaM maxes out his Core 0 (As seen in his task manager screenshot), This was his intention.
Thus your claim that you don't want VaM to run on CPU 0 (Or as the OP here refers to it as "core 1") is simply false as OP does the exact opposite.
 
Last edited:
Wasn't aware of turtles original claim, I'm just echoing advice from loads of gaming websites about Core 0 usage slowing down fps.

btw I use the same cpu as Turtle, run it at 1,3,5,7,9,11,13,15 on both his patch and via process lasso (which starts at 0,1,2,3...etc) and get very high fps. But I'll be interested to know if I'm doing it right when Turtle clarifies things.
 
Last edited:
Wasn't aware of turtles original claim, I'm just echoing advice from loads of gaming websites about Core 0 usage slowing down fps.

:ROFLMAO: This isn't 2015 anymore my friend, you are repeating nonesense.

You want games and programs like VaM to run on your fastest cores..

Even in your own example, you state that you use Cpu 0 (which is Affinity 1) for VaM, contradiction no?
 
Just trying to work out which way works best like everyone else here, man.

You find a flaw in turtle's logic? Great! We'll all benefit from it.
 
The subject of cores start with 0 was literally talked about last page:

Get Intel's free Extreme Tuning Utility. Once running, go to the left panel and find the Advanced Tuning tab. Click on that to show that page, and then scroll down to the "Performance Per=Core Tuning" section. You'll see a table of P-Cores. The two best cores will have stars next to the core number.

Speaking of which ...

@turtlebackgoofy: In my 14700K, my two best P-Cores are numbered 4 and 5 by Intel. But since their numbering starts at 0, and because I have HT on, is the following correct for me?

engineAffinity = 9,11

Thanks
Cores
Index 1 [C0]
Index 2 [not named HT core]
Index 3 [C1]
Index 4 [not named HTcore]
Index 5 [C2]
Index 6 [not named HTcore]
Index 7 [C3]
Index 8 [not named HTcore]
Index 9 [C4]<- fastest
Index 10 [not named HTcore]
Index 11 [C5]<- fastest

yes correct

Basically, yes, core 0=1, numbers are offset.
 
The subject of cores start with 0 was literally talked about last page:




Basically, yes, core 0=1, numbers are offset.
I agree and read it beforehand but their wording confused me greatly.
Thanks for clarification that this was indeed exactly what I pointed out.
 
Ok, so I'm using 1,3,5,7,9,11,13,15 in Turtle's patch

I'm also trying to give VAM an additional extra boost by selecting the corresponding threads in Process Lasso which are numbered CPU 0-31. Which are the correct corresponding 8 to choose in Process Lasso? 0,1,2,3,4,5,6,7 or 0,2,4,6,8,10,12,14?
 
Ok, so I'm using 1,3,5,7,9,11,13,15 in Turtle's patch

I'm also trying to give VAM an additional extra boost by selecting the corresponding threads in Process Lasso which are numbered CPU 0-31. Which are the correct corresponding 8 to choose in Process Lasso? 0,1,2,3,4,5,6,7 or 0,2,4,6,8,10,12,14?
You exactly pointed out an issue that arises from what I described earlier.

Turtle his patch skips over "number 0" when counting cores, Thus his core count starts at 1.

Windows however, and the vast majority of other programs that reference to cores, start at "Number 0".

Thus, for project lasso you'd want to use 0,2,4,6,8,10,12,14 as that is referencing to exactly the same cores as turtle's 1,3,5,7,9,11,13,15 in VaM.
 
You exactly pointed out an issue that arises from what I described earlier.

Turtle his patch skips over "number 0" when counting cores, Thus his core count starts at 1.

Windows however, and the vast majority of other programs that reference to cores, start at "Number 0".

Thus, for project lasso you'd want to use 0,2,4,6,8,10,12,14 as that is referencing to exactly the same cores as turtle's 1,3,5,7,9,11,13,15 in VaM.
Thanks man. Appreciated
 
You exactly pointed out an issue that arises from what I described earlier.

Turtle his patch skips over "number 0" when counting cores, Thus his core count starts at 1.

Windows however, and the vast majority of other programs that reference to cores, start at "Number 0".

Thus, for project lasso you'd want to use 0,2,4,6,8,10,12,14 as that is referencing to exactly the same cores as turtle's 1,3,5,7,9,11,13,15 in VaM.
A weird observation though. When I monitor CPU core usage of the program running with Process Lasso, 1,3,5,7,9,11,13,15 spike and not 0,2,4,6....etc. Could that be because, as someone mentioned last page, 0 and the even numbers indicate the virtual cores in Process Lasso and not the physical ones?

ScreenHunter 518.jpg
 
A weird observation though. When I monitor CPU core usage of the program running with Process Lasso, 1,3,5,7,9,11,13,15 spike and not 0,2,4,6....etc. Could that be because, as someone mentioned last page, 0 and the even numbers indicate the virtual cores in Process Lasso and not the physical ones?

View attachment 342418
I don't know what to tell you, for me it works exactly like I said in my previous message.

For me, I set turtle his patch to use Affinity 1,3,5,7,9,11
I set engineAffinity to 1,5

In process lasso I can clearly see CPU 0 and CPU 4 (which corelates to EngineAffinity 1,5) being utilized the most, as expected due to the settings I used for turtle his patch.

1709814667855.png



Again, 99% of the programs call the first physical core, CPU 0 and the first SMT/Hyperthreaded core will then be CPU 1 (If this is enabled).
If SMT/Hyperthreading is disabled, then CPU 1 is the second physical core.
 
Even weirder, if I change Turtle's config file to 0,2,4,6,8,10,12,14, then I get 0,2,4,6 etc spiking in Process Lasso's %CPU and get the exact same fps increase in VAM.
 
Last edited:
Even weirder, if I change Turtle's config file to 0,2,4,6,8,10,12,14, then I get 0,2,4,6 etc spiking in Process Lasso's %CPU and get the exact same fps increase in VAM.
Does your windows task manager report the same results as you see in process lasso? Because your findings make zero sense to me, -> We just established that when turtle references a core, it's bassicaly a +1 to the CPU name inside windows task manager / proccess lasso.

What you report here is the exact opposite, and either your interpretation of your findings are simply invalid/incorrect, or turtle his patch works different when it comes to 6 core CPU vs a 16 core CPU. (It shouldn't, both should behave exactly the same).

You should perhaps start to clarify which ENGINEaffnity you use, pointless to start guessing in the dark here without actual context/info.
 
Last edited:
Windows Task manager has the same findings when using 1,3,5,7,9,11,13,15. Spikes on 1, 7 and to a lesser extent the other odd numbers.

ScreenHunter 521.jpg


1, 7 incidentally is what I use for Engine Affinity. RyzenMaster says C 01 and C 04 are my fastest, and that correlates with Turtle's numbers below. C01 = 1, C04 = 7

ScreenHunter 520.jpg

ScreenHunter 519.jpg


I'm using an AMD Ryzen 9 5950X
1 person scene I get 245 FPS
2 person scene 135 FPS
Highest quality settings
So I'm not complaining, happy with the results.
 
Last edited:
Back
Top Bottom