Wednesday, April 25, 2007

the acursed nvidia..

So far all dev on this version has been on ATI Radeon cards using free software drivers. Works beautifully for every feature currently supported..

... and then one of the SoC students tries to get it running using his nVidia card w/ their proprietary drivers. Black window, no pyramids, no widgets, no colors, not even the window's background color. Nothing.

I got the nVidia TNT2 ("legacy" proprietary driver) out to test it myself, same result as Angelo reported with a newer nVidia card/driver.

The black window, vs it not updating at all (ie, clear), comes from the double buffering. It's apparently the only thing working as all the actual OpenGL commands can be removed with the black window remaining.

ldd reports that the code is, indeed, linked against nVidia's OpenGL libraries on this machine. glGetError reports no errors. The window's rendering function is being called (if the glutSwapBuffers call is removed the window becomes clear). Single buffering mode is clear (ie, doing nothing) under all cases.

The next step is to write a small C program copying these functions and building it into a known-to-work GLUT tutorial until we get it to work. Time consuming, but at this point, I see no other solution. If this turns out to be a problem with FreeGLUT I swear I'm going to spend a week to finally tear it out of PySoy and replace it with our own OS-specific windowing code. It's consumed so much of my time already..

The good news I have tonight is the i915 DRI/Mesa drive apparently has GLSL support thanks to "brianp" on Freenode. Shocking, given the antiquated nature of the chipset, but if it can support GLSL I see no reason why the Radeon series GPUs cannot.

No comments: