How to avoid BlueScreens on Windows and GLSL bugs?


Under Windows XP (not Windows 7), when there is a GLSL bug or an infinite loop inside a shader, for instance, a Blue Screen Of Death (BSOD) shows up, causing a reboot. Sometimes, when I’m lucky, I manage to kill the process before the situation gets too bad - not always though.

Is there a way to avoid these BSODs without upgrading my OS to Windows 7 (which has graphics driver protection)?

Any idea is welcome,


Note: my XP box has an nVidia card (Fermi), if that matters.

Use explicit loop counters and break loops at certain counter thresholds (plus output a signal color at the broken fragment)… Its the only thing i can think of that will help here without help from the graphics driver.

I would give it a try with a Radeon if you have access to one as I think that should not BSOD XP. Otherwise go with Chris’ idea.

Thanks both of you for your replies.

Lately I have been unable to run my shaders on AMD hardware, they just hang, and indeed cause a graphic driver recovery (my AMD card is on a Win7 box). 1-2 years ago AMD GLSL support was really bad: the compiler would literally produce corrupted code too often. It’s been much, much better since late 11.x driver releases but, apparently, still not perfect. I’ve already lost the weekend “debugging” my shader, which was causing GPU crashes… only to realize it was working perfectly fine on nVidia hardware this morning. I’m nearly sure the AMD GLSL compiler produced incorrect code again, or just that runtime behavior goes wrong.

Chris’s suggestion is otherwise definitely the way to go.

Quite note, for what it’s worth: the new Catalyst 12.4 drivers do not solve my problem on the AMD platform (program freezes).

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.