HelixVision

HelixVision

DX11 and Nvidia
Is there a current timetable on when we'll be seeing an update to HelixVision so that DX11 games work with modern Nvidia drivers? I'm seriously not comfortable reverting to an older version just to get a handful of titles to play in VR. It would cause too many issues with other games.
< >
Showing 1-15 of 33 comments
Jan 29, 2021 @ 3:13pm 
Sorry, no ETA on this. It's a serious level of reverse engineering/hacking to get this to work, and so far none of our hackers have been able to solve it. It is entirely possible that we cannot ever solve the problem because NVidia actually removed the code, not disabled it.

We have other options we are exploring at the same time, including bringing up iZ3D, and maybe writing our own.


One option that we are moving forward with is to enable BlueSkyDefender's awesome SuperDepth3D for DX11 games as an option. This is z-buffer 3D, not geometry 3D, so we typically have not looked to this as an option because we always prefer geometry 3D if we can get it.

We are soliciting opinions on what people think of z-buffer 3D. Is it good enough? Do you all prefer it?

It has some advantages, including no performance hit, runs on every driver and any GPU including AMD. The disadvantages are no pop-out effect, and haloing on up close items.

Please post here if you have an opinion. Thanks.
Isn't this the same or at least similar to CMU?
My Opinion: Geometry 3D would be best, but before you can't play in 3D at all (due to driver or performance) a Z-Buffer option would be OK.
From my experience with VorpX, I felt z-buffer 3D had a lot less sense of depth than geometry 3D. I think it would be fine to use z-buffer 3D for now, with a longer term goal of getting geometry 3D to work. Maybe even as a DLC, so perhaps it can be funded to perform good and be low on graphical bugs.
If you would succeed with enabling HelixVision/3DFM with RTX 30?0 driver, would this then only work with HMD or could I still use my NVidia shutter glasses?
Feb 2, 2021 @ 12:14am 
Originally posted by cer:
If you would succeed with enabling HelixVision/3DFM with RTX 30?0 driver, would this then only work with HMD or could I still use my NVidia shutter glasses?
If we can somehow fix the driver problem for DX11, this would also work for 3D Vision itself. DX9 path still exists and is working on even the most recent driver.
I don't mind the depth buffer techniques at all. Don't get me wrong, the 3D is way better when using geometry, but there are some games it'll never work with, and the performance cost is substantial.

A good example is Witcher 3. The 3D is spectacular in HelixVision. On a GTX 1080 I can get 1080p with medium-high settings, or 1440p with low-mid settings (both capped to 45FPS). Both resolutions look great... the 3D is phenomenal!

With the same card, Reshade+Superdepth3D, and 45FPS cap, I can push 1440p with Ultra settings (minus hairworks), install the crazy texture and lighting mods from Nexus, and still not max out the GPU. The Depth3D settings take a little tweaking, but you can get very 'similar' 3D out of it. You'll still get halos around closer objects, but the world has a lot more detail.

So I guess it comes down to user preference... I can see arguments for both, and I enjoy both.

What would really push the boundaries would be the ability to apply both techniques... use geometry for anything close that would produce an excessive halo, and leave depth buffer for the rest. I'm not sure if that even makes sense though... I only have a vague understanding of what's going on under the hood. (Wouldn't that need 3 separate images left-center-right?)
Feb 8, 2021 @ 6:51pm 
In case anyone would like to experiment with this, here is an experimental version of the awesome SuperDepth3D+Reshade, that does a direct connection to the Katanga mirror app. We've gotten some great help from BlueSkyDefender, and this is running his latest version with no changes.

http://bo3b.net/vr/SuperDepth3D_exp.7z

I tested this on AC Origins, and also on Prey, with an Oculus Rift and a Vive Pro, and it seemed to be working well.


Setup will be clunky- unzip the components into the game.exe folder. When you run the game you should see the Reshade menu show up with UNOFFICIAL, and also the SuperDepth3D corner text.

To connect Katanga, you'll need to edit the enclosed shortcut. Edit this to put in your correct path names. When you double click the shortcut it should just connect and allow you to run with z-buffer 3D.

Experimental- but please let us know what you think.
Tried it on a couple of games I have loaded, but had trouble getting it started...

The first was Cyberpunk 2077, but Katanga didn't like my --launch-type DX12Exe argument :) Not really surprised by that. I'm currently running it with Reshade 4.9.1 otherwise, and it works pretty well. Well, the game is still broke, but It's cool to visit. Can Katanga support DX12 through Reshade?

The second was Assassin's Creed Odyssey. I got the custom Reshade configured... game shows SBS, and I'm pretty sure I got the shortcut set up right, but I couldn't get the two to link up. Katanga shows a gray window with "Launching..." written across it.

Do I launch Katanga after the game is running... that's what I was trying. I tried running the game in Borderless Windowed and Fullscreen. If I launch Katanga before, Odyssey doesn't launch on it's own (Is it supposed to?) Katanga did shut itself down though when I was running Borderless, and exited the game.

I'll try more tomorrow. I have a couple more games I can try too. Does the nvidia driver matter? I have the latest loaded at the moment for Cyberpunk.
Feb 9, 2021 @ 4:50pm 
@Torzi- Sorry, I should have mentioned that this is DX11 only for the moment. I'm looking at DX12 and that's actually the motivation for doing this, I want to add CyberPunk2077 in full-SBS, even if it's not geo-3D.

You need to use the custom dxgi.dll loader that I include in that zip file. That has custom C++ code that I added to Reshade to support the connection to Katanga. I don't think It's possible to get the performance that I want any other way.

BTW- when this is working correctly, it will create a double-width buffer for full-SBS, so you will not see the SBS in the game window as it will be drawing the other half off screen. You can turn this on/off in the settings at the bottom of the SuperDepth3D-VR shader settings, by setting HelixVision=0. That can switch between the normal half-SBS and the HV version that BlueSkyDefender kindly added. The flag is set=1 by default in this 7z file.

If you are running the standard release build of Reshade it won't have this code. I'm not sure exactly how we might share this code, or whether Crosire would accept something weird like this as a pull request, hence the experimental for now.

If you use the custom dxgi.dll I built here, you can launch them in either order. You have to do manual launches for both the game and the katanga via the shortcut for now. We are working out how to support SuperDepth3D in 3DFM to automate this, but it's not ready yet. Given that Katanga did the auto-quit, that means that you specified the paths correctly, and Katanga found the game and is connecting.

Driver doesn't matter, and no 3D Vision required. You can use any driver, including AMD. Thanks for trying this out.
Hah! I was just about to post when I saw you had...
You can use any driver, including AMD.
This is a big one! I'm out of VRAM... WMR & Steam keep taking more, and it feels like games don't realize they're doing it (even with VR titles). I think that's the cause of a lot of stuttering problems. 3080 is a bit out of budget, but a 6800 maybe? hmm. It's all fantasy anyway at the moment, but this is definitely pushing outside the bounds of 3DVision, and that makes me sad.

I think this is a step in the right direction though! Original post:

Ahh, ok. It didn't like 1440p. If you see SBS, it's NOT working. Start game, alt+tab out to launch Katanga, then re-focus the game. Reshade is kind of acting as a server here, and Katanga is the client... pretty cool! Reminds me a bit of how nvidia's Gamestream works.

Poked around a bit in SuperDepth3D_VR.fx. I'm not seeing the warning messages from around line 177. I initially tested at 1080p, but ended up commenting out a few lines there to let me run 1440p on DX11, and that seemed to work ok. So far Witcher 3 and AC Odyssey work, and look pretty damn sweet! Are you using full res per eye? Sure looks like it, and there's a bump in VRAM use as well. Having some minor sync stutters, but I'll play with that a bit more.

It's incredibly handy to see the 2D image on the monitor... makes it much easier get a sense of how it should look, and tune depth. On the other hand, I do miss the overlay on the 3D screen while I'm trying to tune. Early days though with this... Overall, this is fantastic! A very successful initial pre-launch I'd say... Congratulations!

Edit:
BTW- when this is working correctly, it will create a double-width buffer for full-SBS, so you will not see the SBS in the game window as it will be drawing the other half off screen. You can turn this on/off in the settings at the bottom of the SuperDepth3D-VR shader settings, by setting HelixVision=0. That can switch between the normal half-SBS and the HV version that BlueSkyDefender kindly added. The flag is set=1 by default in this 7z file.
THIS IS SO COOL! I've tried patching this together for YEARS from the end-user side of things, and it never worked right. I'm so glad you're working together.... Can't wait to see where this goes.



Feb 10, 2021 @ 4:01pm 
Originally posted by Torzi:
Poked around a bit in SuperDepth3D_VR.fx. I'm not seeing the warning messages from around line 177. I initially tested at 1080p, but ended up commenting out a few lines there to let me run 1440p on DX11, and that seemed to work ok. So far Witcher 3 and AC Odyssey work, and look pretty damn sweet! Are you using full res per eye? Sure looks like it, and there's a bump in VRAM use as well. Having some minor sync stutters, but I'll play with that a bit more.
I updated the fix file for the latest version of SuperDepth3D_VR+. BlueSkyDefender fixed a bug with the error reporting. Same location, I just updated file since it's experimental.

This is full resolution per-eye, of whatever you run the game at. Full-SBS. Very similar to the way the 3D Vision would do full resolution. Both eyes arrive at the same time, from the same frame, so there will be no eye-to-eye sync problems.
BlueSkyDefender's SuperDepth3D_VR with ReShade works excellent under Linux using Proton/dxvk (nvidia and amd), so if you consider adding it as an option I would vote for it of course.
Just gave above http://bo3b.net/vr/SuperDepth3D_exp.7z a quick try (only replaced the installed and working official 4.9.1 ReShade dxgi.dll with above experimental and dropped everything else into the game dir as well).
Looks like it is not even accepted (missing dependency?) as the dxgi.log is not even written. I'll try to find out more the next days.

Edit: Scratch that. The game I tested was 32bit...
Just tried quickly with a 64bit game and "ReShade unofficial" loads but crashes very early with a small requester with broken fonts.
The relevant part of the dxgi.log is probably:
---
22:22:57:609 [00464] | INFO | HackerVR:DX11 CreateSharedTexture called. gGameTexture: 0000000000000000 gGameSharedHandle: 0000000000000000 gMappedView: 0000000000000000
22:22:57:610 [00464] | INFO | HackerVR: Mapped file created for VR IPC: 000000001D630000->0
22:22:57:610 [00464] | INFO | Width: 7680, Height: 2160, Format: 24
22:22:57:610 [00464] | INFO | pDevice create new gGameTexture: 000000002679F9E0
22:22:57:610 [00464] | INFO | query new pDXGIResource: 000000002679FAB8
22:22:57:610 [00464] | ERROR | Fatal Error: Fail to pDXGIResource->GetSharedHandle code: E_NOTIMPL
22:23:04:880 [00464] | INFO | Exiting ...
---
I do not want to hijack this thread with my linux attempts, but only wanted to show interest. :)

Edit: The requester window name is "GamePlugin: Fatal Error"
so very likely it fails with the (unmodified) "katanga.exe - Shortcut.lnk".
Afaik there is no official way to edit "real" windows lnk files under linux, as their function is replaced with an own wine implementation. Not even sure if it would even accept this file if the paths were correct.
Not hijacking at all I don't think... I've actually been playing with this quite a bit. I'm just trying to hammer down a few more details for feedback, but this has been spectacular!

You need the custom Reshade dxgi.dll, it's a branched version of the official. Also, running the shortcut without modifying it first for your setup won't work either...

Instead of the shortcut, try launching from the command line. Start in:
\steamapps\common\HelixVision\Tools\Katanga
and launch with
katanga.exe --game-path "\path\to\game.exe" --launch-type DX11Exe

there are also some directory references in the Reshade.ini files that need to be set:
EffectSearchPaths=.\reshade-shaders\Shaders\,.\reshade-shaders\Shaders\Depth3D\ TextureSearchPaths=.\reshade-shaders\Textures\ IntermediateCachePath= <-- try leaving blank, maybe Reshade will assign it
those assume you're copying the 'reshade-shaders' directory along with the rest of the files to the game's EXE location.
Feb 16, 2021 @ 8:38pm 
No problem, I'm very interested in whether it provides us with Linux support as well, as that would open it up to anyone wanting to use Linux. Including me- I hate Win10, and use it only because it's the gaming platform.

Unfortunately, I think the error log there is saying that it won't work under Proton because they have not finished the implementation.

22:22:57:610 [00464] | ERROR | Fatal Error: Fail to pDXGIResource->GetSharedHandle code: E_NOTIMPL
That suggests that Proton does not support surface sharing, which is a fundamental aspect of how HelixVision works.

Might be worth trying a lower resolution, I don't think I've ever tried a double-width 2160 game resolution. There are weird limits on texture sizes in DX9, not sure what the limits would be on DX11.

The error is NOTIMPL- but sometimes the error reporting is wrong or just returns generic messages. Please let me know if you manage to get past that spot.


With regard to launching the Katanga app, @Torzi has the right combo there, it's just normal launch with command line params.
Thank you for the friendly reply. @Torzi and @Bo3b!
I feared as well that an unimplemented function in wine/proton could be the reason, I'll see what I can find out.
It is very good to know though, that it is just a regular katanga launch without anything special baked into the dxgi.dll. So it should be save to start it (forked into the background) before the actual game launch, which works pretty good with the steam tool I wrote.
Trying with a lower resolution is a good idea as well!
< >
Showing 1-15 of 33 comments
Per page: 1530 50