Version 1.4.2 EARLY ACCESS (release candidate) (Patreon)
Downloads
Missing 2 files, as this post has not yet been imported.
Content
Thank you for responding to my hardware poll. Although many people haven't voted yet, it looks like Team red is stabilizing around 8-9%.
I have been trying my best to understand and solve the freezing issues that have been ruining the game experience in VR for some of you. For those who are interested, I'll give more in-depth details in the "Technical discussion" section below, but let's start with the short version. The freezes come from a problem with the game itself, which I'm 100% certain is related to asset loading/streaming. There was some suspicion initially that it could be caused by the Autosave function, but it was a red herring. RDR2 just often happens to autosave when leaving an area and entering a different one, which is the moment when new geometry and textures need to be loaded, hence the confusion. But Autosave is not the culprit, as disabling it from the Settings menu has no effect on the freeze frequency.
Update: there is some evidence that the freezing issues might be much worse if you are running the game from an HDD. If you can manage to free enough space on an SSD, it's worth trying. If you do move the game, remember to run "RealCleanRunAsAdmin.bat" as administrator (I'm attaching it here again for convenience) and then to run "RealConfig.bat" as usual, from the new folder where you put the game.
Unfortunately, since the problem is with RDR2 itself and I don't have the source code to the game, I'm unable to fix it for good. I did try to understand what was going on to see whether I could patch the code, but no luck. Only Rockstar can actually solve the problem, and since they haven't done it in the almost two years the game has been out for PC, despite many protests by players all around the world, they probably never will. However, for some of you, using my VR mod makes the issue much more likely to occur during normal gameplay (I'd estimate around 10x more frequent wrt playing in 2D), so I did what I could to analyze and mitigate the effect.
This 1.4.2 version of R.E.A.L. VR adds new controls to the mod overlay: in the "RDR2" tab, under "Antifreeze" you will find a combo box (drop-down list) and a checkbox. The combo allows you to choose a freeze-mitigation preset among "None", "Light", "Medium", "Strong", "Extra". "None" as you can guess is for those of you who never had trouble with the previous 1.4.1 release (if it ain't broken, don't try to fix it!). "Light" is the default preset: it will apply a workaround that leads to no visible disturbances in VR, and yet on my system allows me to play for hours without the game ever freezing. The "Medium" to "Extra" presets apply more and more aggressive techniques to try and prevent the hangs, at the cost of some visible stuttering in VR when the game loads new assets. Especially "Strong" and "Extra" will have an annoying jump in the VR view as the mod all but disconnects to allow the game to do its streaming thing as undisturbed as possible, so beware.
My advice is to select "None" if you had no problems with 1.4.1; otherwise start with the default "Light" preset, and if you still experience very frequent freezes (or the same mission keeps freezing at the same moment) move up gradually until you find the preset that works for you. The choice is applied dynamically, so you could also do something like leaving the preset on "Light" and only switch to higher antifreeze measures during critical mission segments where you know that the game has got stuck before.
I also added a watchdog to the mod, which will automatically turn off VR after 1 second if it detects that the game has hung, to avoid making people sick with the spinning screen view. The "Autokill on freeze" checkbox extends this behavior to automatically terminate the process when 5 seconds have gone by without the game responding; this is just a small quality of life improvement to avoid bringing up Task Manager each time to force-kill the game. Sadly for the moment there is no known way to get the game "unstuck" when its asset loading/streaming mechanism has failed, so I made Autokill the default.
With this release I also made the Resolution Scale indicator more consistent (it will always say "Off" when DLSS is in use, no matter what RS was previously set to), and I fixed a problem that was preventing some Patrons with AMD cards from entering VR after the Jul 13 update. The reason this is a "release candidate" is precisely that I still need to get more feedback from the (few but important) AMD users. Also, I want to see how the different antifreeze presets work on your systems.
Enjoy!
Technical discussion: Thanks for joining me in this rant ;-) At first, I was having a really hard time reproducing the hangs (even on 1.4.1 I got no more than one every about 2 hours of gameplay), so it was incredibly slow-going and frustrating. Fortunately, after a few days of snail's pace progress, it occurred to me to try using the teleport function that comes with Alexander Blade's trainer. Phew! With teleportation, I could force the game to reload almost all of its assets, and to do it every two seconds or so, which triggered the bug much more often. Suddenly, instead of 4-5 experiments per day, I could do one every few minutes! I was finally able to collect some useful data.
Once I could reproduce the problem (almost) at will, I studied the post-freeze status of the game in the debugger, both after teleportation hangs and after "normal" hangs. I was also able to quickly repro the issue without the mod attached (100% untouched game, playing in 2D) to completely exclude the mod from being part of the problem. In each case the situation of the game threads upon freezing was exactly the same, with the main thread (on which the scripts are run) stuck waiting forever on a semaphore that will never get signaled, most other threads idle, and one thread burning up CPU cycles without ever doing anything useful.
The game is heavily multithreaded. On the contrary, the VR mod uses very few threads, so when the freezes occur, I can easily track what each of my threads is doing (and was doing during the seconds leading to the freeze). That way, I was able to rule out that my mod could be causing the problem, although it was definitely making it more frequent. My guess is that during texture/geometry streaming RDR2 keeps a close watch on frame timing, and modulates how much of the world gets streamed in for each frame according to the impact it's having on frame rate. Due to the above-mentioned very heavy multithreading, this mechanism is very hard to get right (Rockstar almost did, but not quite, as proven by the complaints of normal 2D users) and it's very likely that the interaction with VR is violating some assumptions on GPU timing that Rockstar's developers made while designing/testing the system.
So, the only thing I could do was basically get the mod out of the way in time to avoid messing up the timing too much during streaming. To that end, I instrumented the code to gather a few indicators that asset loading is being triggered, and added the capability to disable/pause some components of the mod dynamically. The preset you can choose in the overlay dictates which components get disabled as soon as asset loading is detected, and how long it takes for the mod to decide that it's safe to enable them again after the streaming hiccup has passed. It's not a perfect solution, and it never can be, since the game still crashes sometimes during area loading even without any mods; but it's the best we have for now :-)
Hopefully some Rockstar lead is reading these posts and they will soon come out with an update to fix the issue for good! I mean, a man can dream...