Quadbuffer support for NVIDIA Professional GPUs on Linux

We intent to create a VR-Application or use another stereoscopic approach on Linux (Ubuntu) with OpenGL. Therefor we need quadbuffer support on the GPU.

We want to visualize our (relative complex) object-model.

We think to use alternitavely a 3D-Shutter-System or a 3D-Polarization-System.

AMD denied making quadbuffering for Pro-GPUs available on Linux (they also said they do not plan to implement it)

I read about NVIDIA abandoning 3D Vision, which I worked with at university (photogrametry).

Is it still possible to get a 3D-Vision-Kit and is it possible to use it under a current ubuntu with KDE? If yes how easy is it to set up? Are there proprietary drivers?

Thanks in Advance.

The kits are out of production so it will be hard to impossible to get a new one. It would still work but in the long run, you’ll get nowhere with it. Rather look into alternatives. I suspect ‘traditional’ 3D (shutter/polarization glasses) is pretty much dead, HMD VR the only thing to stay.

1 Like

Hi sabined,

generix is right that the NVIDIA 3D Vision kit is discontinued, but the graphics driver does support a number of different stereo modes. Please refer to the README for the list, excerpted below: https://download.nvidia.com/XFree86/Linux-x86_64/440.82/README/xconfigoptions.html#Stereo

Your best best for modern systems might be to find a suitable display that supports in-band HDMI (mode 12) or DisplayPort (mode 14) stereo signaling.

Option "Stereo" "integer"

Enable offering of quad-buffered stereo visuals on Quadro. Integer indicates the type of stereo equipment being used:

Value Equipment
3 Onboard stereo support. This is usually only found on professional cards. The glasses connect via a DIN connector on the back of the graphics card.
4 One-eye-per-display passive stereo. This mode allows each display to be configured to statically display either left or right eye content. This can be especially useful with multi-display configurations (TwinView or SLI Mosaic). For example, this is commonly used in conjunction with special projectors to produce 2 polarized images which are then viewed with polarized glasses. To use this stereo mode, it is recommended that you configure TwinView (or pairs of displays in SLI Mosaic) in clone mode with the same resolution, panning offset, and panning domains on each display. See MetaModes for more information about configuring multiple displays.
5 Vertical interlaced stereo mode, for use with SeeReal Stereo Digital Flat Panels.
6 Color interleaved stereo mode, for use with Sharp3D Stereo Digital Flat Panels.
7 Horizontal interlaced stereo mode, for use with Arisawa, Hyundai, Zalman, Pavione, and Miracube Digital Flat Panels.
8 Checkerboard pattern stereo mode, for use with 3D DLP Display Devices.
9 Inverse checkerboard pattern stereo mode, for use with 3D DLP Display Devices.
10 NVIDIA 3D Vision mode for use with NVIDIA 3D Vision glasses. The NVIDIA 3D Vision infrared emitter must be connected to a USB port of your computer, and to the 3-pin DIN connector of a Quadro graphics board before starting the X server. Hot-plugging the USB infrared stereo emitter is not yet supported. Also, 3D Vision Stereo Linux support requires a Linux kernel built with USB device filesystem (usbfs) and USB 2.0 support. Not presently supported on FreeBSD or Solaris.
11 NVIDIA 3D VisionPro mode for use with NVIDIA 3D VisionPro glasses. The NVIDIA 3D VisionPro RF hub must be connected to a USB port of your computer, and to the 3-pin DIN connector of a Quadro graphics board before starting the X server. Hot-plugging the USB RF hub is not yet supported. Also, 3D VisionPro Stereo Linux support requires a Linux kernel built with USB device filesystem (usbfs) and USB 2.0 support. When RF hub is connected and X is started in NVIDIA 3D VisionPro stereo mode, a new page will be available in nvidia-settings for various configuration settings. Some of these settings can also be done via nvidia-settings command line interface. Refer to the corresponding Help section in nvidia-settings for further details. Not presently supported on FreeBSD or Solaris.
12 HDMI 3D mode for use with HDMI 3D compatible display devices with their own stereo emitters. This mode is only available on NVIDIA Kepler and later GPUs.
13 Tridelity SL stereo mode, for use with Tridelity SL display devices.
14 Generic active stereo with in-band DisplayPort stereo signaling, for use with DisplayPort display devices with their own stereo emitters. See the documentation for the “InbandStereoSignaling” X config option for more details.

Default: 0 (Stereo is not enabled).

Stereo options 3, 10, 11, 12, and 14 are known as “active” stereo. Other options are known as “passive” stereo.

When active stereo is used with multiple display devices, it is recommended that modes within each MetaMode have identical timing values (modelines). See Chapter 18, Programming Modes for suggestions on making sure the modes within your MetaModes are identical.

The following table summarizes the available stereo modes, their supported GPUs, and their intended display devices:

Stereo mode (value) Graphics card supported [1] Display supported
Onboard DIN (3) Quadro graphics cards Displays with high refresh rate
One-eye-per-display (4) Quadro graphics cards Any
Vertical Interlaced (5) Quadro graphics cards SeeReal Stereo DFP
Color Interleaved (6) Quadro graphics cards Sharp3D stereo DFP
Horizontal Interlaced (7) Quadro graphics cards Arisawa, Hyundai, Zalman, Pavione, and Miracube
Checkerboard Pattern (8) Quadro graphics cards 3D DLP display devices
Inverse Checkerboard (9) Quadro graphics cards 3D DLP display devices
NVIDIA 3D Vision (10) Quadro graphics cards [2] Supported 3D Vision ready displays [3]
NVIDIA 3D VisionPro (11) Quadro graphics cards [2] Supported 3D Vision ready displays [3]
HDMI 3D (12) Quadro graphics cards with NVIDIA Kepler or higher GPUs [2] Supported HDMI 3D displays [4]
Tridelity SL (13) Quadro graphics cards Tridelity SL DFP
Generic active stereo (in-band DP) (14) Quadro graphics cards DisplayPort displays with in-band stereo support

[1] Quadro graphics cards excluding Quadro NVS cards.
[2] http://www.nvidia.com/object/quadro_pro_graphics_boards_linux.html
[3] http://www.nvidia.com/object/3D_Vision_Requirements.html
[4] Supported 3D TVs, Projectors, and Home Theater Receivers listed on http://www.nvidia.com/object/3dtv-play-system-requirements.html and Desktop LCD Monitors with 3D Vision HDMI support listed on http://www.nvidia.com/object/3D_Vision_Requirements.html

UBB must be enabled when stereo is enabled (this is the default behavior).

Active stereo can be enabled on digital display devices (connected via DVI, HDMI, or DisplayPort). However, some digital display devices might not behave as desired with active stereo:

  • Some digital display devices may not be able to toggle pixel colors quickly enough when flipping between eyes on every vblank.
  • Some digital display devices may have an optical polarization that interferes with stereo goggles.
  • Active stereo requires high refresh rates, because a vertical refresh is needed to display each eye. Some digital display devices have a low refresh rate, which will result in flickering when used for active stereo.
  • Some digital display devices might internally convert from other refresh rates to their native refresh rate (e.g., 60Hz), resulting in incompatible rates between the stereo glasses and stereo displayed on screen.

These limitations do not apply to any display devices suitable for stereo options 10, 11, or 12.

Stereo option 12 (HDMI 3D) is also known as HDMI Frame Packed Stereo mode, where the left and right eye images are stacked into a single frame with a doubled pixel clock and refresh rate. This doubled refresh rate is used for Frame Lock and in refresh rate queries through NV-CONTROL clients, and the doubled pixel clock and refresh rate are used in mode validation. Interlaced modes are not supported with this stereo mode. The following nvidia-settings command line can be used to determine whether a display’s current mode is an HDMI 3D mode with a doubled refresh rate:

nvidia-settings --query=Hdmi3D

On GPUs before Kepler, if an active stereo mode is enabled, OpenGL applications that make use of Quad-Buffered Stereo and the GLX_NV_swap_group extension are limited to a max frame rate of half the monitor’s refresh rate.

Stereo applies to an entire X screen, so it will apply to all display devices on that X screen, whether or not they all support the selected Stereo mode.

That being the actual problem I was talking of. Discontinued, not only by nvidia. The last resort maybe being projectors but those only put out 720p@120Hz which isn’t really something to work with.
Of course you can still find something as a drop-in replacement for already running equipment but too insecure future to start something new upon it.