No.
To give a more detailed explanation: stereoscopic rendering has nothing to do with the graphics API at all, but is a game engine thing. You can of course write somethig like a D3D11 wrapper library to support this in a specific game, but that's the thing, you need exact knowledge of how the game engine you're working with works, and have to basically redo everything from scratch if you want to support a different game.
There are wrappers to add stereo 3D to D3D11 (3DMigoto) and even Vulkan (Vk3DVision) games and AFAIK they're engine-agnostic, though they do often require game-specific shader fixes because stuff like shadows and reflections usually break in 3D.
3Dmigoto used to require NVIDIA 3D Vision hardware but now there's a fork (geo-11) that reimplemented 3D without NVIDIA dependency so it works on any hardware and supports generic layouts like Side-By-Side, and there's even a fork of that for D3D12, but apparently Acer is keeping it under wraps despite license requiring an open source release. 😕
Vk3DVision also works well, though unlike 3DMigoto/geo-11, it uses alternate eye rendering by default, so eyes are slightly desynced because time advances between left and right views (which looks awful in older/emulated framelocked games, where e.g. 30FPS would also mean 15FPS per eye), unless we add extra hacks. It also uses Single Pass Stereo (implementation documentation in \multiprojection_vk\doc\readme - Single Pass Stereo and Multi View Rendering.txt) which boosts performance significantly by sharing resources between the left and right view renders, but IIRC the dev mentioned VK3DVision is incompatible with DXVK, so it would be neat if DXVK could render 3D on its own, for games where there's no 3D plugin or DXVK would add a significant performance boost.
Vulkan SPS
D3D11 SPS
That said, I am aware 3DMigoto & co. took years to develop, so I'd imagine adding stereoization to DXVK would also take a huge effort, but I just wanted to put more context out there for anyone stumbling upon this thread and hopefully anyone willing to take on the challenge. 👀🤞
By the way, I was just informed about something like this being already available as a Vulkan extension, so it wouldn't be limited to NVIDIA GPUs like VRWorks Single Pass Stereo:
https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_multiview.html#_description
Though I'm guessing this applies more to native Vulkan apps/games than Direct3D being translated. 🤔
Multiview is not "stereoscopic rendering", it's a specific way to achieve it (but doesn't really make anything easier, it's more there as a perf optimization for tiling GPUs).
The problems remain, you'd need to know up front which render passes need to be stereo and which ones don't, then you'd also need some sort of way to present the damn thing and there's still no real incentive for us to hack that in.
you'd need to know up front which render passes need to be stereo and which ones don't
Would it make sense to just make everything stereo? Perhaps single pass stereo would compensate for the extra performance hit.
Otherwise, we have a community that has been fixing game-specific shaders for 3D for well over a decade using Direct3D plugins, and some of us would be willing to get our hands dirty dumping, modifying and reinjecting shaders manually to fix 3D, if there was a way to do it in DXVK, and especially if it would offer improved performance, compared to e.g. NVIDIA 3D Vision's infamous CPU bottleneck bug that butchered performance on top of old native DX poor optimization.
you'd also need some sort of way to present the damn thing and there's still no real incentive for us to hack that in.
Perhaps this would do some heavy lifting? 👀
https://docs.vulkan.org/features/latest/features/proposals/VK_NV_display_stereo.html
Otherwise, most 3D devices are usually happy to work with the left and right views in Side By Side layout like in NVIDIA's SPS sample above, nothing fancy.
And who knows, maybe even Valve could offer support to enable 3D for their upcoming Steam Frame HMD.
Alternatively, perhaps a more effective route could be making DXVK compatible with Vk3DVision which can already render Vulkan in SBS 3D, but as I understand it, it uses alternate frame rendering so left and right views aren't synced, unless we add some game-specific memory hacks to enable SPS which the dev confirmed was using the multiview extension, though apparently it still requires game-specific shader fixes for proper 3D. 🤔
No offence but I don't think you understand the technical details involved in stereoscopic rendering. Sure, it's not rocket science, but from a DXVK POV, the data structures that we'd need to manipulate to make it work are entirely opaque (e.g. the "camera"), then you'd have the problem that frustum culling would break if you fuck around with that so you wouldn't see all the objects you're supposed to see, and even if we could figure all of that out by manipulating process memory, doing all passes stereoscopically is just going to break everything.
You can do this for fixed-function D3D8/D3D9 games made in 2003, everything else is just impossible and I'm not going to create a maintenance nightmare that I won't even be able to test just for that.
Again, this is mod territory. If you want to run games in stereo 3D, write a mod, or pay someone to do it. This isn't the place for it.
Nothing extracted yet.
I know it's a long-shot, but it would be incredibly cool if DXVK supported stereoscopic rendering in the manner of Nvidia's (now unsupported) 3D Vision, or using the techniques deployed by Tridef's Ignition driver. At a minimum, support for anaglyph (with any combination of color channels) and horizontal interlacing would be amazing. Side-by-side, above-below, frame-sequential, and rendering each image to a separate output (for dual projector setups) would also be useful, once the basics are implemented.