An investigation of Nvidia’s SPS
An investigation of Nvidia’s Single Pass Stereo (SPS) Technology
Like many sim-racers, after a year or two in the hobby, I eventually grew weary of the inconsistency and mayhem of public lobbies typically found in otherwise respected titles like Assetto Corsa, Project Cars 2, et al. As a resident of r/simracing, the ever-present answer to my annoyance just sat there, waiting: iRacing. I originally avoided iRacing for some time due to perceived issues of high cost, steep learning curve, etc. Yet once I decided to give it a try, I ended up diving in head-first.
Without a doubt, iRacing brings some of the most challenging and consistent competition possible in Simracing. With some minor setup required, it presents an amazingly realistic depiction of autosport in its various forms, especially in VR. It’s when setting up iRacing for maximum performance in VR (or for any PC game) that one inevitably happens upon spurious guides and agreed-upon ‘facts’ that are, for better or worse, repeated often without substantiation.
One of the most oft-repeated maxims for those wishing to run iRacing in VR with the best possible performance is to “run an Nvidia GPU so you can turn on Single Pass Stereo (SPS).” As the owner of an EVGA GTX 1080 Ti, this presented no issue, so I enabled the little check-box and didn’t give it a second thought.
Fast forward to Fall 2020:
My Oculus Rift S is a good VR headset, and in many ways a solid improvement over the now ‘old’ CV1. For various reasons, however, I’m looking to upgrade. Knowing that my trusty GTX 1080 Ti won’t be able to push the upcoming HP Reverb G2 or Valve Index HMDs to their maximum, I have accepted that my next GPU would be either an Nvidia RTX 3080 or a RTX 3090. Either of these cards will push the aforementioned HMDs to the max and run SPS.
Recently though, some thoughts have begun to nag at me:
Limiting upgrade choices because of one feature seems to be rash. Am I disregarding any of the upcoming AMD RDNA 2 GPUs just because of a checkbox? What if RDNA 2 proves to be a powerful solution and a viable upgrade?! Lastly, just what is Single Pass Stereo, and does it really improve performance?
Nvidia VRWorks Single Pass Stereo Technology
First, one has to understand that SPS is a part of a larger suite of VR-enabling and improving technologies known collectively as VRWorks.
“VRWorks™ is a comprehensive suite of APIs, libraries, and engines that enable application and headset developers to create amazing virtual reality experiences. VRWorks enables a new level of presence by bringing physically realistic visuals, sound, touch interactions, and simulated environments to virtual reality.”
Looking deeper, Nvidia states that Single Pass Stereo (SPS) utilizes a “Simultaneous Multi-Projection architecture” which is found in Pascal-based GPUs. A further evolution of SPS found in both Turing and now Ampere GPUs, is Multi-View Rendering, or MVR. Additionally, it is worth noting that AMD has a similar VR technology suite: LiquidVR. However at the time of this article, iRacing does not explicitly support any SPS-like function on current AMD GPUs.
For the scope of this article, we will focus on Nvidia Pascal-based GPUs and iRacing’s execution of SPS. We anticipate future testing with Turing, Ampere, and with RDNA2.
While conducting research for this article, I happened upon the work of Ilias Kapouranis. In his series of articles, several bits of SPS are clarified and explained. One major takeaway of SPS is found in the following quote:
“Notice that Single Pass Stereo is reducing the processing time for geometry while leaving the processing of the pixels the same. This is the most important thing to remember and it is the source of the frustration of many developers that have implemented/enabled SPS but don’t see any improvements.”
First, let’s look at our test setup and benchmarking methods.