SteamVR

SteamVR

Travelller Jun 3, 2020 @ 11:05am
SteamVR and Nvidia's Supersampling (& render resolution)
(Note: also posted under Hardware)

I'm still adjusting to the VR world and the Index is my first HMD. As I'm used to the standard monitor and the relation of the monitor's fixed refresh rate and (full-image) super-sampling (SS), I'm struggling to understand how to tweak things in the VR world.

We have so many variables to contend with including:
Display(s) native resolution (Index: 1440x1600)
Render Resolution (my default 2016 x 2240)
SteamVR SS (my default 124%)
Steam Screenshots ranging anywhere from 1782x1782 down to 1019x1019
Reprojection and the effect in VR

Apart from the above, I now see that Nvidia offers VRSS (Variable-Rate SS) for VR gaming in their manage 3D settings[nvidia.custhelp.com]

I'm looking to find a good balance between visual quality and frame rates but I don't even know where to start when I have all of the above (as well as in-game settings). I do understand that render resolution needs to be greater than native resolution due to the inherent properties of VR displays & lens systems but I don't know how much more.

I'm less read-up on SteamVR's SS but I assume it has a similar goal as Nvidia's. I prefer the idea of concentrating SS at the HMD's sweet spot because we know that the lenses won't allow sharp imaging in the peripheral anyway... .

I'd very much appreciate it if someone could make suggestions on how to best combine nVidia's option(s) along with SteamVR - preferably for the Index (or similar HMDs).
< >
Showing 1-10 of 10 comments
Bob Loblaw Jun 3, 2020 @ 12:43pm 
Originally posted by Travelller:
I do understand that render resolution needs to be greater than native resolution due to the inherent properties of VR displays & lens systems but I don't know how much more.

On the vive it's 40% more, and you'll notice your render resolution is 40% more than your index's hardware resolution. I have no idea why it's not adding another 24% per your steamvr SS.

It used to be the simplest approach was to turn up SS, when doing so doesn't cause reprojection. Turn it down if you get too much reprojection. I don't know if the kinks have been worked out of VRSS yet, but someone else surely will.
--ranXerox-- Jun 3, 2020 @ 5:12pm 
I have a 2080ti, set the index at 250%ss and I leave the vrss at always on. I'm pretty happy with this setting but of course the higher end games I have a MS delay of about 12-24.

I would say increase supersampling until your game is roughly under 12-18ms. if you notice alot of unusual artifacts, then drop SS down to get your milliseconds under 12ms.

use the performance graph as a guide. you can activate it on the steamVR pop up. right click.
Last edited by --ranXerox--; Jun 3, 2020 @ 5:13pm
Travelller Jun 5, 2020 @ 10:59am 
Originally posted by Bob Loblaw:
...It used to be the simplest approach was to turn up SS, when doing so doesn't cause reprojection. Turn it down if you get too much reprojection. I don't know if the kinks have been worked out of VRSS yet...
Thx for taking the time to provide feedback :steamhappy:
What would you say is a reasonable amount of re-projection? Do you use the default or "legacy" re-projection option in SteamVR?
I assume there is a post / link elsewhere regarding these "kinks" you suggested re. Nvidia's VRSS; if you could find it again, I would very much like to read up on that, many thanks :steamhappy:


Originally posted by --ranXerox--:
...I leave the vrss at always on... I would say increase supersampling until your game is roughly under 12-18ms. if you notice a lot of unusual artifacts, then drop SS down to get your milliseconds under 12ms...
T4S :steamhappy:
I assume by VRSS "always on" you mean as opposed to "adpative", correct?

Ironically the game which I need to "tweak" the most is Half-Life: Alyx. For one, it's not on NVIDIA's VRSS supported list (same page as I referred to in my OP). I'll have to test it with Boneworks instead... .

Regarding SteamVR SS; as I noted, (my) default is set to 124% and with HL:A, results depending on the scene, are (mostly) binary: 90fps or 45 meaning re-projection. Despite the bad statistics as shown with fpsVR (see images below), I don't notice any unusual artifacts, only lag when the going gets tough (battle scenes with multiple characters).

To be more accurate, I don't experience lag when rotating my head but when I "strafe" it's very bad. Fortunately I don't need to strafe all that much in most VR games I play.

~~~~

Still, my goal is to fine-tune every possible option until I've achieved a balance between quality & performance, with quality as the priority. HL:A has a good, steady pace and even at 45fps (22ms or less) is quite enjoyable (aside from the heavier battles). FWIW, I've followed Nvidia's GeForce Experience in-game settings recommendations aside from things that are not constant (like "flickering lights" - I've turned it on even though GFE recommends to have it off; not many scenes have flickering lights). This is the philosophy I use with most non-VR games where the target display is fixed (i.e. a static 60Hz monitor).

Speaking of fpsVR, a recent update now allows us to take a screenshot of the overlay - very practical!

Here are screens of in-game and the overlay which shows data just before I pressed the system button:

45mins into HL:A and I've already experienced 220 dropped frames... . Screenshot size, determined by SteamVR, is 1019x1019
Image: HL scene[live.staticflickr.com]
Image: fpsVR stats of the above scene[live.staticflickr.com]


Trover Saves The Universe is much easier to render although there are complex scenes. 25mins and 25 dropped frames. Screenshot size is 1259x1259
Image: Trover scene[live.staticflickr.com]
Image: fpsVR stats of the above scene[live.staticflickr.com]


A very basic image from Trover shows the best-case scenario... (1259x1259)
Image: Trover scene[live.staticflickr.com]
Image: fpsVR stats of the above scene[live.staticflickr.com]

Last but not least, using fpsVR's log, I see that the actual resolution is not 124%, rather closer to 111% (I have Render Resolution set to "auto" which is the default) with 2492x2244. I calculated that 124% would work out to 2778x2500. I assume that's the auto-render-resolution at work...

fpsVR Report:
App:
Aperture Hand Lab
HMD:
Index (90.000 Hz, IPD 67.6)
GPU:
NVIDIA GeForce RTX 2060 SUPER (26.21.14.4575)
CPU:
Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz
Delivered fps:
68.94
Duration:
9min.
GPU Frametimes:
Median: 8 ms
99th percentile: 12 ms
99.9th percentile: 12.8 ms
GPU frametime <11.1ms(vsync):
97.3%
CPU frametime:
Median: 3.9 ms
99th percentile: 8.6 ms
99.9th percentile: 11.9 ms
CPU frametime <11.1ms(vsync):
99.9%
Max. SteamVR SS:
124%
Render resolution per eye:
2244x2492
(by SteamVR settings, Max.)
(HMD driver recommended: 2015x2238)
Last edited by Travelller; Jun 5, 2020 @ 11:01am
Bob Loblaw Jun 5, 2020 @ 4:24pm 
Originally posted by Travelller:
What would you say is a reasonable amount of re-projection? Do you use the default or "legacy" re-projection option in SteamVR?
I assume there is a post / link elsewhere regarding these "kinks" you suggested re. Nvidia's VRSS; if you could find it again, I would very much like to read up on that, many thanks

Too much reprojection is not a number for me, but a feeling I can get (but hopefully not) on a first playthrough at default settings. First thing I do is turn down in-game settings, shadow quality, etc. On a few demanding games there's a tradeoff between SS and framerate, and still both suffer. Motion Smoothing has looked good to me on some games (The Forest, No Man's Sky), but I prefer default reprojection on others (Fallout 4, Borderlands 2 VR) because the artifacts from Motion Smoothing are too distracting on those titles which have objects with sharp edges, IMO.

I'm not up-to-date on VRSS. Here's an old youtube video showing when VRSS first came out it was introducing jitter:
https://www.youtube.com/watch?v=4Et4GRimbIQ&t=7m43s
Travelller Jun 6, 2020 @ 6:22am 
Originally posted by Bob Loblaw:
...Too much reprojection is not a number for me, but a feeling I can get (but hopefully not) on a first playthrough at default settings. ... Motion Smoothing has looked good to me on some games ...
...Here's an old youtube video showing when VRSS first came out it was introducing jitter...
Thanks once more for your insightful feedback as well as the link. The video's four months old which normally would mean still fresh but knowing nVidia and their monthly driver updates... who knows. Clearly I'll have to take the time to test it (with Boneworks). I'll be sure to post my results.

Originally posted by --ranXerox--:
...set the index at 250%ss and I leave the vrss at always on...
After viewing VR Oasis' video on the subject, it made me reconsider what you wrote and that supersampling should (or can) only happen once. In the case where you are running an app that can make use of VRSS, the SteamVR SS will (hopefully) be ignored or the VRSS will be (unfortunately) disabled. Perhaps the best / safest way is to set SteamVR SS to the desired percentage and to then set it down to 0 (100%) via the individual per-program settings. Ditto for SSVR as Nvidia also has both global and per-pgm settings.

Trying to test all combinations will be a tedious affair but if I can find the time I'll give it a go...
Travelller Jun 7, 2020 @ 12:12pm 
Originally posted by Travelller:
...Clearly I'll have to take the time to test it (with Boneworks). I'll be sure to post my results...
Ok, so I did a quick test, in the sense that I captured only two "static" scenes. The better test would've been to run through an entire level with each setting and then compare, but it's too time-consuming.

Fortunately, my quick n dirty testing was enough to show that while the Adaptive VRSS option might bring some visual benefit at almost no cost in performance, setting VRSS to Always On is borderline criminal. Even if you have a 2080Ti there's no reason to torture it - not at the minimal improvements in visuals. Again, two static scenes cannot begin to represent the large array of scenarios in normal, dynamic environments with interactive gaming but from what I've seen with Boneworks, it's not worth it.

A game as graphically "sophisticated" as Half-Life: Alyx might benefit from full-time VRSS but using the standard SteamVR Auto Render Resolution has provided me with more than enough fidelity. The game looks amazing, even without the (possible) benefit of VRSS.

On to the stats. I wish we could post images on this platform but links will have to do... :steamfacepalm: I tested all three NVIDIA VRSS options (Off, Adaptive, Always On) with a fixed Steam SS of 100% (1.4 x native display resolution) and again with a SteamVR SS of 150%. Finally I reset everything to their defaults (VRSS OFF, SteamVR SS on AUTO).

Boneworks has a few graphics settings that will affect the outcome; one is MSAA which I've always had set to 8X (as recommended by GeForceExp) and the other is Adaptive Resolution which I've always had set to disabled (and that's another SS "tool" - to be tested in the event it's done in-game and not at the driver level like VRSS...).
Last but not least; Nvidia offers a 2nd option exclusively for VR; pre-rendered frames. The default is 1 and I decided to try 2 & 3 frames, with VRSS off and SteamVR SS set to 150%. I witnessed neither a remarkable improvement nor any major degradation but I think leaving it set to 1 frame seems to be the best bet, at least for my system.

Image: Overall Statistics table[live.staticflickr.com]

Image: 1st round at 100% (Off / Adaptive / On)[live.staticflickr.com]

Image: 2nd round at 150%[live.staticflickr.com]

Image: 3rd round at 150%, VRSS to Off, pre-rendered frames 1, 2 & 3[live.staticflickr.com]

Image: Defaults, VRSS Off & SteamVR SS set to AUTO[live.staticflickr.com]

~~~

Image: Boneworks' Graphics settings[live.staticflickr.com]

Image: 1st test image at 100%, VRSS OFF (1131x1131, or 50% of actual rendered-resolution's height)[live.staticflickr.com]

Image: 2nd test image at 100%, VRSS OFF [live.staticflickr.com]

Image: 1st test image at 150%, VRSS ON (1384x1384, or 50% of actual rendered-resolution's height)[live.staticflickr.com]

Image: 2nd test image at 150%, VRSS ON [live.staticflickr.com]

~~~


Cheers :)

Last edited by Travelller; Jun 7, 2020 @ 12:24pm
Rectus Jun 7, 2020 @ 1:43pm 
HL:A already has a similar system to VRSS that automatically scales the render resolution after performance. It's not as advanced though, and I'm not sure if the version shipped with the game does fixed foveated rendering, although their old GDC talks mention it.
Travelller Jun 8, 2020 @ 8:00pm 
Originally posted by Rectus:
HL:A already has a similar system to VRSS that automatically scales the render resolution after performance. It's not as advanced though, and I'm not sure if the version shipped with the game does fixed foveated rendering, although their old GDC talks mention it.
T4S :steamhappy:
--ranXerox-- Jun 8, 2020 @ 8:30pm 
my settings are based for games not native to VR. One such game is Obduction. Other than that, I see no reason to boost VR over 180%ss and leave VRSS to adaptive. But in my case, I just don't want to fiddle with it. This always on VRSS and 250% SS is criminal.
Last edited by --ranXerox--; Jun 8, 2020 @ 8:30pm
Travelller Jun 9, 2020 @ 7:24pm 
Originally posted by Rectus:
...although their old GDC talks mention it.
A bit "off topic" but I don't suppose there was any discussion of (eventually) using ray tracing?
< >
Showing 1-10 of 10 comments
Per page: 1530 50

Date Posted: Jun 3, 2020 @ 11:05am
Posts: 10