I’m developing a native app on Mac Mini 2010 model (with GeForce 320M video card) under OS X.8.2. One specific shader causes the application to be unstable.
In 50% launches I can see half-drawn (in a sense that not all objects are there) first frame blinking with black.
In other 50% launches it goes fine, while still there is a 5-10% chance of going into blinking mode in about 10 seconds past the start.
When in blinking mode, the app is semi-responsive. Most often my message loop code is still running (and I close can close the app normally), but sometimes (20%) the whole system freezes for about 5 sec. One time it didn’t unfreeze at all, forcing me to reboot. I suspect these freezes are driver reset pauses (experienced similar behavior with Catalyst on Windows station as well).
No symptoms are detected if I don’t use the shader, though I didn’t test this too much. The shader is relatively simple: deriving the normal from a height map (not using dFd* instructions), using it for tangent space lighting with a single point light with no shadow. Shader compile/link logs don’t say anything. I tried cutting off shader features to find out what exactly the driver doesn’t like, but it turned out that there is no exact thing it doesn’t like. Cutting features off just slowly reduces the chance of bug happening.
I tried using OpenGL Profiler (bundled with XCode) to investigate, but it crashes randomly when the app is in that blinking mode. When the app runs OK, the profiler also works fine for me.
My question is: how do I investigate the case? What debug information I can see?
I could provide a testcase for Apple/Nvidia but I’m not sure who to contact on the matter.