Improving FPS in VaM for newbies. Advanced users please share your own tips and tricks.

Umh well, not really :p

There are efficient and un-efficient ways to render polygons or simply, a frame. The GPU has nothing to do with that. I mean, of course the GPU is limited by the fact that it has a maximum amount of operations it can process per cycle. But for instance, evolutions like the ones seen in UE5 with geometry virtualization can be done with our current GPUs.
Switching the rendering engine can have a really big impact on how fast the exact same model can be rendered in realtime.

And some of the assets available are not "poorly optimized". They are scans. This is the worst thing you could put directly into an engine. I got one or two like these in my beds/chairs packs even tho I always check the polycount and never go above 100k (which is already insane for a bed or a chair)... and I won't do that again unless the engine is suddenly able to engulf millions of polys without hitting the framerate badly.
 
How much of the performance relies on the GPU? (hair, Sim clothing etc). I am about to take delivery of a new rig with two RTX 6000 cards, a Threadripper 3990x and 128meg 4000mhz RAM (obvioulsy not built for VaM alone!) .... I'm hoping it will fly, especially with v2.0 if it allows for more multi threading.
 
Dude... :|

Sorry if it's your second post on the forums but... I hate posts like these. The cards, CPU and RAM alone are worth over 15k euros. You know exactly how it's gonna fly.

The limitations of VaM 1.x still stands, but if you buy this kind of hardware that is litteraly worth 7 high end gaming PCs, you perfectly know that VaM is gonna run smoothly.

Don't get me wrong, I'm not against showing off a great hardware setup. But don't play the guy that doesn't know what he's gonna get, especially when it comes to this kind of insane amount of money.

Besides that... welcome on the forums ! : D
 
Well 1.X VaM would likely perform better on cheaper Intel system with a single RTX 2080Ti card.

2.X should unlock more multithreaded performance. GPU will still be a large factor, possibly more-so if I need to move skin physics to GPU (I plan on experimenting with both massive threaded CPU physics and GPU physics systems for skin and decide which is better after benchmarking).
 
Just for reference, this benchmark probably predicts VaM 1.X CPU performance the best:


You will notice how Intel CPUs fair a lot better here. It is because Unity Physx has main thread bottleneck and VaM uses a ton of Physx objects for skin collision. Hair/Cloth sim and collision are run on GPU, but do demand a slight bit on CPU because the CPU colliders have to be passed to the GPU for simulation.

I expect 2.X to be more in line with the general CPU benchmarks the measure multi-threaded performance:

But there is still likely to be some main-thread contention just because that is how Unity operates for some things. I won't know for sure until I get into the physics phase of 2.X work.
 
How much of the performance relies on the GPU? (hair, Sim clothing etc). I am about to take delivery of a new rig with two RTX 6000 cards, a Threadripper 3990x and 128meg 4000mhz RAM (obvioulsy not built for VaM alone!) .... I'm hoping it will fly, especially with v2.0 if it allows for more multi threading.

64 cores Threadripper, but all the CPU physics are still only running on ONE core right now, while other 63 cores sit idle :LOL:

Nice humble brag I think it is called.
 
Last edited:
Just for reference, this benchmark probably predicts VaM 1.X CPU performance the best:


You will notice how Intel CPUs fair a lot better here. It is because Unity Physx has main thread bottleneck and VaM uses a ton of Physx objects for skin collision. Hair/Cloth sim and collision are run on GPU, but do demand a slight bit on CPU because the CPU colliders have to be passed to the GPU for simulation.

I expect 2.X to be more in line with the general CPU benchmarks the measure multi-threaded performance:

But there is still likely to be some main-thread contention just because that is how Unity operates for some things. I won't know for sure until I get into the physics phase of 2.X work.

FYI.

All those Passmark CPU benchmarks were rigged in V10 update to favour Intel CPUs (some say paid for by Intel).

Before V10 update, AMD Ryzen were equal or beating most Intel. It was all over many tech sites at the time it happened just after Ryzen 3000 launched last year.

Don't trust that site.

https://www.notebookcheck.net/AMD-o...ces-thanks-to-version-10-update.457506.0.html
 
Well 1.X VaM would likely perform better on cheaper Intel system with a single RTX 2080Ti card.

2.X should unlock more multithreaded performance. GPU will still be a large factor, possibly more-so if I need to move skin physics to GPU (I plan on experimenting with both massive threaded CPU physics and GPU physics systems for skin and decide which is better after benchmarking).

Is there some way you could move all the skin/hair etc. physics to a secondary GPU?

So we could reserve a high-end GPU for frame-rate only (especially VR) while moving the physics to a secondary, cheaper, older GPU maybe.

This would not require dead SLI type tech, just some GPU-compute type commands.

It's very obvious even from this thread that things like hair physics really kill the frame-rate even on a single character scene.
 
64 cores Threadripper, but all the CPU physics are still only running on ONE core right now, while other 63 cores sit idle :LOL:
That's not exactly what I said. Unity uses all cores in bursts for physics. Unity also uses threads for other things. VaM itself also uses a lot of threads and probably every core will be doing something. The issue is there is a main thread bottleneck and many things in Unity cannot run on threads because they did not write them to be threadsafe.

Also - RE: Passmark CPU single-thread benchmark. It doesn't matter if it is rigged in this case. It is closely representative of what you will get for performance from VaM in 1.X. VaM runs better on Intel CPUs right now.
 
Is there some way you could move all the skin/hair etc. physics to a secondary GPU?

So we could reserve a high-end GPU for frame-rate only (especially VR) while moving the physics to a secondary, cheaper, older GPU maybe.

This would not require dead SLI type tech, just some GPU-compute type commands.

It's very obvious even from this thread that things like hair physics really kill the frame-rate even on a single character scene.
I wish there was a way to use 2nd GPU for compute, but there does not appear to be a way to do this right now. There is also slight issue in that results of the physics sim on 1st GPU would still have to be passed to the other GPU to render or passed back to CPU to consolidate results. GPU memory bandwidth can also become an issue and performance limiter.
 
Dude... :|

Sorry if it's your second post on the forums but... I hate posts like these. The cards, CPU and RAM alone are worth over 15k euros. You know exactly how it's gonna fly.

The limitations of VaM 1.x still stands, but if you buy this kind of hardware that is litteraly worth 7 high end gaming PCs, you perfectly know that VaM is gonna run smoothly.

Don't get me wrong, I'm not against showing off a great hardware setup. But don't play the guy that doesn't know what he's gonna get, especially when it comes to this kind of insane amount of money.

Besides that... welcome on the forums ! : D

Thanks for the welcome.

On the contrary....I have no idea of how the multithread/core of the TR CPU will perform. For all the reasons stated above....VaM is CPU hungry and currently only really takes advantage of single core, Intel CPUs. The clock speed on the TR is limited (to run so many cores without blowing up), so if VaM is dependent on this then a cheap intel gaming CPU would be better. If VaM takes advantage of the GPUs aswell as CPU, then great, it should be fine.

For the record, this is not some kind of rich man's toy to play around with VaM on. I make my living on this hardware (believe me, I would rather not be spending this amount of money).
 
Last edited:
64 cores Threadripper, but all the CPU physics are still only running on ONE core right now, while other 63 cores sit idle :LOL:

Nice humble brag I think it is called.

That's the case now, but 2.0 will utilise more cores/threads as @meshedvr has stated. I'm not tring to brag...this is the machine that pays my bills. Just hoping that it will also perform well in my down time. We all know it's clock speed/single core dependant atm, my thoughts are more to v2.
 
Just for reference, this benchmark probably predicts VaM 1.X CPU performance the best:


You will notice how Intel CPUs fair a lot better here. It is because Unity Physx has main thread bottleneck and VaM uses a ton of Physx objects for skin collision. Hair/Cloth sim and collision are run on GPU, but do demand a slight bit on CPU because the CPU colliders have to be passed to the GPU for simulation.

I expect 2.X to be more in line with the general CPU benchmarks the measure multi-threaded performance:

But there is still likely to be some main-thread contention just because that is how Unity operates for some things. I won't know for sure until I get into the physics phase of 2.X work.

Thanks for taking the time to clarify this....much appreciated.
 
That's not exactly what I said. Unity uses all cores in bursts for physics. Unity also uses threads for other things. VaM itself also uses a lot of threads and probably every core will be doing something. The issue is there is a main thread bottleneck and many things in Unity cannot run on threads because they did not write them to be threadsafe.

Also - RE: Passmark CPU single-thread benchmark. It doesn't matter if it is rigged in this case. It is closely representative of what you will get for performance from VaM in 1.X. VaM runs better on Intel CPUs right now.

Oh right... now I think I understand.. so it is basically some main "dispatcher" type thread (which spawns off the seperate physics threads) which is the bottleneck then. So I guess this main thread is doing a lot of things then. Sounds like a Unity improvement could be made there to fix this bottleneck somehow. Like fixing those other non-threadsafe parts of code. I also hear that Unity core code is not open-source (unlike Unreal engine) so I presume you don't have access to it either to fix those yourself. Although I presume you have made enough money with VAM already that you could actually afford to buy a core engine source license.
 
I don't want to start over with a new source engine as that would set me back months or even years. Unity has made huge improvements and their new DOTS system will allow me to make my own multithreaded physics, or I can attempt to use their new ones that use this system. But I'm probably going to dump Physx, where the main issue is with 1.X main-thread bottleneck. Don't stress too much. I'm confident I can mold newer versions of Unity to my liking. While it isn't open source, you can now nearly replace all the internals with your own stuff when needed.
 
Well 1.X VaM would likely perform better on cheaper Intel system with a single RTX 2080Ti card.

2.X should unlock more multithreaded performance. GPU will still be a large factor, possibly more-so if I need to move skin physics to GPU (I plan on experimenting with both massive threaded CPU physics and GPU physics systems for skin and decide which is better after benchmarking).

Yes yes yes yes. Me and my 3900x thank you for that work (probably will be a Zen 3 CPU/3080ti or whatever by the time VAM v2.0 is out though :) )

T
 
@Dre

Some bad news man . . . . . I wish I could tell you that hardware will perform amazingly within VAM and you'll never have to worry about framerates ever again :D

Sadly, like Meshed stated, the bottleneck is going to be the CPU for now. Even a hefty CPU like the 3990x. I run its little brother ( 3970x ), a bunch of Ram and a 2080ti ( like you, not for VAM specifically ) and I still suffer with FPS issues. Tip: Turn your AC down or get a fan when your machine is under load because these guys displace an awful lot of heat.

The biggest culprit is the Soft Body Physics. That alone is the difference between 15FPS and 50FPS for me. Some of the more complex scripts certainly have an impact as well but SBP is the biggest issue.

So while the current generation of VAM might not make use of all your shiny new hardware, we'll get there. I think once / if Meshed can run the physics calcs across multi-core CPU's or a GPU, we'll be fine.
 
@Dre

I think once / if Meshed can run the physics calcs across multi-core CPU's or a GPU, we'll be fine.

@Nehuman: Ya that's what I'm looking forward to (VAM 2.0 is slated to have multi core use). And yes I've seen 80c with VAM loads with my 3900x ( its sitting at 60c now running a 7 days server, 7 days, a few programs and about 10 chrome tabs), only thing that's gotten it that hot before is CPU stress testing. So VAM is apparently a good stress test. :)

Cheers, Drew
 
It's been mentioned before on Reddit, but RAM is major bottleneck to getting decent FPS. I've been playing with overclocks and timings on my ram to try to get it running at the advertised 3800mhz and 14-15-15-35. Running at full tilt i get about 40fps more running the CPU bench than the stock 'Optimized' Bios setting which defaults the RAM speed to DDR 1066 (2132). Even clocking it down from 3800 to 3600 I get 7-10 FPS penalty. VAM loves fast RAM it seems.

BTW, anyone running a TRX40 motherboard, I would definitely recommend GSkill RAM over Corsair. I sent the Corsaire RAM back as I couldn't get it running above 3200.
 
Last edited:
GSkill produce excellent RAM yeap. I've been buying this brand for years now, and I've never been disappointed.

But that's not specific to VaM tho, every game would definitely get a ton FPS from the RAM clocked at twice the speed haha
That's strange that the bios default a 3800 mhz ram at 2k. Checking if you RAM is also in dual channel mode or not could have an impact :)
 
Because I create motion capture scenes that rely heavily on keeping in time with the music, ensuring my scenes don't overtax everyone's computers is really important. Unfotunately, this means my scenes suffer in quality when I want to make them more elaborate. The more atoms I add, the more I have to work on lowering the quality of a models hair or dropping iterations on sim clothing. My biggest issue now is lighting. I like using lights for effects; different colors flashing to put some intensity into a scene or create a specific atmosphere.

However, when I want to use something that will tax a users machine, I often have to sacrifice quality in other areas. Some things I do to keep up the FPS in a scene involves messing with hair settings, clothing settings, light quality, collisions and ensuring props aren't being overlapped by too many light sources. I use spots instead of point lights, and sometimes turn off some of them casting shadows.

In my experience most FPS loss is due to physics; hair, sim clothing and person atoms really impact your perfomance.

HAIR
My first solution is to go to a model's hair physics and turn Curve Density and Hair Multiplier to 12.
1591483033332.png
Using oeshii's awesome madmoiselle hair as an example, in my desktop mode I have ~92 fps with the default settings of 24 and 24 respectively. If I change them both to 12, my FPS increases to ~131. That's HUGE!
1591483319049.png
To make up the difference in quality (IMO the hair look fine this way), I go to the looks tab and increase width by about 0.005-0.010. It's a bit better, but sometimes it can make the hair look worse. In my scenes, it makes little difference as the constant movement often distracts from the minor details.

In this particular instance, I also drop the Iterations (in the Physics Tab) to 1, and my FPS is now ~138.
1591483802412.png
Dropping hair iterations makes the hair limp. But I fix that by reducing the weight of the hair (in this case from 1.5 to 1). Increasing the Snap can also fix this in many cases.

CLOTHING
1591484287583.png
I've zoomed out a bit to show the clothing and you can see that being just a little bit further away from the model increased my FPS to ~200. So just keep that as a baseline for now.
Adding four pieces of sim clothing has dropped my FPS to ~140.
1591484414505.png
One quick solution is to turn off sim on undergarments. This increases my FPS to 169.
1591484898235.png
However, if you don't want to sacrifice the ability to quickly undress them the other option is to drop iterations on all sim enabled clothing.

With Sim Enabled on all the clothing, dropping the iterations to 1 on the undergarments only adds a tiny bit of FPS. However there is little to no visual limpness which is good. However, dropping the iterations on the skirt and shirt make them very limp and they look really awful. But... we did get a good amount of FPS back, now up to ~175 from the 140 earlier.
WzvJlKP.png
You can fix this; similarly to how I fixed the hair.
I just increase the stiffness from 0.5 to 1. Looks fine to me; almost no visual difference.
gNTdI5I.png
Shirts and dresses don't always work as well as these garments, but in this case the shirt looks absolutely fine with just the stiffness maxed.
fP4NaQW.png
Again, these quick fixes do not work for every piece of sim clothing, but you can mess around with weight, stiffness and sometimes the distance scale depending on the garment.

LIGHTING:
From what I've observed, the more lights you have and the more objects you have interacting with those lights the lower your FPS drops.
When it comes to FPS, I've found that spot lights have a great balance between performance and quality. Though directional lights are also great for overall lighting of a scene.

I've also learned that forced vertex lights are great for general lighting. I've discovered a sweet spot when it comes to lighting basic scenes, and that is using a max of 3 lights, often spots fixated on the primary focus of the scene form different angles with varying intensities. In most cases, that focus is 1-3 person atoms.

Here are a few screenshots with 4 different spot lights, set to red, green, blue and white. Global lighting is set to 0. Each pic has the Pixel Light Count increased by one up to the number of lights (1-4).
WSIahKO.png
LM1yu8C.png
Cu2rzWI.png
ugegYWn.png
You can see the big difference between the images that having your pixel count up changes the quality quite a lot. You may also notice how my FPS dropped a lot between 3 and 4. This demonstrates the importance of limiting how many overlapping lights should be the max in a scene. You probably also noticed the difference between 2 and 3 is negligible, also demonstrating that 3 is the sweet spot with overlapping lights.

It keeps going down, here's an example of 6 lights.
vTEjJ3j.png
More lights can make a scene look amazing, but while VaM is limited in how it handles it's resources, creators should probably stick to 3 lights overlapping on a single object. Thanks to kemenate and hazmhox for their input.

Different light type impact FPS differently, generally, Spot lights and Directional lights impact the least when used properly and Point Lights impact the most. As far as I've seen, area lights do nothing in VaM.
ForcedPixel lights impact FPS way more than ForcedVertex lights. ForceVertex only work as Point Lights and they do not cast shadows. However, IMO they actually look better as point lights than ForcedPixel lights with shadows disabled and still use less FPS.

Shadow resolution also has a impact on FPS. Each light has its own setting. These don't impact too much when increased on their own, but with a group of lights it makes a bit of difference. IMO the medium setting is very slightly different than very high and in many cases you don't need all the lights set on a higher quality. You can often adjust the shadow strength just slightly for each light to get a similar result without increasing the shadow resolution.

"Pro Tip: One can use (transparent) Image Panels for some fake Light and Shadow effect for screenshots. For example this "Spotlight Background" " -kemenate

Also see hazmox lighting guide here
what an amazing post ! Thank you !
 
Can someone help me out... I have a i7 9700, RTX 2080 super and 32 GB ram. Oculus Quest with link.
In VR I can only run ultra low on 70 FPS in low it drops to 35. Any higher drops under 25.
In desktop mode it runs 125 FPS with all settings max.
And switching soft body physics on and off doesn't change anything in my FPS.
Just a simple 2 person scene.
I remember that my older gaming laptop was better with a RTX 2070 mobile..
Is there something for me to check out for better performance or is this it for a RTX 2080 super?
 
And is there a difference connecting the headset with USB C on the motherboard or directly on the videocard with displayport?
 
Is there some way you could move all the skin/hair etc. physics to a secondary GPU?

So we could reserve a high-end GPU for frame-rate only (especially VR) while moving the physics to a secondary, cheaper, older GPU maybe.

This would not require dead SLI type tech, just some GPU-compute type commands.

It's very obvious even from this thread that things like hair physics really kill the frame-rate even on a single character scene.
I don't know if it makes a difference as i haven't tested it but you can actually set PhysX to use a secondary card (or CPU if you're a madman) in the Nvidia Control Panel, but maybe Unity PhysX doesn't care about that.
 
I don't know if it makes a difference as i haven't tested it but you can actually set PhysX to use a secondary card (or CPU if you're a madman) in the Nvidia Control Panel, but maybe Unity PhysX doesn't care about that.
Does VaM use both cards if you have two installed with SLI set up?
 
Back
Top Bottom