Release 14: The huge update... NVIDIA's gonna hate!
Added 2024-09-19 23:03:49 +0000 UTCJust kidding of course. I don't think what we're doing even registers on NVIDIA's radar :-D
But it does indeed feel like getting a free GPU upgrade! Testing has shown consistent gains across different games and headsets, and I would love to hear about your personal experience in the comments.
Sorry, this is going to be an extra-long post, even for my standards, because there's so much new stuff to talk about!
FOV optimizations (a.k.a. Turbo Boost, Baby!)
OK, you might be asking: what the bleep is a FOV optimization, and why do I want it?
In simple terms: the videogames I mod were not designed from the ground up for Virtual Reality, so the camera has a symmetric field of view, in both vertical and horizontal directions. That means the game camera always points straight at the center of the screen (where the crosshair usually is), and the field of view extends for as many degrees to the left as it does to the right; similarly in the vertical direction (with very few exceptions), the angle being drawn above the crosshair is the same as the angle being drawn below it.
VR headsets are almost never like that though. Most of the time the field of view extends much further downwards than it does upwards, for both eyes; and to make matters even worse, the left eye FOV sees much more to the left than it does to the right, while the right eye FOV reaches out in the opposite direction, towards the right side.
So not only the headset FOV is asymmetric; it is also skewed in different directions for the two eyes. Note that this is not a peculiarity of specific headsets using canted displays, like the Pimax models; all headsets available on the market have some sort of asymmetry, in varying amounts.
What that boils down to is, even with great attention to cutting the perfect aspect ratio for the game, a lot of the pixels being drawn by the GPU end up being wasted, simply because the game wants to draw a symmetric and constant field of view while the headset needs an asymmetric, variable FOV.
In the latest versions of the R.E.A.L. VR mod, I finally came up with a way to work around this problem, and you will find two "magic" checkboxes on the main tab of the mod overlay: "Optimize VFOV" and "Optimize HFOV". As you can guess, the former will remedy the asymmetry in the vertical direction, and the latter will take care of the more complicated situation in the horizontal direction. You can refer to this post to see them in action with Cyberpunk 2077.
The two boxes won't always be available, however. Some headsets already expose a symmetric field of view in the vertical direction, so the "Optimize VFOV" box will be grayed out for them (that's good news, because it means you don't need the workaround). But unfortunately, some runtimes do not implement correctly the functionality required for the trick, or do not support it at all, so the boxes will also be grayed out for them (and that's bad news because you'll miss the performance gains).
See the "Compatibility matrix for FOV optimizations" section at the end of the post for a detailed list of what works and what doesn't; but in a nutshell, stay clear of Virtual Desktop and Steam Link, and do not use OpenVR. I'm sure that Guy Godin will find a way to update Virtual Desktop so that it will allow the FOV optimizations, but for now using it will lead to warped and possibly doubled images.
A final, very important note: the VFOV optimization is pretty safe, and it should work its magic without any visible artifacts or image quality deterioration across all games in our collection. For this reason it is turned on by default whenever the combo API/runtime/link/headset allows for it. The only slight issue you might notice with VFOV opti on is that the black bars at the sides of your view when you turn around quickly will be a little larger (you can mitigate that by dragging the "Reduce shaking" slider a bit to the left). But on the contrary, the HFOV optimization is unsafe, in the sense that it will most likely cause artifacts and image doubling unless I put special patches in the game in order to support it.
For now I have only done so with Cyberpunk 2077 (since it's the game that everybody wants to play) and with Watch Dogs 2. More games will follow, but I can already tell you that not all of the games in the list will end up supporting HFOV optimization. For instance Star Wars Outlaws at the moment does not implement it correctly, and most of the HUD elements are doubled (i.e., they appear in different positions for the two eyes). Thus, I recommend always leaving "Optimize VFOV" on, for all games, but only turning on "Optimize HFOV" for CP2077, WD2 and other games where it doesn't show artifacts, or where you find the defects tolerable in exchange for the big performance boost.
Cyberpunk 2077
This release of the R.E.A.L. mod extends support to the latest official patch, i.e., game version 2.13. Everything should be working properly, even with VFOV and HFOV optimization turned on, and the few things that had been broken recently like scanning and quick hacking should all behave as expected now.
I apologize for taking longer than usual to fix the mod for the new CP2077 update, but there was a huge performance drop after the update that I spent several days investigating. Basically with ray tracing turned off (which is what we usually want to play smoothly in VR) the GPU usage was cut in half, hovering around 50% instead of the usual 95-100%.
I'm not entirely sure why that happened. It was probably due to some interaction with the mod, but on the Steam and Red forums several people reported the same issue while playing in 2D. Anyway, I fixed it now, and performance is fully restored, so you can safely update and enjoy the incredible resolutions you can now hit with VFOV and HFOV optimizations turned on!!
Uncharted: Legacy of Thieves Collection
I finally found a way to resize the UI in both games (see the "Enable game HUD rescaling" section in the "ULOTC" tab of the mod overlay), so you'll no longer miss any information at the periphery like the ammo count, and it will no longer be necessary to resort to the 2D screen for navigating menus, examining treasures and so on. Between those improvements and the new VFOV thingy (HFOV doesn't work with these two titles), the games look spectacular now! If you passed them over in the past due to the UI issues, I strongly recommend that you give them a spin, as especially the action scenes are simply unforgettable in VR.
Horizon Forbidden West
I fixed the crashes when aiming that had been introduced in recent releases of the mod. HFOV is not implemented, at least for the moment, but VFOV optimization will give you that extra fps boost you were looking for :-D
Watch Dogs 2
I made a lot of changes to this one. The game is ready for both VFOV and HFOV optimizations: you'll just need to turn off Screenspace Reflections and SMAA because they're not compatible with HFOV opti (RealConfig will do it for you when you install the new version).
The phone screen, which used to appear too far to the right, is fixed and at the correct depth now. Same for the NPC info boxes that pop up when you target someone, either from your phone or from a hijacked camera.
Support for Pixel Density other than 1 has been introduced.
Subtitles during cutscenes will now be readable and well within your field of view (they used to be pushed too far down).
The HUD background will no longer flicker, a problem which was particularly annoying when looking at the minimap.
When Marcus hacks the computer in the initial tutorial mission, the camera used to be way too far, making the computer screen unreadable; I moved it to a comfortable distance. There might be other instances of the same problem further on in the game, so let me know if you find any and I will try to fix them (due to the fact that this game doesn't allow you to replay missions, I'm going to need a save file just before the mission is started).
Final Fantasy VII Remake Intergrade
You're gonna love this if you have a 4090 or similarly high-powered card: I finally found a way to get rid of the ghostly green lights that the base game starts hallucinating if you push the resolution up too high! Not my creation this time though: credit goes 100% to the author(s) of the wonderful Flawless Widescreen. I implemented their GreenFix V2 in my code, and KaBlam! You can finally enjoy pixel-perfect images in one of the best-looking games of the last few years.
Ghost of Tsushima
The UI scaling is much improved in this release. You can not only scale the HUD as a whole, but also the HUD elements. You'll see how much difference this makes, for instance when shooting with your bow O_o
Far Cry 6
Since my initial mod release for it, this game always had a washed-out look to the HUD in VR. I fixed the gamma so that the colors look correct now.
Grounded
I'm not sure if anyone is still playing this beautiful game, but VR was broken since the latest official update. I fixed it and it's working as intended again.
ReShade shader support
As you know, my mods are based on a fork of ReShade, and that means you can directly run ReShade shaders with them (see this post for all the gory details). Note that my fork was made before Crosire introduced the add-on system, so the new shaders that require add-ons to work are not supported. I don't think that is too much of a problem for now, because shaders requiring add-ons tend to be performance-heavy, and as our dear friend Brandon showed, most of the time you can get pretty much the same effect with a lightweight LUT (look-up table).
Anyway, in several games in the R.E.A.L. VR collection the depth buffer was not made available to the shader, which meant that even some of the older shaders would not work. I fixed that for all the games in the list, so if you have any shaders that require access to the depth buffer they should run without problems now.
For most games depth buffer support is fully automatic, with two exceptions: the first is CP2077, where you'll need to tick the checkbox "Always preserve depth buffer for ReShade (experimental)". I didn't make it the default because in certain cases it might lead to a slight performance hit, and I didn't want that to affect people who don't need to run ReShade shaders. The second game is HFW, where after a resolution change the depth buffer size visible by the shader might be stale. A simple press on the "Reset all to default" button for the shader will refresh the variables and expose the correct new size.
Capture and streaming
My mods include an OBS virtual source that is optimal for streaming, as it will always refresh solidly in sync with the headset and give the best image quality. However, some streamers have a setup where they need to capture the Oculus mirror window instead, and sometimes they run into problems because the Oculus mirror will only refresh when the GPU is idle, something that in my mods doesn't tend to occur very often :-)
If you absolutely want to use the Oculus mirror and you find that it stutters when the mod is running, the new "Prioritize OculusMirror" button is the solution you were looking for. Make sure that the OculusMirror window is already open on the screen when you launch my mod. Then press the button (a UAC prompt will appear, so you'll need to authorize it on the desktop) and the mirror window priority will be boosted until it's closed. No more juddery captures!
But again, whenever possible use the OBS virtual source which is optimized to work with the mod and has less overhead.
Miscellaneous improvements
Pimax headsets have a runtime issue where weird artifacts will appear at the edge of your field of view when mipmaps are turned on for the eye textures (I can only describe those artifacts as "kaleidoscopic": if you see them you'll know what I mean!). So now if the mod detects a Pimax headset it will automatically turn off eye mipmaps. HUD mipmaps should be safe.
Oculus/Meta headsets implement a frame interpolation function known as Asynchronous SpaceWarp (ASW), which is very helpful for normal VR games, but is not compatible with the alternate eye rendering used in my mods (I perform my own special kind of ASW with AER v2 on NVIDIA cards). Unfortunately the only reliable way that the Meta app offers to turn off ASW is by pressing Ctrl+NUMPAD 1 on the keyboard, as even the Oculus Debug tool often fails to force ASW off and the keypress is needed anyway. I always emulated that key combo in my mods when I detected an Oculus headset with ASW activated, but for some users the keys mysteriously leaked through to the game and caused unwanted behaviors like the character spontaneously crouching. Also for some reason there were issues with Pimax headsets running in Oculus emulation mode.
From this version the mod will only emulate the keypress if it's reasonably sure that the headset is not a Pimax model, and in any case only once during the session. If after that it still detects that ASW is active, it will prompt the user. Let me know if this fixes all the problems!
OpenVR has reached end-of-life, and OpenXR tends to work much better nowadays for most headsets (a notable exception is Meta headsets, where you'll want to use the native Oculus runtime). So the VR renderer dropdown in the mod overlay will default to Auto, which detects if an Oculus/Meta headset is connected and talks to it using the native API; if none is found, the next attempt will be with OpenXR, and only as a last resort the mod will try to open SteamVR, in order to check if there is a headset connected that can work exclusively with OpenVR.
Just remember that for OpenXR to work at all, the proper runtime for your headset must be manually set as the "active OpenXR runtime", either dealing directly with the Windows registry or having an app do it for you, which requires admin privileges. This is a major blunder in the OpenXR standard IMHO. It's like every time you want to drive your car you had to open the hood and use a special key to redirect the flow of fuel to the proper engine components for the kind of trip you want to make. Not that it stands out as a specific defect though, because the entire OpenXR API is designed to be as unfriendly as possible. [I didn't say that.] What I actually mean is that all Khronos APIs are designed to be as unwieldy and hostile as possible so that developers using them can go die in a pit of sadness. [I definitely didn't say that :-)]
Compatibility matrix for FOV optimizations
I completely reworked the popup system, and the mod should now be able to tell you precisely what to change in your setup if you hit one of the compatibility snags that prevent the VFOV or HFOV optimizations from working.
Nevertheless, let's try to summarize the current situation.
Oculus/Meta native runtime (Auto or Oculus in the "VR renderer" dropdown menu in the main overlay tab of the mod):
With a Meta headset, everything works correctly as long as you're using the headset wired, with a video cable for older models and with the Link cable for the Quest (recommended for maximum quality and stability), or if you're using Air Link. Do not use Virtual Desktop for the moment, as it doesn't yet support the FOV optimizations and will give you warped and possibly doubled images.
With a Pimax headset, using Oculus emulation mode should be working as intended. You'll be able to enable the FOV optimizations (which are super useful especially for the huge and canted displays of some Pimax models), but don't turn on the eye texture mipmaps because that'll lead to some mesmerizing kaleidoscopic effects at the edge of your view.OpenVR/SteamVR:
Do not use it. No headset will be able to optimize FOV under OpenVR because the API lacks support to convey the needed information to the runtime. In any case this API is end-of-life, and destined to be replaced by OpenXR.OpenXR:
Do not use it with Meta headsets. The functionality needed to support FOV optimizations is currently broken beyond any possibility for me to work around. It might be fixed in the future, but for now just use the native runtime (select Auto or Oculus in the "VR renderer" dropdown menu).
Also don't use it with Pimax headsets. It often crashes when the mod fires up VR, and it leads to sluggishness in the headset tracking. Oculus emulation is the way to go for Pimax headsets (you'll need to have the Meta software installed, but it shouldn't be necessary to associate it to a Meta account).
DO use OpenXR with WMR headsets like the HP Reverb G2, with Varjo headsets like the Aero, and with the Valve Index. Everything seems to work fine there. Again, don't select OpenVR as the rendering API because it lacks a way for me to convey the information needed to achieve the FOV optimizations.Virtual Desktop:
I know this is going to make you sad, but refrain from using it for now. Until Guy Godin updates it to support the FOV changes, Virtual Desktop will warp and possibly double the images in the headset if any FOV optimization is turned on. Also it tends to seize up when VR is restarted.Steam Link:
Just like VD above. I know this is going to make you sad, but refrain from using it for now, because I can't work around the FOV issues. They need to be fixed from Valve's side.
Phew, I though I would never be finished writing this post. My fingertips hurt []-D
I just have the energy for a final
ENJOY!!!
Comments
On Forbidden West is there an issue with HUD size. Can't see it all and don't seem to be able to adjust it with any of the sliders. my monitor is a ultra widescreen and I wondered if it was something to do with that?
Martin Armytage
2025-02-11 19:51:59 +0000 UTCNo, if it is greyed out, that means it is already optimal out of the box. No optimizing that the mod needs to do.
Brandon(Post Maester)
2025-01-26 20:07:00 +0000 UTCsorry for being late to the party... what about PSVR2? I have VFOV grayed out. Do I need it?
GB
2025-01-23 19:23:01 +0000 UTC