If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

3d stereo support (quad-buffer stereo)

04-20-2010, 06:46 PM

Do we know anything about the state of quad-buffer stereo in the open-source stack (either for r300 or, preferably, for r600)? Do the docs include the necessary information? Has anyone managed to get this working?

I guess this is not a high priority right now but are there any plans to include stereo at some point? Would patches be accepted if someone actually manages to implement it?

Most of the work is HW-independent driver effort. For the part that is HW-dependent, I'm not sure if the GPU itself is involved with communicating which-eye info to the display/glasses or whether that's specific to the board (and not our IP).

I was under the impression that only FirePRO boards supported stereo today, but maybe that's out-of-date info.

Comment

Most of the work is HW-independent driver effort. For the part that is HW-dependent, I'm not sure if the GPU itself is involved with communicating which-eye info to the display/glasses or whether that's specific to the board (and not our IP).

I was under the impression that only FirePRO boards supported stereo today, but maybe that's out-of-date info.

Active stereo needs dedicated hardware for the sync signal, that's certain. FireGL/Pro cards have dedicated outputs (probably IP-encumbered) but it's also possible to use the sync signal of VGA cables if you don't have those outputs.

Passive stereo should be doable without a dedicated sync signal. All it takes is splitting left/right buffers to two different output connectors. Obviously, you then need a two polarized projectors which is not exactly cheap but hey! Geforce 256 & 2 cards used to support 3d stereo out of the box. It's sad to see modern hardware disable that feature for no good reason (for the consumer).

I kinda wonder how modern 3d TVs operate. They probably generate their own sync signal for active glasses, in which case it should be trivial to enable 3d stereo in the drivers without infringing upon any IP: just advertise stereo formats and make sure to set the correct refresh rate. Make odd frames display the left buffer and even frames display the right buffer and the TV should handle the rest. (Kinda wonder if this can be achieved even without driver support).

Does anyone have any more information on this topic? Even better, is there anyone with a 3d TV willing to run some tests?

Interesting overview and implementation, although it was somewhat lacking in details (e.g. polarized glasses can - and tend to - use circular polarization so they can work even if you tilt your head).

It seems my gut feeling was correct, 3d HDTVs split odd/even frames and contain a built-in IR emitter to generate the sync signal. All you need is a pair of (rather pricey) active glasses.

Now the question is whether the OSS drivers can be made to support this kind of stereo rendering, i.e. display the left buffer on odd frames and the right buffer on even frames. The driver would need to provide 4 buffers instead of two (front-left/right, back-left/right) and expose the necessary visuals and maintain some kind of frame counter so it can select which buffer to use for scan-out. Since the sync signal comes from the TV, that's all it should take (at least from my naive, non-driver-developer perspective).

In fact, this could be emulated without driver support but the result would be very fragile (drop below 120fps and you have a 50% chance of flipping the left/right channels).

Any driver developer care to offer some insight on this matter?

Comment

If you want to pursue this, I would recommend checking out the DisplayPort 1.2 spec. It includes protocols for 3D stereo, so it seems to me that you could restrict your effort to generating the left and right images, and leave the hardware-specific display details to the display device.

Comment

As 3D is coming up fast and whit a vengeance to the consumers right now whit 3D tv and 3d bluray etc I think it would be a good idea for the OSS developers to consider looking into and implementing the necessary things for it to be able to work.

It would be nice if the implementation is started as soon as possible to not lag behind ages as the 3D introduction really starts going.
Though it still is a niche thing at the moment and has steep price factors.

I don't have the money or things needed but I've been looking into the whole 3D thing as of late and can tell it seems to be something quite nice to have. In the future I would for sure want to be able to play any game in 3D, either whit a active shutters or passive polarization. (though I am more interested in the passive implementation(though the industry seems more interested in the active one sadly))

I've been waiting for the OSS drivers to mature before I really go over to Linux. The limited 3d and video still keeps me at bay to adopt it. (only have ati graphics in all computers I have)

Heck when I really finally see the graphics drivers work I might start go back into programming. I was not to keen whit learning to program for windows and basically just stopped and put it away until I see the necessary groundwork done in Linux.