Cross-platform Shaders can be a Pain

I've been trying to push out the next beta of PyOpenGL 3.0.1 for a while now.  However, as noted before, I've now got a semi-automatic test suite... and it's failing on Win32.  So far all of the problems have come down to test-suite issues, but they've been exposing some annoying behaviors of the ATI Win32 drivers on my Vista install:

  • interpolation between positive floats in a varying array is causing *negative* values to show up in the fragment shaders
  • attempts to draw into a select buffer with certain shader-based geometry is causing the GL to crash/hang

no big deal for the first, one of those "um, that's dumb" issues; you see your geometry showing arbitrary view-space changes and you're pretty sure it's something wrong with the shading calculation... but it takes a while to debug a "finished" shader, so each bug requires lots of in-short-supply time to verify and fix.  Worse, I have to work in Win32, where I don't have a reasonable development environment set up.  I say these are annoying behaviours, incidentally, because the *same machine* runs the same code perfectly well under Ubuntu Karmic.  I may try with the latest Catalyst on Win32 just to see if it solves the issues.

Anyway, there's still a few bugs there, which aren't *likely* in PyOpenGL, more likely in the tests/tutorials, but I don't want to release with the test-suite not passing.  Anyway, I have some client work to get done before I get another chance to sit down to PyOpenGL.  I'd like to get 3.0.1 final out before PyCon so that I can work on other projects during the sprint (maybe a game?)


Comments are closed.


Pingbacks are closed.