VR Performance Tweaks & Tips

Home Forums Gaming VR Performance Tweaks & Tips

Viewing 1 post (of 1 total)
  • Author
  • #810

    REF: https://forum.sector3studios.com/index.php?threads/vr-performance-tweaks-tips.13068/

    As many will have experienced, RaceRoom is very harsh on performance in VR, mostly because of the old engine hammering the CPU. I will collect some of the tweaks I learned about and explain them here, so everyone can hopefully benefit from them as well. I am very happy with the performance I have now, as I can keep 90fps with basically all the eye candy that is noticeable in VR on (even shadows!), even on race starts with 20 cars visible. This is on my 4770K @ 4.4GHz and a 1080ti, but I am mostly CPU bottlenecked, so any better CPUs will probably give even better performance, even with a slightly lesser GPU.

    OpenComposite (Oculus and Windows 8/10 only)
    In search of better performance in RaceRoom in VR I stumbled upon this thread. The instructions were a bit scattered but I gave it a try and it gave me a HUGE performance boost, made the performance more consistent and reduced loading times. OpenComposite is an awesome project by Campbell Suter which replaces SteamVR as the ‘translator’ for games that do not have native Oculus support. Unfortunately, at this time the main project does not work with RaceRoom, but @The Iron Wolf did an amazing job at adapting the project to work with RaceRoom, which he published as his own fork. He does not use Oculus anymore, so he will not be able to support the project anymore in case it stops working, but so far 3 Betatesters with different hardware tried it and worked for all of us, so hopefully it will work for most people with an Oculus headset.

    How to install:

    Go to the x64 folder in the RaceRoom directory (Normally in C:\Program Files (x86)\Steam\steamapps\common\raceroom racing experience\Game\x64)
    I would recommend renaming or backing up openvr_api.dll as this is going to be replaced with the opencomposite DLL, so if it does not work you can restore the original file to use SteamVR again.
    Download the latest v1.0.0.0 DLL file from the adapted project, it will be in a zip together with opencomposite.ini , which is required to set the options for OpenComposite.
    Extract these files to the x64 folder in the RaceRoom directory, if you start RaceRoom in VR now, it should no longer start SteamVR and will most likely crash, as the included opencomposite.ini file is not correct for RaceRoom yet.
    Edit the opencomposite.ini file to the following (make sure it is formatted on different lines and not all on one line):

    You can adjust the supersampleRatio to whatever you want, but it seemed to cause worse performance than setting the supersampling in the Oculusdebugtool myself. You can test this for yourself though. If you want to match your SteamVR supersampling setting they are slightly different: 1.5 here would be equivalent to 1.5×1.5=2.25 or 225% in SteamVR, so you can calculate what the equivalent setting would be for you.
    RaceRoom should now launch in VR without SteamVR launching. This will only work for the 64-bit version of the game.

    Some Remarks:

    If SteamVR is still launching with RaceRoom, make sure you have extracted the files into the correct ‘x64’ folder and not the ‘Game’ folder.
    If the game instantly crashes, doublecheck you have set the correct values in opencomposite.ini. If that is all correct, you could try the other DLL file in the project. If that does not work either, you can either try to play with the settings in opencomposite.ini to see if your system maybe works with other settings. Otherwise, you can revert back to using SteamVR by replacing the DLL file with the backup of the original one you made. You could try asking the original OpenComposite devs for some suggestions, but as this is not fully their work it’s a long shot.
    Make sure you have done the room setup in Oculus Home, otherwise it’s possible that OpenComposite will not work properly.
    As this is not officially supported for RaceRoom, there is a good chance the files will be overwritten when updating or repairing the game and any update might also cause it to stop working, but since I have only used it for a week now, I don’t know yet. Similarly, there is no guarantee it works for everyone and that it improves performance for everyone, so make sure to test for yourself and feel free to report back!

    Recommended Graphics Settings
    Here are the settings I use to achieve 90fps in pretty much any situation with the following hardware:
    CPU: i7-4770K @ 4.4GHz
    RAM: 16GB DDR3 2400MHz CL11
    GPU: Nvidia GTX 1080ti
    VR Headset: Oculus Rift CV1

  • OpenComposite (see above)
    Oculus Supersampling: 1.3x
    Oculus ASW: Off
    Resolution: 1920×1080
    Toggle Mirrors: On
    Track Level of Detail: Medium
    Tiremarks: On
    Specular: On
    Shadows: Lowest
    Car Shadows: On
    Contact Shadows: 20
    Shadow Split: Off
    Multi-Sampling: 4xAA
    Track Texture Quality: High
    Car Texture Quality: High
    Shader Quality: Medium
    Visible Cars: 20
  • All other settings I have turned off or on the lowest setting.

    Graphics Settings Breakdown
    I will list the graphics settings here starting with the settings that have the highest priority for me. For each setting I will explain why I choose a certain setting:

    Track Level of Detail | Large Performance Impact
    Probably the most important setting when it comes to immersion. I would really recommend setting this to medium above anything else, as the low setting takes away almost all of the character of the tracks. The High setting only adds more spectators as far as I know, so I would not recommend using that setting to save some performance
    Contact Shadows | Small Performance Impact
    Another important setting for immersion, as this setting controls the shadow under cars, which prevents them from looking like they are floating. This setting should have barely any performance impact, so simply set it to match the amount of cars you have visible. It is especially important if you can’t turn on the car shadows option.
    Car Shadows | Very Large Performance Impact
    One of my favourites when it comes to eyecandy in RaceRoom. This setting controls the dynamic shadows that cars cast. The most important effect for me are the constantly moving shadows you get inside the cockpit as you drive around the track, which really adds a nice level of immersion. Keep in mind that this setting copies the quality setting you set for the overall shadows option.
    Shadows | Very Large Performance Impact
    This option controls the quality of the static shadows on track and of the car shadows. I would actually highly recommend to keep this setting on ‘lowest’, not just for performance reasons, but because higher settings only make the shadows sharper. This makes the shadows even more prone to aliasing and I find that the lowest option actually gives a nice illusion of ‘soft shadows’.
    Specular | Unknown Performance Impact
    Another awesome bit of eyecandy, this setting not only controls sun reflections of the asphalt, making it look more natural, but also controls direct sun reflections in the cockpit and on cars. Combined with the car shadows it creates an awesome dynamic feeling in the cockpit as the sunlight is shining from different directions as you go around a track, constantly changing the small visual details. For me it only gives a small performance impact, but I’ve heard it was quite significant for others, so test for yourself!
    Multi-Sampling | Large Performance Impact
    This setting removes ‘jaggies’ and smooths out the image and is very effective on the edges of objects around the track. It is not so effective on trickier edges such as the motec screen in the cockpit. That is why I would highly recommend to combine this MSAA with some supersampling. In my experience the 4x option is the best one, as 8x does not improve the image noticeably with a definitely noticeable performance hit. As this option purely affects GPU performance, you may want to turn it down to 2x on weaker GPUs.
    Shader Quality | Medium Performance Impact
    The shader quality is the most noticeable when looking at the asphalt, on low it is very plain and light, while there is much more detail on the medium and high settings. There might be subtle differences between medium and high, but I struggled to spot any, so I would recommend setting this to medium, as high can lower performance by a bit.
    Track Texture Quality | Small Performance Impact
    This setting should not affect performance much, unless you have a low-end GPU with limited VRAM. High quality textures are crucial in VR, so I would always put this setting as high as it can go.
    Car Texture Quality | Small Performance Impact
    This setting should not affect performance much, unless you have a low-end GPU with limited VRAM. High quality textures are crucial in VR, so I would always put this setting as high as it can go.
    Visible Cars | Very Large Performance Impact
    This setting controls how many cars can be rendered at a time, which has a huge effect on performance when a lot of cars are in your view or mirrors, especially on race starts. If you are running into performance issues, this is a good option to turn down first. However, with only 10-15 cars visible, I can tell from experience that you may run into trouble with cars very close to you not being rendered in time when driving in a large pack of cars. So, if possible, I would recommend keeping this setting above 15.
    Particle Detail | Unknown Performance Impact
    This setting controls the detail in effects such as smoke and dirt clouds. It is difficult to determine how much it affects performance as it does almost nothing when there are no effects, but can cause large fps drops when driving through these clouds.
    Tiremarks | Small Performance Impact
    This setting determines if tiremarks are left on the track or not, it shouldn’t cost much performance and is a nice bit of added immersion around the track, so I would keep it on.
    Shadow Split | Unknown Performance Impact
    This setting is a bit of a mystery, in theory, turning it on should result in nicer shadows, but with slightly worse performance. However, for me it actually boosted performance slightly to turn this on. I found out that this setting makes shadows very jaggy in VR for me, especially tree shadows on the track. It makes it as if the shadows are drawn on the screen in front of you instead of flat on the track. Not sure if that is intended but I’d recommend to turn it off in VR. Anyway, test for yourself and see what works best!
    Opponent Cockpits | Unknown Performance Impact
    I’m not so sure about this setting, I think it only applies when spectating other cars, allowing you to use the cockpit view in their cars as well. I don’t get much performance difference with a lot of cars around me with this setting on or off, so that leads me to believe it does not affect the visuals when you are in your own car.

    The following settings I find are not really visible due to the limited resolution in VR, so I would simply keep them on the lowest setting:

  • Car LOD Distance Setting
    Car Reflection Quality
    Rear View Mirror Quality
  • The following settings should never be used in VR in my opinion (up to you though):

  • FXAA
    Depth of Field
    Motion Blur
    Lens Effects
    Corner Markers
  • NOTE: Samsung Odyssey+ 60Hz WMR mode = Sharpness! https://forum.sector3studios.com/index.php?threads/samsung-odyssey-60hz-wmr-mode-sharpness.13096/

    Just wanted to share what I recently have found to be the sharpest visuals while using the Odyssey+, and a good balance between graphical fidelity and smoothness.

    I recently discovered in the WMR settings, a switch that allows a change to the refresh rate of the HMD, from 90Hz to 60Hz. Keep in mind this option only exists for WMR headsets.

    After following the VR settings guide found on the forums here, I was struggling to hit 90fps with the recommended graphics settings, which I would call medium, at best.

    While the WMR reprojection can create a somewhat smooth experience at 45fps, it introduces some artifacts that I find to be immersion breaking, such as enhanced shimmering of distant objects, and obvious frame skipping when looking at all to the sides. Any antialiasing seems to be diminished by the mismatching frames, reducing the sharpness of the visuals.

    I knew the 60Hz switch existed, but had never tried it. It’s primarily for lower end systems that can’t maintain 90fps, and is probably not designed for typical, non-seated experiences. I run an i7 8700k and a 1080Ti, which is not enough for most sims, as most of you probably already know. Most often, we have to compensate the visual clarity for smoothness.

    Now, I am able to set the steam resolution scale to 150%, with medium settings in sim apart from 8x MSAA!! With those settings, RRRE is running at a constant 60fps and is smoother than reprojection, and the visuals are sharper than anything I have ever seen in an HMD. I own the CV1 and Vive OG as well. I have done limited testing, but feel like the graphics could even be pushed higher.

    It seems that in most scenarios, I’m able to push somewhere between the now minimum of 60fps and the unachievable 90fps, which is where the 60Hz mode makes sense.

    There are a couple of drawbacks however. One is that the screen is dimmer in the 60Hz mode, as well as the menus are a bit straining on the eyes. But once in the race, like I said before, I find to be the best balance between visuals and smoothness. In particular, the sharpness.

    It may not be everyone’s cup of tea, but if you have a WMR headset, it’s worth a shot.

Viewing 1 post (of 1 total)
  • You must be logged in to reply to this topic.
Skip to toolbar