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)

I've got a I9 13900KS, RTX 4080 on a Gigabyte Aorus Z790 Elite AX with 64GB DDR5 6000. I was getting 45fps on MAX, sometimes as low as 24. Now I get 90 and no crashes. How is this possibl- Wait, I don't care!
 
Yes, My main installation has tons of vars - and also some variations for VR rendering speedup.
But I am literally right now running the test on a "virgin" setup... however, it doesn't seem to look any different... :-(
Give me 5min for the test to finish...
...
Nope, no change either :cry:
View attachment 332963
set
[profiler]
enabled=1

run the benchmark
zip and send me the ThreadProfile.csv that gets written in your vam folder
 
Also,some in-built morphs (didn't even check VAR ones) don't show up in their neutral poses. Specifically the fist poses, whose neutral value is 0.15. THey show up as 0.00, even though the values are 0.15. Only by setting them to 0 and them back to default does the pose apply. That is NOT the case in the normal/unaccelerated setup

Normal - fist poses neutral (=0.15):
View attachment 332961

Same scene immediately after load, using accelerated setup:
View attachment 332962

That messes up several other scenes as well where originally neutral hand poses are now flat. Haven't checked if other poses or morphs are affected by that, too. I can imagine, candidates are poses/morphs with "Neutral" values other than 0.0.
after noticing this in the benchmark scene too I must say its a different bug to the other morph bug I fixed in v11. I will look into that.
Edit: found it and fixed it, but I already submitted v11, it will be fixed in v12. Performance wasnt affected. Morphs are truly complicated, must have been quite a challenge for @meshedvr to get it right.
 
Last edited:
set
[profiler]
enabled=1

run the benchmark
zip and send me the ThreadProfile.csv that gets written in your vam folder
Oh, OK, one problem found and solved: the VR performance kit (https://github.com/fholger/vrperfkit) seems to have hijacked your patch. Initially, I did not find any profile log written, until I deleted that kit and restarted, then, lo and behold, the CSV appeared.
But still, the benchmark results with your patch are the same as without :-(
Here's the logfile (.zip not allowed, so i added a .txt extension).
 

Attachments

  • ThreadProfile.csv.zip.txt
    4.9 MB · Views: 0
Some of my more intense scenes typically drag my i9 down to 30-32 fps on average. Holding a steady 50+ with multiple pixel lights, detailed hair, and 8xx antialiasing!!!

As a less-talented software developer myself, I can tell this was a lot of complex work, so hats off to you. Do you have a litecoin address we can tip you at man? this is dope.

In 4K 7950X3D 64G RTX4090 Desktop,

I got exactly the same result as he did.

BEFORE Patch 10
Very intense scences 30-32 fps on average (3 Person with multiple pixel lights, very complex hair and antialiasing but in this situation, antialiasing actually doesn't mean much because it already caught in cpu bottleneck)

AFTER Patch 10
Holding a steady 50+ to MAX 55-58fps OH MY GOD

Improvements were also seen in complex single person scenes normally, maybe the best effect seems to be seen in extreme cpu bottleneck conditions.

Oh, and just to be clear, there were some scenes that didn't get any improvements, as the creators also mentioned.
I'm not sure, but I think this is the case for scenes with too complex hair or physics issues.

I Praise him and I think we should definitely buy him a coffee, Isn't that right? :cool:
 
Didn't have enough time to run the full MacGruber Benchmark with small changes.
So tried with the Cyber Striptease CuddleMocap scene. I saw it was CPU limited with ~50-60% GPU usage at 1440p. Didn't see much FPS change with this CPU patch in scenes that were GPU limited >95% GPU usage.

Tested a couple of different ways to boost FPS for CPU limited scenes.
  1. Apply turtlebackgoofy's CPU Patch
  2. Turn off Glute Physics
  3. CPU OC all-core by +0.3 Ghz
Seeing large gains (15-20%) from all three methods. Combine for maximum effect :sneaky: Go from 90->177 FPS


CPU patch testing.png



The hybrid Intel CPUs might have weird behavior in Win 10 on disabling e-cores or HyperThreading. I saw 5% less performance on HyperThreading disable.
And super-inconsistent frame rate on disabling e-cores althogether with CPU process affinity in the CPU patch. Sometime FPS was 50% lower, sometimes on par with all-core affinity.

Best Setting (at least for my CPU-GPU in Win 10):
  • HyperThreading ON + All cores affinity for Intel Hybrid CPUs
  • Use turtlebackgoofy's CPU patch
  • Turn off glute physics if possible
  • OC core clocks within safe temperatures
 
I've got a I9 13900KS, RTX 4080 on a Gigabyte Aorus Z790 Elite AX with 64GB DDR5 6000. I was getting 45fps on MAX, sometimes as low as 24. Now I get 90 and no crashes. How is this possibl- Wait, I don't care!

hey, same cpu here, whats your configuration file look like? since the latest versio my fps dropped again.
 
I would love to try this out, but in the Readme file it says the extraction contains a VaM.exe file. I don't see one in the zip file. Am I reading this right?
 
For some reason, patch breaking some of morphs, and models spawn with open mouths, first screen, where morph how should look like, second screen, it's broken.
The patch actually changed how the CPU eats resources, but i didn't see any improvements in FPS.
Settings were:
[threads]
computeColliders=4
skinmeshPart=1
affinity=1,3,5,7,9,11

[threadsVR]
computeColliders=4
skinmeshPart=1
affinity=1,3,5,7,9,11,13,15

[profiler]
enabled=1
(PC: i5 11400, 32 GB RAM, GTX 1660)
 

Attachments

  • 1707463890.jpg
    1707463890.jpg
    1.3 MB · Views: 0
  • 1707464290.jpg
    1707464290.jpg
    1.1 MB · Views: 0
What does "version 10+ only" and "version 11+ only" refer to?
I don't understand what the + means, does 10+ mean 10 and 11? But version 10 and 11 of what?
 
For some reason, patch breaking some of morphs, and models spawn with open mouths, first screen, where morph how should look like, second screen, it's broken.
The patch actually changed how the CPU eats resources, but i didn't see any improvements in FPS.
Settings were:
[threads]
computeColliders=4
skinmeshPart=1
affinity=1,3,5,7,9,11

[threadsVR]
computeColliders=4
skinmeshPart=1
affinity=1,3,5,7,9,11,13,15

[profiler]
enabled=1
(PC: i5 11400, 32 GB RAM, GTX 1660)
He's aware of issues with morphs not loading correctly. He's stated is fixed in version 12, but admins haven't allowed that build to be posted publicly yet. Just a tip, it's a good idea to browse through a thread to see if anyone has mentioned your issue before making a post.
 
Extract into main directory, so you get:

\VaM.exe
\PerformancePatches\SkinMeshPartDLL.dll
\PerformancePatches\SkinMeshPartDLL.ini
\VaM_Data\Managed\Assembly-CSharp.dll


But there is no VaM.exe in the archive, its ok?
 
What does "version 10+ only" and "version 11+ only" refer to?
I don't understand what the + means, does 10+ mean 10 and 11? But version 10 and 11 of what?
"from version10 forward use these options", since new options are added in every version. To make sure users arent using new configs on old versions.

Extract into main directory, so you get:

\VaM.exe
\PerformancePatches\SkinMeshPartDLL.dll
\PerformancePatches\SkinMeshPartDLL.ini
\VaM_Data\Managed\Assembly-CSharp.dll


But there is no VaM.exe in the archive, its ok?
yes, the Assembly-CSharp.dll was modified to use the .dll. VaM.exe is just the UnityPlayer.exe with a modified icon, Assembly-CSharp.dll is the whole VaM code.
 
Sorry, but, where I can take an no AVX2 version?
I see SSE only tests, but, can't see sse only dll?

My:
Xeon(R) CPU E5-2650 v2 @ 2.60GHz / Intel64 Family 6 Model 62 Stepping 4
can't load default
 
Sorry, but, where I can take an no AVX2 version?
I see SSE only tests, but, can't see sse only dll?

My:
Xeon(R) CPU E5-2650 v2 @ 2.60GHz / Intel64 Family 6 Model 62 Stepping 4
can't load default
in the newest version, its beeing approved by mods
 
"from version10 forward use these options", since new options are added in every version. To make sure users arent using new configs on old versions.


yes, the Assembly-CSharp.dll was modified to use the .dll. VaM.exe is just the UnityPlayer.exe with a modified icon, Assembly-CSharp.dll is the whole VaM code.
Thanks for the reply. I was thinking it wasn't an issue, but I wanted to clarify.

Great plugin BTW. Increase from 40ish fps to about 60.
 
this happens if you replaced the Assembly-CSharp.dll, but did not place the SkinMeshPartDLL.dll in \vamroot\PerformancePatches\
i just got it to work. I used to have around 110-120fps (male+female). Now i have 190-220 fps. This shit is crazy good, youre magician man ty!
 
Will this work with ANY game that has the Assembly-CSharp.dll file? Somebody here mentioned Shadow Of The Tomb Raider, but that doesn't seem to have it. However I did a search on my drive and found half a dozen games that do but none of them appeared to be the same file size.
This could be an extremely useful patch for many older games if it's "generic" and can replace those other game files.
 
Will this work with ANY game that has the Assembly-CSharp.dll file? Somebody here mentioned Shadow Of The Tomb Raider, but that doesn't seem to have it. However I did a search on my drive and found half a dozen games that do but none of them appeared to be the same file size.
This could be an extremely useful patch for many older games if it's "generic" and can replace those other game files.
no, ofc not. My patch optimizes vam specific functions. The core affinity trick can also be done using taskmanager on any .exe, so try it out.
 
I stepped through the unityplayer and I think the biggest FPS increase will be upgrading to newest unityengine (will happen in vam2). Current unity engine uses physx3.3 (released 10 years go) and unity devs statically compiled physx so you cant upgrade it without upgrading unity. New unity engine has new physx which supports GPU acceleration of physics simulation. So when vam2 hits it will probably be a 2x or more increase in physics times.
I think I've pretty much reached the limit what can be optimized in vam1.

Total time per frame: 8.32ms
render time: 0.67ms (gpu)
physics time unity: 3.88ms (cpu)
physics time vam: 0.94ms (cpu)
scripts time vam: 2.83ms (various plugins/behaviours, animations, cpu)
so only 45% are still available for optimizations, everything else is in unity itself.
 
Last edited:
I commend you for your hard work.
Ryzen 5600 supports AVX2
Are there any changes in version 11 compared to version 10?
 
We finally got 11, but I'm waiting for the additional morph fixes in 12. Really hope the hub admins can expedite these update reviews.
 
I have a 6900 XT and a 5800X3D with 32 GB of 3600 MHz memory. It gave me a nice boost, my reference scene went up from 40-50 to 70-80 FPS. Nice mod.
 
Back
Top Bottom