Xpra-org / xpra

Persistent remote applications for X11; screen sharing for X11, MacOS and MSWindows.
https://xpra.org/
GNU General Public License v2.0
1.92k stars 165 forks source link

stereo display support #1316

Open totaam opened 8 years ago

totaam commented 8 years ago

Issue migrated from trac ticket # 1316

component: core | priority: major

2016-09-20 08:21:48: antoine created the issue


For VR, etc..

This is likely to be tied to how each graphics drivers implement stereoscopic support. I don't see how this can be implemented or emulated in the dummy driver in a meaningful way using the software opengl renderer. We could use two virtual dummy screens, but forcing applications to use separate screens for each eye is likely to be very difficult, even with a virtualgl-like interposer.

This may require us to run in desktop mode with multiple X11 screens and forward each one to the client.

Then the client code probably just use a PFD_STEREO context and render each eye with glDrawBuffer(BACK_LEFT) / glDrawBuffer(BACK_RIGHT). See the opengl example in NVIDIA 3D VISION PRO AND STEREOSCOPIC 3D. (we don't need to worry about fulcrum and parallax)

See nvidia driver xconfigoptions.

Other links:

totaam commented 8 years ago

2016-09-20 12:53:27: antoine changed status from new to assigned

totaam commented 8 years ago

2016-09-20 12:53:27: antoine commented


Referring to the nvidia stereo options values:

  • 3 "onboard stereo" - not possible to forward (relies on a physical proprietary DIN plug)
  • 4 "One-eye-per-display passive stereo": can be captured and forwarded
  • 5 "Vertical interlaced stereo mode, for use with SeeReal Stereo Digital Flat Panels.": could be made to work but probably just a variant of 4, and 4 is easier
  • 6 "Color interleaved stereo mode, for use with Sharp3D Stereo Digital Flat Panels." - same as 5
  • 7 "Horizontal interlaced stereo mode, for use with Arisawa, Hyundai, Zalman, Pavione, and Miracube Digital Flat Panels." - same as 5
  • 8 "Checkerboard pattern stereo mode, for use with 3D DLP Display Devices." same as 5
  • 9 "Inverse checkerboard pattern stereo mode, for use with 3D DLP Display Devices." - same as 5
  • 10 "NVIDIA 3D Vision mode for use with NVIDIA 3D Vision glasses." - probably not possible (USB device)
  • 11 "NVIDIA 3D VisionPro mode for use with NVIDIA 3D VisionPro glasses" - worse than 10
  • 12 "HDMI 3D": unlikely to work
  • 13 "Tridelity SL stereo mode, for use with Tridelity SL display devices": unlikely to work

So the only mode that we're likely to be able to forward is (4). Even if some of the other ones could be captured somehow (5, 6, 7, 8, 9), handling the data would be complicated and require extra work for no benefit.

What is used client-side for actually displaying the two views we have captured should not be a concern and we should even be able to use all 3D capable GPUs via the opengl client.

totaam commented 3 years ago

2020-10-04 13:58:45: antoine commented


Re-scheduling due to lack of interest.