I'd like to do Quad-Buffered 3D Stereo display stuff in Linux.
The 3D Vision stuff sold by NVidia only works either with Direct3D on Windows or with their expensive quadro cards and OpenGL,
but they have no solution that would work with a graphics card that i can afford and Linux (or even OpenGL on Windows)
So my questions to you guys, concerning the gamer-type graphics cards (not the pro stuff that i can't afford):
* Is it currently possible to use AMD's HD3D with Quad-Buffering on Linux?
* and does it work with OpenGL on Windows?
Quad buffered stereo with consumer grade HDMI/DP displays (i.e., TVs) should work on recent drivers in OpenGL on Windows Vista and beyond. There are certain restrictions. You need a Radeon HD 6000 series board or newer. You will need to write a full-screen application and set the display mode to something the TV recognizes as a 3D mode, which will vary from display to display. Generally, standard TV formats work - 1080p, 720p @ 60Hz. When choosing a pixel format, include the PFD_STEREO in the dwFlags field of the PIXELFORMATDESCRIPTOR structure passed to ChoosePixelFormat (http://msdn.microsoft.com/en-us/library/dd318284%28v=vs.85%29.aspx). If you have a 3D-capable system, you should see stereo modes reported.
Unfortunately, consumer displays are not supported under Linux right now - although the professional 3D displays are and the same code should work for both Windows and Linux. No additional libraries or SDKs are needed.
thanks for the reply.
If i understand correctly, Quad-Buffered 3D should work under Windows with a >= HD6000 and the PFD_STEREO flag. I'll try that, thanks. That's already great news (and quite better than nvidia's artificial no-stereo-opengl-on-consumer-devices policy)
What I didn't quite understand though is the linux side:
1) first of all, you make a difference between consumer and professional 3D displays. Uhm... how do i know which Monitor i can buy so that it will work?? if the distinction is about stereo via HDMI 1.4a formats (which afaik do 1080p stereo only up to 24p and 60p only up to 720 lines) versus 120Hz-based monitors then i could understand. But otherwise? what's the distinctive criteria to know which monitors and projectors are OK for this? (especially for monitors if i'd like to do 1080p at more than 24p, say at 120Hz=60p stereo) ?? Is any monitor that would work with NVIDIAs vision glasses (which need 120Hz to do 60Hz stereo) ok?
2) independently of 1) please, if possible, do add support for consumer displays on linux as well and please do tell your collegues in marketing (which probably measure linux only by market share) that the interest for stereo 3D is on average way higher and that the developer density is orders of magnitude higher among linux users than among windows users. in other words: making quad-buffered stereo 3D accessible to consumer devices on linux would be a move that has a developer conversion impact far higher than on windows. Those guys (me included) will deveolop programs that run on both operating systems. Or, to formulate it the other way around: if a solution is not available on linux, then this has a negative impact on its adoption on windows too, simply because many developers use linux a lot (even if they sell primarily to windows users) and look for solutions that do both. So please add that if possible.
3) on linux, do i have to do anything equivalent to the PFD_STEREO flag thing under windows?
First, by consumer display, I mean one that takes the stereo sync signals from the digital input over DVI-D, HDMI, DP or similar technologies. There certainly are high quality displays that could be considered professional grade in that category, but in general, these are TVs and TV/monitor combo devices. Professional 3D displays include multi-monitor devices (including HMDs), displays which decode embedded sync signals within the image itself and devices that make use of the standard workstation stereo connector (http://www.stereo3d.com/vesa3.htm). Those types of displays are not supported on consumer (Radeon) boards.
On Linux, X is the normally window system through which applications interact with OpenGL. In X, the equivalent of ChoosePixelFormat is glXChooseVisual. Documentation may be found at http://www.manpagez.com/man/3/glXChooseVisual/ amongst other places. If you include the GLX_STEREO token in the attribList parameter, it should give you stereo visual configs if they're supported by the system. Like I said, this will not work on our consumer (Radeon) GPUs but it will work on professional products (FirePro) assuming a compatible display is connected and configured.
Support for consumer stereo on Linux theoretically possible, but is not implemented at this time.
Finally, I can't comment on support for NVIDIA products, but my guess is that their shutter glasses will not work with AMD hardware. However, I've never tried this and don't even know if they're physically compatible.
> Support for consumer stereo on Linux theoretically possible, but is not implemented at this time.
Is there a timeline for consumer stereo visuals on Linux? I'm currently evaluating platforms for scientific computation and 3D visualization for the home. [edit: I have a Radeon 6970 that I currently use for OpenGL/OpenCL work under Linux (works great btw), but if would be fantastic to be able to do 3D with it without having to reboot into windows, upgrade, or switch vendors.]
Thanks for your time.
Thanks for the info. I'm also looking to output OpenGL quad buffered 3D over HDMI. I have a FirePro V4900 - should that also work or do I need to get myself a Radeon card? And, if the V4900 should work, do the same instructions apply?
Yes, HDMI stereo should work with a FirePro V4900. You will need recent drivers, and I don't know if the updates have made it to a workstation certified driver yet. Keep in mind that HDMI stereo is for full-screen applications only. Professional DCC/CAD type applications that typically run in Windowed mode will not work in this mode - you will need a professional 3D display for that.
I've had no luck with the current FirePro drivers for my V4900, so I'm guessing I just need to wait on that. In the meantime, could I please ask if you would you expect any of the HD6000 and HD7000 series Radeon cards currently listed on:
to be OK or do I need to stick to the higher end of those scales?
All Radeon HD 6000 series and 7000 listed on that page support HD3D stereo with OpenGL in Windows. There is no reason to stick to the high end, although a better card will obviously perform better, which might be important as you're essentially going to be rendering everything twice.
seems AMD brought earlier this year Crossfire support for HD3D (I assume this is in D3d driver only?).. is this also true for OpenGL stereo contexts?.. if not, there are plans for implementing support also?
also are you going to add HD3D OpenGL support also in 5xxx series?