I am a beginner with GLSL programming. It seems glsldevil is a wonderful shader debugging tool: http://www.vis.uni-stuttgart.de/glsldevil/. Is there anyone used this tool before? I have a problem that I cannot view the shader source and debug them as the webpage describes, although I can make my program run or stop at a draw call.
Never used it. Anywhow, maybe you’re debugging a vertex shader on an old card.
Vertex shader debugging is disabled. Why?
To debug vertex shaders your graphics hardware needs to support the NV_transform_feedback extension. This is currently supported for example on NVIDIA G80 based cards.
Nah… I think the shader debugging facility in glsldevil is broken, I am running it on a NVIDIA Geforce 8800 GTX and I havent either been able to use the shader debugger.
I use the glsldevil for debugging shaders on a 8800 quadro.
The debugger works wonderfully, I can see any uniform, variable value, see the if/else condition branches and much more.
I usually run it until next shader switch (this show the shader source in the source editor) than just step each call until the draw call. Using these steps I can always debug the shader.
Sometimes the shader debugging fails if there is an OpenGL error in the code around the shader, clearing it up solves the problem.
Thanks! I am thinking that the problem might relate to the application property. The glsldevil specification says multithread is not supported. But when I set my cpu core number to 1, it still doesn’t work.
Multithreading is no problem as long as only one thread makes OpenGL calls using one context. The number of CPUs/cores is not relevant here as your app stays multithreaded.
For shader debugging, try the following steps:
Hit F6: The app should run until a shader is activated, the source code should appear in the shader source window now
Hit F7: The app runs until the shader is used. If it stops,
Hit Ctrl+F5: Shader debugging session should start