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 had some success with this on my i9 10900K @3.7 GHz with an Nvidia 3080. The breakthrough was in VR where I had some scenes that just killed frame rate. My cowgirl scene with Naturalis v87 (paid version) looks amazing in desktop with jigglng ass cheeks and bouncy titties. I don't know the exact frame rates but they were something like 40fps. In VR, it was a dud because the frame rate dropped to 6-8 fps and was unplayable. If I turned the mirror off, the frame rate would go up to something like 20fps, but then the right eye view would glitch after a short time and become unplayable. Another BJ scene I have would just run at 14-18fps in VR with some models l like, so it was only sort of playable. The frame rate determines the refresh rate for an SR6 sycned with ToySerialController, so low frame rates make the motion less smooth.

What I figured out was if I used Intel Extreme Tuning Utility and just turned on the Speed Optimizer, which automatically overclocks the computer, the frame rate went way up.

I also have hyper threading disabled, so that is key as well.

All of a sudden, the mirror on or off makes no difference in the cowgirl scene, and the frame rate about 35fps. In desktop the it was over 100! The BJ scene was playing at about 35fps in VR, too. By removing the model's hair, I could get 72fps in VR. The motion of the SR6 in the BJ scene is really good now. Here are the settings I used.

[threads]
computeColliders=6
skinmeshPart=6
skinmeshPartMaxPerChar=6
applyMorphs=6
applyMorphMaxPerChar=6
#affinity=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
affinity=1,3,5,7,9,11,13,15,17
engineAffinity=1,2

[threadsVR]
computeColliders=8
skinmeshPart=8
skinmeshPartMaxPerChar=8
applyMorphs=8
applyMorphMaxPerChar=8
affinity=1,3,5,7,9,11,13,15
engineAffinity=1,2
[profiler]
enabled=0

boot config:

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
If I understood correctly, shouldn't you rather have 1,2,3,4,... and not 1,3,5,7... when hyper threading is disabled?
Intel Extreme Tuning Utility, not compatible with my 12700H, and in any case given the temperature it would be better to avoid
 
If I understood correctly, shouldn't you rather have 1,2,3,4,... and not 1,3,5,7... when hyper threading is disabled?
Intel Extreme Tuning Utility, not compatible with my 12700H, and in any case given the temperature it would be better to avoid
i was thinking the same, after disabling hyper threading the affinity should be in 1,2,3,4,5 order instead of 1,3,5,7. At least thats what the instructions says.
 
If I understood correctly, shouldn't you rather have 1,2,3,4,... and not 1,3,5,7... when hyper threading is disabled?
Intel Extreme Tuning Utility, not compatible with my 12700H, and in any case given the temperature it would be better to avoid
Good question. I’m just a simple cave man.
 
More testing has yielded confusing results. I tried changing the affinity to 1,2,3,4,5,6,7,8 and also noticed a typo in my desktop affinity where I had put a 17th core. I fixed that and then tested in Desktop and VR. I did not see an improvement. In fact, the cowgirl scene caused the glitching right eye in VR and the other scenes seems about the same. I switched back to 1,3,5,7,9,11,15 and tested again. This time the cowgirl scene was as bad as ever with the mirror on so the frame rate was 4-8fps. Turning off the mirror brought it up to about 35fps, but the mirror is there to watch that booty jiggle, so not having it is a bummer. I tested with the Speed Optimizer on, and then off, but I was not seeing any difference. I put back the settings, with the typo, and tested again with Speed Optimizer on and got back to 35fps in the cowgirl scene with the mirror on in VR. But then after a minute or so the right eye glitched out and the fps dropped to single digits. I turned off the mirror and the fps went back up to 35, even 70 at times, but the right eye was still glitching. When I quit VAM the glitchiness continued in Quest Link so I think this issue has something to do with Quest Link. I have a Quest 3 and I use a knock off Link cable which I've used for a year or so. I tested some of this yesterday before I had the break through with the short link cable that came with the Quest 3 just to see if there was any difference between the cables and there was not.
One other difference I noticed from my successful tests yesterday and this morning was that the CPU usage was at or near 100% when everthing worked, but on these last tests that didn't work, the CPU usage was between 40-60 with sometimes spikes to 70 as shown in Task Manager. Resource monitor shows the all 10 cores are working and the workload seems relatively evenly distributed.
Does Virtual Desktop do a better job of linking a Quest 3 to a PC that the native Quest Link Software?
 
- BUG

Using the Assembly-CSharp.dll that comes with this patch will BREAK the clothing creator inside VaM for allot of .duf files. (Vam will simply throw a generic unity error and cancels the import process).

Not an issue in itself as you can simply revert to the original .dll while you need to use the clothing creator, and then change back to the patched .dll once you are done, but still annoying and strange nonetheless.
 
More testing has yielded confusing results. I tried changing the affinity to 1,2,3,4,5,6,7,8 and also noticed a typo in my desktop affinity where I had put a 17th core. I fixed that and then tested in Desktop and VR. I did not see an improvement. In fact, the cowgirl scene caused the glitching right eye in VR and the other scenes seems about the same. I switched back to 1,3,5,7,9,11,15 and tested again. This time the cowgirl scene was as bad as ever with the mirror on so the frame rate was 4-8fps. Turning off the mirror brought it up to about 35fps, but the mirror is there to watch that booty jiggle, so not having it is a bummer. I tested with the Speed Optimizer on, and then off, but I was not seeing any difference. I put back the settings, with the typo, and tested again with Speed Optimizer on and got back to 35fps in the cowgirl scene with the mirror on in VR. But then after a minute or so the right eye glitched out and the fps dropped to single digits. I turned off the mirror and the fps went back up to 35, even 70 at times, but the right eye was still glitching. When I quit VAM the glitchiness continued in Quest Link so I think this issue has something to do with Quest Link. I have a Quest 3 and I use a knock off Link cable which I've used for a year or so. I tested some of this yesterday before I had the break through with the short link cable that came with the Quest 3 just to see if there was any difference between the cables and there was not.
One other difference I noticed from my successful tests yesterday and this morning was that the CPU usage was at or near 100% when everthing worked, but on these last tests that didn't work, the CPU usage was between 40-60 with sometimes spikes to 70 as shown in Task Manager. Resource monitor shows the all 10 cores are working and the workload seems relatively evenly distributed.
Does Virtual Desktop do a better job of linking a Quest 3 to a PC that the native Quest Link Software?
I have a kiwi design usb cable and don't use it. I bought Virtual desktop and an Asus tuf gaming router at 1 meter. It's so perfect ! If i pose the quest 3 and come back later, there is a bug with left eye, i go to the virtual desktop menu and come back to vam, in 1 sec the problem is solved.
 
Last edited:
I have a kiwi design usb cable and don't use it. I bought Virtual desktop and an Asus tuf gaming router at 1 meter. It's so perfect ! If i pose the quest 3 and come back later, there is a bug with left eye, i go to the virtual desktop menu and come back to vam, in 1 sec the problem is solved.
I bought and tested Virtual Desktop, and it's not good. The latency is pretty noticeable compared to the Quest Link using a cable, and the pretty much the same frame rate issues come up. It also glitches out a lot and is intolerable in VR.
 
I bought and tested Virtual Desktop, and it's not good. The latency is pretty noticeable compared to the Quest Link using a cable, and the pretty much the same frame rate issues come up. It also glitches out a lot and is intolerable in VR.
You gotta set it up right. Most people use it fine.
 
I bought and tested Virtual Desktop, and it's not good. The latency is pretty noticeable compared to the Quest Link using a cable, and the pretty much the same frame rate issues come up. It also glitches out a lot and is intolerable in VR.
If you are trying to use Virtual Desktop through a shared wifi, results are going to be from bad to nauseating. You need a dedicated router connected to your pc with an ethernet cable, with the oculus connecting wirelessly to that. I had already bought a second router since our old internet provider only provided a gateway and when connecting that way performance is great and the extra controls come in handy too.
If I forget to switch the connection in the quest and connect through the house wifi lag is insane, no matter if I am on VaM or any other program
 
the problem is that the jsons are huge and they are loaded bit by bit from a zipstream instead of unzipping them once and then loading them in one go. Unzipping the the .var first and then loading atoms would increase loading speeds 100x on a ssd, but would make every scene require a few gigs of ram at loading time.
Would that be a hard change to do and put in a plugin? I know its not for everyone because of additional ram requirements, but for those that have more ram than they can use, having a dramatic increase of loading speeds would feel like Christmas.

Especially in VR, where multitasking is not as easy as with desktop, reducing the time waiting in the headset is a big win.
 
Morphs impact performance, do clothes too? clothes in a scene impact the performances but does the number of clothes in .var stored in the addonpackages folder also have an impact
 
Last edited:
Morphs impact performance, do clothes too? clothes in a scene impact the performances but does the number of clothes in .var stored in the addonpackages folder also have an impact
it used to impact loading time because all clothing was recursively deactivated on scene load. I fixed it to only reload clothing once. It does not impact runtime, only when the clothing menu is OPEN it drops fps more if you have more clothing installed.
 
I'm having issues running the benchmark... it doesnt start and im fed up with it on a fresh install it works but my current folder it doesnt... ANYHOW anyone have any advice? Im not getting but on average 30~50 FPS (only 60+ in empty 1 person scenes) on desktop and 25~32 in VR (and about 50~ when looking away from any motion)

I notice my CPU never gets about 35~% even with the patch... I think I did something wrong if anyone can help?

CPU: i7-11700KF
GPU: RTX 3070ti
RAM: only 3200 (should prob upgrade)

[threads]
computeColliders=8
skinmeshPart=8
applyMorphs=8
skinmeshPartMaxPerChar=8
applyMorphMaxPerChar=8
affinity=1,3,5,7,9,11,13,15

[threadsVR]
computeColliders=8
skinmeshPart=8
applyMorphs=8
skinmeshPartMaxPerChar=8
applyMorphMaxPerChar=8
affinity=1,3,5,7,9,11,13,15

[profiler]
enabled=0

1727764003775.png
 

Attachments

  • 1727764270697.png
    1727764270697.png
    38.8 KB · Views: 0
I'm having issues running the benchmark... it doesnt start and im fed up with it on a fresh install it works but my current folder it doesnt... ANYHOW anyone have any advice? Im not getting but on average 30~50 FPS (only 60+ in empty 1 person scenes) on desktop and 25~32 in VR (and about 50~ when looking away from any motion)

I notice my CPU never gets about 35~% even with the patch... I think I did something wrong if anyone can help?

CPU: i7-11700KF
GPU: RTX 3070ti
RAM: only 3200 (should prob upgrade)



View attachment 414952
the benchmark sometimes doesnt start because there is a bug in the scene starting code. The benchmark creator put async code right at the start which NULL pointers out if the scene loads too fast and softlocks the whole scene.
I think your 3070ti is already saturated, 65% usage is already a very high number for vam.
 
Interestingly it seems to make no real difference for me when running benchmarks, neither for VR benchmarks nor desktop benchmarks.

My setup is a 5600X, RTX 3060 Ti, 16gb ram

Wireless VR benchmark with virtual desktop at "Medium": settings are 4032x2112 @ 90hz

Before the patch:
39.98 avg
24.64 min
52.32 max

After patch using 5600X example settings from the instructions
39.45 avg
24.64 min
67.75 max

I forgot to turn on monitor mirroring for the vr benchmark so you'll just have to take my word for it unfortunately..

Desktop benchmark with 1920x1001 @ 60hz:
Before the patch:
desktop before.png


After the patch (again using the example settings for the 5600x):
desktop after.png
 
I was finally able to use Benchmark after a clean install of VaM but after my results it seems like I did something wrong (spoiler: no difference in fps)

CPU: i7-10750H
GPU: RTX 2070 Max-Q (Laptop)
RAM: 24 GB


using version 12 of the patch

Skin Mesh ini:

[threads]
computeColliders=6
skinmeshPart=6
applyMorphs=6
skinmeshPartMaxPerChar=6
applyMorphMaxPerChar=6
affinity=1,3,5,7,9,11

[threadsVR]
computeColliders=6
skinmeshPart=6
applyMorphs=6
skinmeshPartMaxPerChar=6
applyMorphMaxPerChar=6
affinity=1,3,5,7,9,11

[profiler]
enabled=0

boot:

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

Before patch:

Captura de pantalla 2024-10-12 234952.png


after patch:

Captura de pantalla 2024-10-13 001038.png


not sure what is going on, I checked that all the files are in the correct folders and saved the changes in the ini and config file
 
I was finally able to use Benchmark after a clean install of VaM but after my results it seems like I did something wrong (spoiler: no difference in fps)

CPU: i7-10750H
GPU: RTX 2070 Max-Q (Laptop)
RAM: 24 GB


using version 12 of the patch

Skin Mesh ini:

[threads]
computeColliders=6
skinmeshPart=6
applyMorphs=6
skinmeshPartMaxPerChar=6
applyMorphMaxPerChar=6
affinity=1,3,5,7,9,11

[threadsVR]
computeColliders=6
skinmeshPart=6
applyMorphs=6
skinmeshPartMaxPerChar=6
applyMorphMaxPerChar=6
affinity=1,3,5,7,9,11

[profiler]
enabled=0

boot:

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

Before patch:

View attachment 419023

after patch:

View attachment 419024

not sure what is going on, I checked that all the files are in the correct folders and saved the changes in the ini and config file
You were gpu bottlenecked. Max-q gpu slogging it down. cpu patch wont fix it.
 
More testing has yielded confusing results. I tried changing the affinity to 1,2,3,4,5,6,7,8 and also noticed a typo in my desktop affinity where I had put a 17th core. I fixed that and then tested in Desktop and VR. I did not see an improvement. In fact, the cowgirl scene caused the glitching right eye in VR and the other scenes seems about the same. I switched back to 1,3,5,7,9,11,15 and tested again. This time the cowgirl scene was as bad as ever with the mirror on so the frame rate was 4-8fps. Turning off the mirror brought it up to about 35fps, but the mirror is there to watch that booty jiggle, so not having it is a bummer. I tested with the Speed Optimizer on, and then off, but I was not seeing any difference. I put back the settings, with the typo, and tested again with Speed Optimizer on and got back to 35fps in the cowgirl scene with the mirror on in VR. But then after a minute or so the right eye glitched out and the fps dropped to single digits. I turned off the mirror and the fps went back up to 35, even 70 at times, but the right eye was still glitching. When I quit VAM the glitchiness continued in Quest Link so I think this issue has something to do with Quest Link. I have a Quest 3 and I use a knock off Link cable which I've used for a year or so. I tested some of this yesterday before I had the break through with the short link cable that came with the Quest 3 just to see if there was any difference between the cables and there was not.
One other difference I noticed from my successful tests yesterday and this morning was that the CPU usage was at or near 100% when everthing worked, but on these last tests that didn't work, the CPU usage was between 40-60 with sometimes spikes to 70 as shown in Task Manager. Resource monitor shows the all 10 cores are working and the workload seems relatively evenly distributed.
Does Virtual Desktop do a better job of linking a Quest 3 to a PC that the native Quest Link Software?
"Does Virtual Desktop do a better job of linking a Quest 3 to a PC that the native Quest Link Software?"

hell yes it does, at least it's way more convenient and you can use the AV1 codec. Not only that, you don't need to install any quest software on your machine or drivers or anything. You can also completely bypass Steam VR with virtual desktop by creating a bat file and running vam like this: "C:\Program Files\Virtual Desktop Streamer\VirtualDesktop.Streamer.exe" "C:\VAM\VaM.exe"
 
@turtlebackgoofy yo!

I don't know if you're still cooking something on this. But we never know: I isolated a very very weird behavior recently. I'm currently cooking a test var with the situation I have and will create a thread around it to gather some "benchmarks".

I suspect it's related to atom count or simply atoms.

If I do a long story short: I've tested a scene, completely empty, two girls with your CPU patch. Naturalis on both of them and an animation to make things jiggle + 3 lights. I'm averaging at 195fps. If I just add the DreamStreetBedroom, I'm dropping to a 45fps average.

To test my theory, I removed the Bedroom and added ROM enviro of mine which is far more intensive (technically) than that Bedroom. I'm averaging at 165fps with it.

There is something wrong in there, and I don't know why. The only explaination I have is atoms.

So that there is no misunderstanding: this is NOT a report related to your patch. I've tested on my clean VAM used for "QA" prior to pushing each of my releases. I'm averaging at 125/140 instead of 195fps in the empty scene. But the effect is exactly the same.
I'm just reporting this if you potentially were looking for any type of performances issues for your patch.
 
@turtlebackgoofy yo!

I don't know if you're still cooking something on this. But we never know: I isolated a very very weird behavior recently. I'm currently cooking a test var with the situation I have and will create a thread around it to gather some "benchmarks".

I suspect it's related to atom count or simply atoms.

If I do a long story short: I've tested a scene, completely empty, two girls with your CPU patch. Naturalis on both of them and an animation to make things jiggle + 3 lights. I'm averaging at 195fps. If I just add the DreamStreetBedroom, I'm dropping to a 45fps average.

To test my theory, I removed the Bedroom and added ROM enviro of mine which is far more intensive (technically) than that Bedroom. I'm averaging at 165fps with it.

There is something wrong in there, and I don't know why. The only explaination I have is atoms.

So that there is no misunderstanding: this is NOT a report related to your patch. I've tested on my clean VAM used for "QA" prior to pushing each of my releases. I'm averaging at 125/140 instead of 195fps in the empty scene. But the effect is exactly the same.
I'm just reporting this if you potentially were looking for any type of performances issues for your patch.
as far as I understand it's just a unity asset you import? whats the poly count on that bedroom? I mean if it has as many polygons as the "cubes" in starfield, the GPU needs to render extra hard and that tanks the FPS.
 
as far as I understand it's just a unity asset you import? whats the poly count on that bedroom? I mean if it has as many polygons as the "cubes" in starfield, the GPU needs to render extra hard and that tanks the FPS.

The DreamStreetBedroom is a bundled asset in vanilla VAM. You can find it in the "Environments" category when you add an atom : )
It's super old, has probably a stupidly low end geometry (low polycount), textures and materials are barely on par with modern games.

ROM enviro, on the other end is mine. It has a far biggest polycount, dozens of shaders, including custom triplanar shaders, pbr shaders, transparency shaders, custom reflection probes and all that jazz. I'm using the "dynamic version" in that test (so no baking) to be somewhat in the same situation.

The logic would be that ROM would be the one with the bigger overhead. Which is not. And the only difference between the two is that, the bedroom is a "custom meshed atom" (with sub-atoms and everything). And mine is a Custom Unity Asset with simply geometry and graphical assets.

From a pure "asset" perspective (enviro, with models, materials and textures). This makes no sense. The only thing that would trigger that heavy frametime loss, for me, is the fact that the bedroom is a somewhat complex atom.

I'm leaning on that reason because working with VAMStory, i noticed a HUGE difference between a 40 buttons setup made with VAMStoryActions (where the plugin simply instanciate custom UI prefab), and a 40 buttons setup made with 40 different UIButton atoms. It's at a point, where that much button as atoms (UIbutton) can suck out almost 30fps on some PCs when VAMStory has almost no impact with a single atom.
 
@turtlebackgoofy yo!

I don't know if you're still cooking something on this. But we never know: I isolated a very very weird behavior recently. I'm currently cooking a test var with the situation I have and will create a thread around it to gather some "benchmarks".

I suspect it's related to atom count or simply atoms.

If I do a long story short: I've tested a scene, completely empty, two girls with your CPU patch. Naturalis on both of them and an animation to make things jiggle + 3 lights. I'm averaging at 195fps. If I just add the DreamStreetBedroom, I'm dropping to a 45fps average.

To test my theory, I removed the Bedroom and added ROM enviro of mine which is far more intensive (technically) than that Bedroom. I'm averaging at 165fps with it.

There is something wrong in there, and I don't know why. The only explaination I have is atoms.

So that there is no misunderstanding: this is NOT a report related to your patch. I've tested on my clean VAM used for "QA" prior to pushing each of my releases. I'm averaging at 125/140 instead of 195fps in the empty scene. But the effect is exactly the same.
I'm just reporting this if you potentially were looking for any type of performances issues for your patch.
Thats strange, i also use this patch since my pc is very weak. Few days ago i loaded a scene involving 3 females and 1 male with i guess around 2 lights? with same vanilla dream bedroom and i was getting 28 to 30 fps. This might not seem impressive but if i tell you that i got these fps with i5 2400 and rx 580 and 8 gb ram and still got this fps with that many atoms which is impossible to achieve for me without the patch (soft glutes and soft breasts off btw). I am also gonna test the scene similar to yours but this time including soft glute physics to see if i am also facing this issue or not. The results may clarify a bit if its related to patch or not if that may be helpful. i have to use 3 lights 2 female with soft on and dreambedroom is that right? or do i need to add something else to to make the scene similar to yours?
 
This is not the patch as mentionned in the post. The behavior is the same with or without the patch, the delta between the higher framerate and the lower is just different.
 
Back
Top Bottom