Emulator Issues #10222
Nvidia 3D Vision may be selected on computers without 3D vision tech
A user on the forums somehow managed to turn on 3D Vision even though they do not have any 3D Vision gear, resulting in everything they saw being from the left viewport. Even switching to OpenGL (which doesn't support 3D Vision) didn't fix the bug! This got me curious, and I looked into it, and wow what a bug!
To make the Nvidia 3D Vision option appear on a system that doesn't have the 3D Vision enabled, follow these steps:
- Have an Nvidia GPU.
- Open the graphics config and set the backend to D3D11. Feel free to look at enhanced tab and note that 3D Vision does not appear in the stereoscopy dropdown.
- Close Dolphin.
- Reopen Dolphin, and without opening the graphics config, run a game.
- Now with a game running, open to the graphics config, and expand the stereoscopy dropdown, and there it is! Nvidia 3D Vision. Turn it on for some shenanigans!
- You can now switch to OpenGL and see the shenanigans are still happening! And the 3D Stereoscopy dropdown appears blank.
Attached are images of my reproduction of the bug. The first image is D3D, and the second is OpenGL.
#2 Updated by MayImilae almost 3 years ago
So apparently this issue occurs because Nvidia 3D vision is enabled in both of the D3D backends at all times, regardless of whether or not you have the hardware necessary to use it. This is because opening the graphics window only hides the 3D Vision option instead of destroying it, due to the video configuration window's local configuration object only being copied on window creation.
If you open the video config window prior to having started a game at all, then the 3D vision option will be hidden and never appear (whether or not you support it!) but if you start a game prior to opening the configuration window, as long as it has already been set to D3D, you'll be able to see and select 3D Vision. If you select 3D Vision, the option will persist even if you change video backends to OpenGL, even though the OGL backend does not support it (See the second attached image).
To fix these issues, the following will need to be completed:
When the video configuration window is opened, it needs to reload the global configuration object into it's local configuration object each time rather than video config window object instantiation.
Proper detection of 3D Vision (and all other backend specific features).
Nvidia 3D Vision should not be available, hidden or otherwise, on backends that don't support it.
Small note: if you actually want to USE 3D Vision, you have to follow the reproduction steps above. Crazy!