SuperDepth 3D/VR + Virtual Desktop - Generalized Guide

An update to a prior guide (thread now locked), including a lot of details regarding VSYNC, Refresh Rates, etc. I’m using this method almost all of the time now when pushing flat titles to my HMD:

Guide for Clear 3D on HMD from flat games (written for Pimax, but mostly applicable to other HMDs as well.)

This is a guide for getting as much clarity as possible in a 3D display on your HMD out of flat non-VR games. This does not provide a full VR experience. Personally, I’ve found that the quality concessions I have to make for full-VR makeover experiences are far too great for me to do so in anything but the least-demanding older titles. Most of the time I’m happier playing a title while seated, without head-tracking, and just utilizing my Xbox controller.

Equipment and Software:

A variable (or at the very least high) refresh rate monitor of at least 1080p resolution.
Virtual Desktop (available on STEAM)
Reshade
SuperDepth 3D/VR (Reshade)

General process overview:

We will be using the correct hardware and software to drive your monitor at the same refresh-rate as your HMD, or at exactly 1/2 refresh of your HMD. Then we will push a lot of pixels to your HMD, in order to achieve clarity in the games you will be running. Finally we will use Virtual Desktop, combined with SuperDepth3D or SuperDepthVR, to push the game to your HMD in 3D.

Important considerations:

a) You must hit your HMD refresh (or half the refresh) as your absolute minimum frame-rate. The HMD is not a variable-sync device, so dropping even a single frame below your target refresh/FPS will induce terrible stuttering. You must also lock this as your maximum frame rate (generally by using vsync.)

b) The resolution you push to the HMD is just as important as the internal game-rendering resolution.

c) You must leave some GPU overhead. I generally shoot for maxing out the GPU at around 85% to 90%. However, do NOT bother doing much optimizing of your settings until after you get everything working at conservative resolution and quality settings. There simply isn’t any point tuning performance until all the other elements are in place and working. Then, and only then, begin testing how far you can push a title.

d) Be very cautious adding texture mods to modern games. Even with 24GB of VRAM in my 4090 I can eat up that VRAM fast. As soon as you start swapping textures in and out of VRAM you’ll introduce stuttering and hitching and can initiate a performance death-spiral (where performance will continue to stutter even when all texture swapping has concluded). For example, in Cyberpunk, without any high-resolution texture packs, I’m pushing 22GB all the time. If I try to use texture packs I quickly introduce stuttering even though my GPU usage increases not a bit (only VRAM usage.)

e) I have tinkered with frame-gen a lot, and they are clearly designed for variable-refresh displays. You can force it to work if you limit your FPS manually through your driver software or via. other methods for doing so. This will then work OK (there is so much GPU overhead that it’s hard to justify) if you do not want stereoscopic rendering. However, at this point every method I have tried results in considerable additional issues with stereoscopic rendering. If anyone finds something that works please post your solution.

Steps:

  1. Use CRU (Custom Resolution Utility) to add refresh rates to your primary display. These refresh rates should exactly match those of your HMD, or should be exactly half of your HMD’s refresh. For example, for my 8K-X I have added these refresh rates: 45hz, 60hz, 75hz, and 90hz, none of which were supported as selectable-fixed-rate-refresh rates on my 165hz variable-sync display. These custom resolutions need to be added in the “Detailed Resolutions” section of CRU. Simply open CRU and add these resolutions to the top section; it’s very straightforward.

  2. Install your game and get everything working properly on your flat screen. Don’t bother optimizing anything at this point as the performance on your HMD will be considerably lower.

  3. Create an entry in PiTool for Virtual Desktop if it is not there.

  4. In PiTool set the HMD FOV to potato, and the quality to 2. Leave this quality at 2 unless you absolutely need that last 1% or so of GPU performance. Quality gains are considerable up to 1.5, so I would consider that to be the absolute minimum you should use, but use 2 if you can.

  5. Set your Dynamic Super Resolution (or equivalent depending on GPU brand), so that you can access resolutions up to at least 4k.

  6. Run Virtual Desktop and get your game running “flat” on your HMD. Adjust the Virtual Desktop prefs to your liking (I prefer a curved display). Set hotkeys for the stereoscopic options and screen centering (plus other stuff if you wish.) You can increase the SS even further using Virtual Desktop’s settings with minimal GPU usage impact, but quality gains are not substantial. Still, for older games that are not demanding this is a viable option to squeeze a tiny bit more clarity to your HMD. Shoot for a output resolution of 4K if you can. This is true even if you are forced to use DLSS or other upscaling. For example, a game running at 4k, with DLSS Quality (so actually rendering at about 2560x1440) will look vastly better than game running natively at 2560x1440, even though this seems counter-intuitive. It will also take more GPU power, as DLSS has overhead. Ultimately you’ll have play around depending on the title. Clarity gains up to 4K are tremendous, but drop-off considerably at resolutions above that. So, shoot for 4K if you can get there, dropping by small increments if you can’t. Choose DLSS (or other) upscaling methods before dropping your output resolution much below 4k.

  7. For the best possible performance and sync run your display and HMD at the same refresh, with VSync (I usually use Adaptive, see below) on and a title configured to never (or at least very rarely) dropping below that. For example, Display 75hz/ HMD 75hz / Game 75 fps minimum. If you have an Nvidia card I’ve found that setting a title to use either Adaptive or Adaptive (Half Refresh Rate) ultimately provides the best experience. If you can do that then you’ll set VSync off in the game itself. Unfortunately, this is also an area where you may have to play around, as different titles seem to like different methods.

  8. Alternatively you can push a game at 1/2 the refresh, especially at 90/45, and still get good results. The only downside is some blurring on fast movement (mostly rotation). This is fantastic for demanding titles. I’m pushing Cyberpunk at extremely high quality, including Psycho RT. It looks down-right fantastic. To do this, set your HMD to your desired refresh rate, then set the HMD VSYNC to 1/2. Also set your primary Display to Half your HMD refresh, and your VSYNC on (or Adaptive). For example: Display 45hz / HMD 90 hz set to 1/2 / Game 45fps minimum. (NOTE: This is one of the few scenarios where the PiTool Smart Smoothing still functions OK and will never try to drop to 1/3 rate. Use it if you wish. Personally I find the warping and distortions to be too much to tolerate, and prefer the slight blurring on movement that comes with Smart Smoothing off. But it is there and works OK if you want to try it. You’ll need to leave a little extra GPU overhead however.) NOTE 2: You can also also lock to fractional VSYNC rates this way: Use Nvidia’s Adaptive (Half Refresh Rate) option, and then set your HMD and Main display to your desired refresh: For example, if you do this: Display 75hz / HMD 75hz / Game 37.5 fps, locked to that using the Adaptive (Half Refresh Rate) option. I do not know if this option exists on AMD or Intel cards. (In that scenario also try Display 75hz, HMD 75hz set to 1/2, Game 37.5 and see how it works. Limiting your HMD to 1/2 refresh will reduce GPU usage but I think it introduces some micro-stuttering when the display is set to double the HMD refresh in that way.)

  9. Finally you can add ReShade and whatever options you wish. Note that at these high resolutions Reshade can have a fair amount of impact upon performance. You’ll want to install the base shaders plus the SuperDepth suite. I prefer to use the SuperDepth3D version, as it has significantly less GPU overhead than the SuperDepthVR (it looks like the latest updates have resolved this issue: AFAICT performance between the two is now close to identical) version and does just as good as job as far as I can tell (maybe even a bit better in some ways). But you can use whichever one you wish. You’ll have to sharpen using your preferred sharpening filter, and you can use any number of other basic shaders to saturate colors, etc. Personally, I find that I like pushing a lot of “AMD” sharpening and then also pushing a fair amount of FXAA. This sounds a bit counter-intuitive, but at least on my 8k-x it works well in most titles. Avoid demanding shaders such as AO shaders, unless you are running an older title and have plenty of power to spare. Note that if you are using the SuperDepthVR version of the shader you will find built-in sharpening and saturations controls, meaning you may be able to do everything you wish using that one shader.

  10. SuperDepth has a LOT of options and can feel a bit overwhelming to understand. However, it works extremely well and in some titles approaches G3D quality. I find that the Pimax HMD provides a lot more depth than a traditional flat 3D display, and I can therefore drop the 3D amount quite a bit, which really helps to reduce the halo artifacts that Z3D solutions produce. Be patient and play with the options until you get a good idea what each one does. Note that SuperDepth detects your game and sets many options to the author’s suggested values. These values are extremely good and unless something is very wrong you’ll just want to leave them and possibly adjust the overall depth a bit. I’ve also found that I generally prefer the “Reiteration” or “Stamp” (halo management) methods more than the defaults.

  11. Z3D often causes issue with full-screen UI elements. For example, it can distort Inventory screens. To work around this create a second Reshade profile which still includes an active Superdepth, but in which you have set the Superdepth depth to 0 (you can also play with a few of the other settings if you wish). Then set a hotkey for Reshade to rotate between presets. You can now swap to a “flat” screen whenever you wish using that hot-key, and then swap back into 3D mode using that same key. Works great.

  12. Don’t forget to set “performance mode” on in Reshade unless you are actively adjusting settings.

  13. Every once in a while your HMD and primary display will get out of sync. You’ll know this has happened because your FPS won’t drop, but you’ll get stuttering anyway. Tabbing out of the game and back in generally fixes this. If you get it a lot you probably haven’t left enough GPU overhead. Try reducing quality just slightly until it happens less frequently or resolves entirely.

I think that’s it. Hopefully this generalized guide will help some others. After trying, and failing, to get the clarity I wanted out of various “full VR conversion” methods (vorpX, dedicated single-title mods, etc.), I’ve come to rely on this method to get the quality I want. Not that those other methods aren’t good in their own way, especially on older/lower resolutions HMDs, but pushing low-resolutions to our high-resolution HMDs looks absolutely terrible, whereas this method can look amazing, even in extremely demanding titles.

3 Likes

A couple common troubleshooting tips:

  1. If your HMD and Display are repeatedly not syncing properly (weird double-vision ghosting upon movement, for example) you can try switching to a different refresh and then back again. For example, if you are running at 90hz, switch your HMD to 75 and then back to 90 again. I’ve found this very useful.

  2. Use a program such as FPSVR to monitor exactly what is going on with your GPU/CPU usage. Remember to shoot for 85% or 90% maximum usage (especially on the GPU). If that still doesn’t provide a good experience then you’ll need to reduce settings until things work well.

Two more things:

  1. Try reducing your Red saturation a bit - either through the PiTool controls or through a ReShade shader. For some reason reds tend to “pop” out of depth a bit (no idea why, but it can be quite prominent in some titles).

  2. The author of SuperDepth (BSK / BSD - Blue Sky Knight or Blue Sky Defender) does make his own, free, VR Companion app. It has come a long way and supports a special mode that produces a notably sharper image at any given game resolution. However, the performance remains considerably worse with this Companion app at this point, meaning one has to run the titles at a much lower quality than through Virtual Desktop. Because of this the ultimate quality still appears to better to me in Virtual Desktop at this point. Hopefully that changes in the future. However, for older un-demanding games you might be able to use the Companion App just fine, and in the special mode it supports the clarity would be fantastic.

Oh, and HAGS: HAGS gave me some performance uplift when pushing titles to my 3D display using Shutter glasses, but these gains, at least for me, have not been realized at all when pushing flat titles to my Pimax HMD. It also does create additional stuttering issues and increases VRAM usage in Cyberpunk. This may be due to my specific Cyberpunk settings, and contradicts reports that HAGS should reduce VRAM usage. Regardless of what HAGS “should” be doing; it increases my VRAM usage 3GB to 4GB in Cyberpunk. If you are running HAGS ON, you might try turning it off and seeing what happens.

Of quick note: I remain on the lastest version of PiTool at this point (284 IIRC). I will test Pimax Client again now that is has a 1/2 frame rate lock (supposedly), although I’ve gotten so used to 60hz/fps that I can play that way all day without motion sickness. Prior versions of Pimax Client had far lower performance for me, and zero advantages, along with some audio issue, so I’ve been avoiding it.

Anyway, with the latest PiTool I have definitely found that some titles are ultimately smoother at 45/90hz - in other words, some titles run better when I lock the game and primary display to 45hz and 45fps, but then leave the HMD refresh at 90. In that mode I’ll get occasional micro-stutters, but it is ultimately better in some titles. As always, even a minor change, like an NVIDIA driver update, sometimes seems to alter these behaviors slightly, so I’m afraid this is always going to be something you have to test on a per-title basis.

Initial results with PimaxPlay 1.18 on my 8kx are excellent. I had a number of issues with older revisions on PimaxClient, which is why I remained on PiTool for a long time. With PimaxPlay 1.18 however, I am now able to consistently use HAGS with the benefits it should have been providing all along. Both native VR and the SuperDepth VR + Virtual Desktop method have seen considerable performance boosts with reduced stuttering instances. There are some issues, such as PimaxPlay not remembering per-title settings with the same reliability as PiTool did, but the performance uplift with being able to turn on HAGS is monumental. The first time in a long time that I haven’t regretted installing anything later than PiTool. Good work Pimax. You still need to fix the lighting in Lone Echo (the first one) however.

On more tip for Cyberpunk; even on my flat 3D display, and even clear down at 1080p, and even on a 4090, turning on any decent level of Ray Tracing results in Cyberpunk not wanting to deliver 60fps. The Witcher 3 Next Gen does exactly the same thing. I expect this just isn’t a big deal to Nvidia as so many gamers use variable refresh displays now, and it doesn’t really matter if the framerate with RT on dips to 57 or 58fps in complex scenes with a lot of lighting going on. Definitely use the 45/45 or the 90/45 method described above for titles like those if you are using RT, since dropping even to 58fps will cause stuttering if you are trying to maintain 120/60 or 60/60.

Ran out of time to report this as a bug report, but the latest revision of PimaxPlay, which was supposed to address a few remaining Smart Smoothing functions made it worse for me (especially the settings not sticking properly; being incorrect, etc.) Overall PimaxPlay is also woefully less reliable, with a number of functions that seem to be missing. (How do I add a piece of software to the launcher? For example I launch FO4 using Script Extender. In PiTool I could add Script Extender to the PiTool launcher, but I don’t see that option in PimaxPlay. If it exists then it is very well hidden.) Also, it turns out that Smart Smoothing does still have a 1/3 rate. It seems to be somewhat better about not implementing it as quickly, but in the end it will still activate and therefore renders Smart Smoothing unusable anyway. Overall the performance of PimaxPlay (with HAGS turned on) is considerably better than with PiTool, so I’ll just have to live with the bugginess.