• Happy Holidays Guest!

    We want to announce that we will be working at reduced staffing for the holidays. Specifically Monday the 23rd until Jan 2nd.

    This will affect approval queue times and responses to support tickets. Please adjust your plans accordingly and enjoy yourselves this holiday season!

  • Hi Guest!

    Please be aware that we have released a critical security patch for VaM. We strongly recommend updating to version 1.22.0.7 using the VaM_Updater found in your installation folder.

    Details about the security patch can be found here.

Benchmark Result Discussion

RTX 3080, i7-8700, 16 GB Ram

Below are results for Non-Windowed 3840x2160 using an AOC C4008VU8 Monitor - 40" - 59.997 Hz AND
results for Non-Windowed 1920x1080 using the same AOC Monitor.

The results are expected and acceptable. I will either upgrade to a better single processing CPU for my LGA 1151 Intel slot MSI motherboard or upgrade to a new board to be able to run the latest Intel CPUs.

I've heard most people say that you don't need system RAM greater then 16 GB but when I am running most scenes my memory is about 13.5 GB / 16 GB. This is when I was using two GTX 970s SLI so I will have to see if there is a difference as I just installed the RTX 3080 and ran the benchmark.

When I was running VAM with the GTX 970s SLI and I ran the benchmark I recall my first scene score being avg 22 FPS as opposed to the 85 FPS with the RTX 3080.

Any comments regarding upgrades for my system would be appreciated.


Thanks,
AudioArtNexus
Benchmark-20220907-024143 - 3840x2160 Non-Windowed.png

Benchmark-20220907-030855 - 1920x1080 Non-Windowed.png
 
Desktop:

Automatic GPU OC via MSI Afterburner

- desktop - full hd.png


Oculus 2 via AirLink

Preparations:
I manually set headset refresh rate to 120 HZ (to avoid VSync problem MacGruber mentioned).
I also manually set render resolution to be fixed, It would change in between benchmarks and would cause problems in modded rendering API (see Using OpenXR + vrperfkit below).

1662575540143.png

Baseline:
It looks like GPU bottleneck for me.
Benchmark-20220907-164806 - baseline.png


I tried automatic GPU and CPU OC with MSI afterburner and AMD Ryzen Master.
GPU overclock was helpful but not enough to justify another benchmark.
CPU overclock actually gave me worse result. I thin it it because it set higher than default but constant clock on all cores, while (as I understand) VaM is more single threaded and automatic turbo boost manages better clocks on various threads - much more clock bump for cores used by VaM.

To further optimize my game performance I followed this video:
I had some problems with vrperfkit, more about that below.

Using OpenXR adapter with Per-game installation option:

This adapter bypass OpenVr API, so games can run without Steam VR, which gives substantial performance boost in most games that use Oculus runtime.

I had some problems running the game, changing content of VaM (OpenVR).bat to START "VaM" VaM.exe -vrmode OpenXR seems to fix the problem, but I don't know whether it actually does something or not.

I placed API dll file in VaM_Data\Plugins. I recombed keeping the original file as copy.

It gave me additional fps boost:
  • about + 15 FPS on average from baseline
  • in most scenes it was more like + 35 FPS from baseline

Benchmark-20220907-173136 - OpenXR.png


Using OpenXR + vrperfkit:

I used FFR (Fixed foveated rendering) and upscaling (in this case FSR).
I found that it is required to set fixed rendering resolution in you headset settings as well as to set proper renderScale in upscaling config. When renderScale was set to wrong fraction I couldn't run the game. The engine was unable to allocate rendering buffer.


I used Release 3 and unpacked files in the same folder as VaM.exe (should be the same location as VaM_Updater.exe)

It gave me additional fps boost:
  • about + 35 FPS on average from baseline
  • in most scenes it was more like + 60 FPS from baseline
There is one drawback, with my current upscaling settings most of the text is unreadable. The gameplay is fine though. I'm pretty sure it can be better with proper calibration of renderScale and sharpness.

Benchmark-20220907-180235 - FFR + FSR.png


My vrperfkit.yml configuration:

YAML:
# Upscaling: render the game at a lower resolution (thus saving performance),
# then upscale the image to the target resolution to regain some of the lost
# visual fidelity.
upscaling:
  # enable (true) or disable (false) upscaling
  enabled: true
  # method to use for upscaling. Available options (all of them work on all GPUs):
  # - fsr (AMD FidelityFX Super Resolution)
  # - nis (NVIDIA Image Scaling)
  # - cas (AMD FidelityFX Contrast Adaptive Sharpening)
  method: fsr
  # control how much the render resolution is lowered. The renderScale factor is
  # applied to both width and height. So if renderScale is set to 0.5 and you
  # have a resolution of 2000x2000 configured in SteamVR, the resulting render
  # resolution is 1000x1000.
  # NOTE: this is different from how render scale works in SteamVR! A SteamVR
  # render scale of 0.5 would be equivalent to renderScale 0.707 in this mod!
  renderScale: 0.7
  # configure how much the image is sharpened during upscaling.
  # This parameter works differently for each of the upscaling methods, so you
  # will have to tweak it after you have chosen your preferred upscaling method.
  sharpness: 0
  # Performance optimization: only apply the (more expensive) upscaling method
  # to an inner area of the rendered image and use cheaper bilinear sampling on
  # the rest of the image. The radius parameter determines how large the area
  # with the more expensive upscaling is. Upscaling happens within a circle
  # centered at the projection centre of the eyes. You can use debugMode (below)
  # to visualize the size of the circle.
  # Note: to disable this optimization entirely, choose an arbitrary high value
  # (e.g. 100) for the radius.
  radius: 0.75
  # when enables, applies a MIP bias to texture sampling in the game. This will
  # make the game treat texture lookups as if it were rendering at the higher
  # target resolution, which can improve image quality a little bit. However,
  # it can also cause render artifacts in rare circumstances. So if you experience
  # issues, you may want to turn this off.
  applyMipBias: true

# Fixed foveated rendering: continue rendering the center of the image at full
# resolution, but drop the resolution when going to the edges of the image.
# There are four rings whose radii you can configure below. The inner ring/circle
# is the area that's rendered at full resolution and reaches from the center to innerRadius.
# The second ring reaches from innerRadius to midRadius and is rendered at half resolution.
# The third ring reaches from midRadius to outerRadius and is rendered at 1/4th resolution.
# The final fourth ring reaches from outerRadius to the edges of the image and is rendered
# at 1/16th resolution.
# Fixed foveated rendering is achieved with Variable Rate Shading. This technique is only
# available on NVIDIA RTX and GTX 16xx cards.
fixedFoveated:
  # enable (true) or disable (false) fixed foveated rendering
  enabled: true
  # configure the end of the inner circle, which is the area that will be rendered at full resolution
  innerRadius: 0.4
  # configure the end of the second ring, which will be rendered at half resolution
  midRadius: 0.55
  # configure the end of the third ring, which will be rendered at 1/4th resolution
  outerRadius: 1.0
  # the remainder of the image will be rendered at 1/16th resolution

  # when reducing resolution, prefer to keep horizontal (true) or vertical (false) resolution?
  favorHorizontal: true

  # when applying fixed foveated rendering, vrperfkit will do its best to guess when the game
  # is rendering which eye to apply a proper foveation mask.
  # However, for some games the default guess may be wrong. In such instances, you can uncomment
  # and use the following option to change the order of rendering.
  # Use letters L (left), R (right) or S (skip) to mark the order in which the game renders to the
  # left or right eye, or skip a render target entirely.
  #overrideSingleEyeOrder: LRLRLR

# Enabling debugMode will visualize the radius to which upscaling is applied (see above).
# It will also output additional log messages and regularly report how much GPU frame time
# the post-processing costs.
debugMode: true

# Hotkeys allow you to modify certain settings of the mod on the fly, which is useful
# for direct comparsions inside the headset. Note that any changes you make via hotkeys
# are not currently persisted in the config file and will reset to the values in the
# config file when you next launch the game.
hotkeys:
  # enable or disable hotkeys; if they cause conflicts with ingame hotkeys, you can either
  # configure them to different keys or just turn them off
  enabled: true
  # toggles debugMode
  toggleDebugMode: ["ctrl", "f1"]
  # cycle through the available upscaling methods
  cycleUpscalingMethod: ["ctrl", "f2"]
  # increase the upscaling circle's radius (see above) by 0.05
  increaseUpscalingRadius: ["ctrl", "f3"]
  # decrease the upscaling circle's radius (see above) by 0.05
  decreaseUpscalingRadius: ["ctrl", "f4"]
  # increase the upscaling sharpness (see above) by 0.05
  increaseUpscalingSharpness: ["ctrl", "f5"]
  # decrease the upscaling sharpness (see above) by 0.05
  decreaseUpscalingSharpness: ["ctrl", "f6"]
  # toggle the application of MIP bias (see above)
  toggleUpscalingApplyMipBias: ["ctrl", "f7"]
  # take a screen grab of the final (post-processed, upscaled) image.
  # The screen grab is stored as a dds file next to the DLL.
  captureOutput: ["ctrl", "f8"]
  # toggle fixed foveated rendering
  toggleFixedFoveated: ["alt", "f1"]
  # toggle if you want to prefer horizontal or vertical resolution
  toggleFFRFavorHorizontal: ["alt", "f2"]
 
Last edited:
RTX 3080, i7-8700, 16 GB Ram

Below are results for Non-Windowed 3840x2160 using an AOC C4008VU8 Monitor - 40" - 59.997 Hz AND
results for Non-Windowed 1920x1080 using the same AOC Monitor.

The results are expected and acceptable. I will either upgrade to a better single processing CPU for my LGA 1151 Intel slot MSI motherboard or upgrade to a new board to be able to run the latest Intel CPUs.

I've heard most people say that you don't need system RAM greater then 16 GB but when I am running most scenes my memory is about 13.5 GB / 16 GB. This is when I was using two GTX 970s SLI so I will have to see if there is a difference as I just installed the RTX 3080 and ran the benchmark.

When I was running VAM with the GTX 970s SLI and I ran the benchmark I recall my first scene score being avg 22 FPS as opposed to the 85 FPS with the RTX 3080.

Any comments regarding upgrades for my system would be appreciated.


Thanks,
AudioArtNexusView attachment 154299
View attachment 154300
It will use up whatever amount of ram you have, the longer you play. After playing for an hour, opening up multiple scenes, Ive seen it eat 44.9gb of my 48gb of ram
 
11900k is overclocked to 5.3ghz all core, and hyper-threading turned off. GPU undervolted to just 1950mhz.
Benchmark-20220913-010444.png
.
 
with many many thanks to Holyscmidt for his moral and technical support I finally upgraded my i7-10700 bottleneck to a (not the k) i7-12700 and this is the result (also the gpu is without overclock, with its "normal" settings):
benchmark2022-09-24 161313.png
 
Last edited:
Using OpenXR adapter with Per-game installation option:

This adapter bypass OpenVr API, so games can run without Steam VR, which gives substantial performance boost in most games that use Oculus runtime.

I had some problems running the game, changing content of VaM (OpenVR).bat to START "VaM" VaM.exe -vrmode OpenXR seems to fix the problem, but I don't know whether it actually does something or not.

I placed API dll file in VaM_Data\Plugins. I recombed keeping the original file as copy.

It gave me additional fps boost:
  • about + 15 FPS on average from baseline
  • in most scenes it was more like + 35 FPS from baseline
How did you get VAM to run with this?? I cant get it working. Keeps giving me the "OpenComposite Error: Cannot re-load actions!", then crash before it starts.
 
How did you get VAM to run with this?? I cant get it working. Keeps giving me the "OpenComposite Error: Cannot re-load actions!", then crash before it starts.
with my "old" rift-s I could play vam without issues and absolutely without any steam crapware witout needing to modify anything (I was simply unistalling steam and steam-vr and deleting any related register key). With zuckiniberg quest 2 and since more than one year with my actual reverb g2 it is unfortunately an obliged sad different situation.
 
Last edited:
with my "old" rift-s I could play vam without issues and absolutely without any steam crapware witout needing to modify anything (I was simply unistalling steam and steam-vr and deleting any related register key). With zuckiniberg quest 2 and since more than one year with my actual reverb g2 it is unfortunately an obliged sad different situation.
Do you use Airlink or Virtual Desktop to stream VAM to Quest 2? Because with VD you can run VAM without SteamVR. That's what I do.
 
Do you use Airlink or Virtual Desktop to stream VAM to Quest 2? Because with VD you can run VAM without SteamVR. That's what I do.
sorry brother, it's my fault the misunderstanding, I did never get a quest oculus headset no quest but I said that I have (Oculus) rift-s for wich there is no need to install anything else than oculus runtime (for playing VAM!). When I bought my first headset (rift CV1) I was also installing the infamous crapware steam vr (because I was idiot not to check if it was really a priority to install steam VRand because I was playing other games ... by Steam) and I was keeping it even with the very good upgrade (the rift-s) ... of course I had a lot of issues keeping steam vr installed in conflict with oculus runtime. Till I tried to unistall the full steam crapware, with immediate solution for all the fucking problems I was experiencing (even with Illusion games VR).

Now (since more than one year) I am happy user of a fantastic HP Reverb g2. But I have no alternative but to use steam and steam VR for playing Vam. Without issues... probably because HP has a better software sinergy with the steam gang.

And sorry but nope, I will never buy a zuckiniberg quest toy.

ps: the "old" rift-s works only through a display port connection cable.... similar to the reverb g2 that of course gives me a splendid graphic quality and practically with the same graphic power need as my old rift-s.
....all this I can honestly confirm besides all the fake theories I was reading and that still I can read on some forums. I used for a long time the reverb g2, without issues with a modest gtx1070 and a i7-10700.
 
Last edited:
How did you get VAM to run with this?? I cant get it working. Keeps giving me the "OpenComposite Error: Cannot re-load actions!", then crash before it starts.

(...) I also manually set render resolution to be fixed, It would change in between benchmarks and would cause problems in modded rendering API (see Using OpenXR + vrperfkit below). (...) I found that it is required to set fixed rendering resolution in you headset settings as well as to set proper renderScale in upscaling config. When renderScale was set to wrong fraction I couldn't run the game. The engine was unable to allocate rendering buffer.
 
Oh ok, Im on the Varjo Aero, so dont have variable rendering. Maybe the combination of VAM+open composite+Varjo just isnt compatible. have It working on other games. Might have to just stick with openvr fsr.
 
I bought all the HBM GPU's from AMD (still have my R9 Fury and Vega 56, sold the VII because the crazy amount of money it made on ebay). They were pretty much experimental stuff, but I like that kind of stuff.

Less turdy 1080P
View attachment 111859

it seems to make a huge difference in how much stuff you have in your install....

New Stuff:

swapped my 5900X with a 7900X.
7900X, X670E Aorus Master, 32GB 6000MHz CL30, same 3090

Benchmark-20221001-102229.png
 
For the upcoming 13th Gen Intel / Ryzen 7000 CPUs I think it's important to warn that VAM does have a 300 frames per second limit.
This is only relevant for desktop mode because in VR this limit is ignored and controlled by the VR software you use.

This could lead to false results the closer you get to 300 fps. This would be similar to running a benchmark with VSync on and your are now limited to your monitors refresh rate (typically 60 Hz / fps) - except this limit is higher.
Actually some high end current gen results could are already be affected by this when doing 1080p runs.
In theory if the result shows an Overall max1% of 300 or higher the limit has affected the result. Even if it was just for a split second.

@MacGruber
As far as I could tell by looking at the benchmarks code this FPS-limit is not disabled? Correct me if I'm wrong.
There could be a reason / side-effects from it that I do not know.

Documentation is here:
https://docs.unity3d.com/ScriptReference/Application-targetFrameRate.html

Now initially I thought this could be easily fixed by adding the line:
Code:
Application.targetFrameRate = -1;
to a Benchmark Update - but then I noticed there are some buffers that assume a max 300 fps.
Check Benchmark.cs line 1307:
Code:
private const int BUFFER_SIZE = 300*75; // Assuming a max of an average 300fps for a 75 second scene
So I'm not sure how just removing the limit would affect this.

Of course this is irrelevant in real world use, but it's important for correct CPU performance comparison.

I've attached a very simple Plugin that only disables the limit. Just throw it in \Custom\Scripts\ and load it once before running the benchmark.
FrameRateControl from MacGruber Essentials does the same.
Note the FPS counter in user preferences could fail to display the number correct - it's just to long/high. Use the performance monitor.
VAM FPS counters.jpg
 

Attachments

  • unlimitTargetFrameRate.cs
    168 bytes · Views: 0
Last edited:
For the upcoming 13th Gen Intel / Ryzen 7000 CPUs I think it's important to warn that VAM does have a 300 frames per second limit.
This is only relevant for desktop mode because in VR this limit is ignored and controlled by the VR software you use.

This could lead to false results the closer you get to 300 fps. This would be similar to running a benchmark with VSync on and your are now limited to your monitors refresh rate (typically 60 Hz / fps) - except this limit is higher.
Actually some high end current gen results could are already be affected by this when doing 1080p runs.
In theory if the result shows an Overall max1% of 300 or higher the limit has affected the result. Even if it was just for a split second.

@MacGruber
As far as I could tell by looking at the benchmarks code this FPS-limit is not disabled? Correct me if I'm wrong.
There could be a reason / side-effects from it that I do not know.

Documentation is here:
https://docs.unity3d.com/ScriptReference/Application-targetFrameRate.html

Now initially I thought this could be easily fixed by adding the line:
Code:
Application.targetFrameRate = -1;
to a Benchmark Update - but then I noticed there are some buffers that assume a max 300 fps.
Check Benchmark.cs line 1307:
Code:
private const int BUFFER_SIZE = 300*75; // Assuming a max of an average 300fps for a 75 second scene
So I'm not sure how just removing the limit would affect this.

Of course this is irrelevant in real world use, but it's important for correct CPU performance comparison.

I've attached a very simple Plugin that only disables the limit. Just throw it in \Custom\Scripts\ and load it once before running the benchmark.
FrameRateControl from MacGruber Essentials does the same.
Note the FPS counter in user preferences could fail to display the number correct - it's just to long/high. Use the performance monitor.
View attachment 161322
of course I was not understanding some technical elements in your post (sorry for my digital ignorance) ... what I would be curious to know is: about to unlock a framerate limit for dektop mode does it generally positively affect even more modest hardware performance such as old generations cpu? (I guess not but I ask you to be sure) ... thanks :)
 
Just finished the build, completely non-optimized currently. My 6400mhz RAM is running at 4800mhz just as an example. So, hopefully once I get her all tweaked and happy I'll have even better results. Ryzen 9 7900x with a 3090.

Benchmark-20221002-025547.png
 
New Stuff:

swapped my 5900X with a 7900X.
7900X, X670E Aorus Master, 32GB 6000MHz CL30, same 3090

View attachment 161323
Also, your results destroyed mine. I doubt that just the RAM speed is going to make up that difference. The main thing I noticed though is that you were running Windowed, and I was Full Screen? Would you mind re-running your benchmark but do it in Full Screen? I want to see how far behind I am :) Also, have you done any OC yet on either GPU/CPU?
 
@keycode
No, like you already guessed, unlocking this limit will have no benefit. With modest hardware you won't come near it.
One could compare this to a 300 speed limit on the road. Only relevant when measuring performance of race cars under specific conditions.
But with the limit when we get faster hardware over the years - sooner or later all results will max out at 300 frames per second.

@Bob Nothing
When comparing both 7900X results the RenderTimes (GPU) look similar. So the 3090 numbers are normal.
However the PhysicsTime are to low hinting to a CPU related problem.

HiddenSign average PhysicsTime: 11,35 ms total / 7 tests = 1,621 ms average
Bob Nothing average PhysicsTime: 28,98 ms total / 7 tests = 4,14 ms average
Doubt it's just the RAM speed/timings too. That's like 60% CPU performance missing. Think I'd run CineBench or other generic CPU Benchmarks to compare with online results. Just to rule out VAM being weird. Did you run from a clean VAM install?
Hope you find a solution.
 
I use the EXPO settings from my ram, so I just selected it in the Bios.

A clean install for benchmarking is importand. What cooling do you use? Can you monitor the clocks while running the benchmark?
 
@keycode
No, like you already guessed, unlocking this limit will have no benefit. With modest hardware you won't come near it.
One could compare this to a 300 speed limit on the road. Only relevant when measuring performance of race cars under specific conditions.
But with the limit when we get faster hardware over the years - sooner or later all results will max out at 300 frames per second.

@Bob Nothing
When comparing both 7900X results the RenderTimes (GPU) look similar. So the 3090 numbers are normal.
However the PhysicsTime are to low hinting to a CPU related problem.

HiddenSign average PhysicsTime: 11,35 ms total / 7 tests = 1,621 ms average
Bob Nothing average PhysicsTime: 28,98 ms total / 7 tests = 4,14 ms average
Doubt it's just the RAM speed/timings too. That's like 60% CPU performance missing. Think I'd run CineBench or other generic CPU Benchmarks to compare with online results. Just to rule out VAM being weird. Did you run from a clean VAM install?
Hope you find a solution.
No, it's not a clean VAM or OS install. That said, I did run Cinebench and I got 28344 for multicore and 1973 for single core.
 
No, it's not a clean VAM or OS install. That said, I did run Cinebench and I got 28344 for multicore and 1973 for single core.
Found 29516 multi- and 2041 single-core for Cinebench R23 here. A bit higher but within margin of error. *meh* Looks like it was just VAM related then. ?
 
Back
Top Bottom