@olifre, yes you are right. Still no quadbuffering yet on non-Windows platforms without a Quadro.
I know Windows has got the quadbuffering even with Gforces a few years ago, so “supported on Quadry only” became “deprecated”, in fact there never has been a technical reason for that. It’s still looks like an excuse.
(well I see only one reason, but that’s really an ugly greedy reason…)
So let me rant a bit, why this is a huge problem. I’m trying to explain in detail just for documentation. We know nvidia to be (not anymore?) the “opengl company”, because their developers did a lot of brilliant work for the FOSS-community in the past (vice versa). But there has been a noticeable break on that in 2010.
Don’t get me wrong, I’m using Linux (+bsd +*unix) at all, but I am not bashing against Windows or Mac (user or developer) because we always need any kind of variety.
I am working once in while on this:
which is platform-independent. And I want to extend it this way only, but I cannot without having quadbuffering. Quadbuffer is the cheapest and most beautiful way to rewrite code for any kind of stereoscopics within 3D software. At least quadbuffering is really needed in conjunction with shutters at all. Any other kind of stereoscopic projection won’t really need that, but in sense of having a platform-independent API quadbuffering IS standard. So why blocking it on FOSS and Gforces but not on Windows and Gforces? That’s really a shame.
By the way, Quadro-Cards don’t fit all the needs in conjunction with 3D, they are very much specialised and too expensive for general 3D (+stereoscopics) applications.
Stereoscopic with nvidia shutters is “working” with my patch even with Gforces on Linux and
mode 10 (it will work with Windows and Mac as well). Mode 10 let’s my acer monitor (inbuilt IR-transmitter) sending the vsync-based signal to the glasses.
I assume the shutters will work more correctly on Windows with quadbuffering enabled, but I haven’t a feedback yet (prefering irc…).
but
Without quadbuffering I cannot ensure the correct eye (right or left) to be rendered “first”.
Results in: every dropped frame (and there are always dropped frames on any machine) results in changing the first
eye on the IR-Signal. Which represents the virtual problem at all in conjunctions with shutters.
Normally we don’t want to take care about the swapping the buffers anymore, but without quadbuffer we have to control it more natively. I also got an external IR-Transmitter working with Linux, with the same problem.
Workarounds without quadbuffering are platform-specific, I am going to avoid these.
A “simple” solution would be a kind of using the nvapi with something like
NvAPI_GetVBlankCounter (looks like windows only, too, why?)
Reading the count of dropped frames and recalculate the “first eye” would be a solution, but as mentioned
I don’t want those (gpu) hardware and platform dependent tricks in a roof of an platform-independent engine, additionally checking for dropped frames is “costly”.
It’s about loosing 2-4 ms within render process, which is mostly too much.
Quadbuffering is the thing which is needed to have beautiful code at all.
So why the heck nvidia still blocks quadbuffering it on Linux+Gforces?
Are the openGL coders fired? Meanwhile it looks like that.
For my understanding “3D-Vision” is the bundle of hardware (and driver hooking into dx3d engines) for gameing with windows. That’s okay with me.
Supporting quadbuffering and the shutters for being just shutter-glasses is not really “3D-Vision”, we will take care about stereoscopic in open-source software, and all I (and the other mates) need is simply
quadbuffering, and I really know it’s already in but blocked artificially.
BUT:
glxgears -stereo
Error: couldn't get an RGB, Double-buffered, Stereo visual
I’ve been faithful with nvidia over the years, maybe it’s time to switch to another GPU manufactor which already has quadbuffering as standard. And yes, there’s one.
This will be my personal “solution” when the moment for ng hardware arrives, and I’m still unable to use quadbuffering.
The way making people faithful with a company is just good support, but not excluding anyone.