Hello,
I've been looking for a good tool/IDE for authoring GLSL shaders (preferably
with an ability to debug them) and at this point my search came to a halt -
as it seems that there are tools available but none of them actually has
all the features I want and sometimes those tools are simply unstable to
the point of being completely unusable.
So I wanted to share my findings with OpenGL community and let me know/correct
me if I'm missing anything.
(I have to admit that my interest was partially sparked by this article:
http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX)
I'm being a hobbyist OpenGL developer for a few years now, have a big faith in
OpenGL and it is just discouraging sometimes when you realize that the only way
to figure out what is wrong with your shader is to use printf-style debugging
while knowing that the other camp (DX) has very powerfull and stable tools,
like PIX for example.
Ideally I would like to have a tool/shader authoring IDE that would allow me to
do the following:
1) Syntax highlighting + intellisense (language version sensitive);
2) Tooltips for function parameters (like in Visual Studio) + context sensitive help;
3) Debugger with autos/locals/watch-window/breakpoints/run-to-cursor support,
pixel-debugging features, etc.
The tools I looked at are these ones:
1) glslDevil: I had high hopes for it. Looks very nice on screenshots and even provides
hardware-aware debugging. But! - most of the time it just crashes on me
(I'm on Windows Vista Home Premium 64-bit running 2xGF280 SLI);
I need to turn off OpenGL function call trace to get faster to the next shader switch -
otherwise it takes very long - 15-20 minutes or it just freezes. Every time
(95% of all attempts) when a click the Pause button (in the GL Trace window) it crashes.
Another problem: I could never fully debug vertex shaders - I could not get
the values of the variables displayed.
When (while debugging a vertex shader) I click the 'add to active window' button (Watch window)
it crashes always.
Thus: hardly usable at all (and I checked - there are no detectable GL errors).
2) NVIDIA's FX Composer (2.5):
From the overview video seems to be a very nice tool - and just what I need - but!
no GLSL support - and it does not seem to be provided any time soon.
From what I found on forums - adding GLSL support is quite hard as structure
of GLSL program is quite different from Cg/HLSL - no techniques/pass/includes support...
3) Render Monkey (1.82);
The best tool so far (and I'm using it) - but no debugging support.
4) Shadesmith:
No GLSL support; requires source code modification; fragment shaders only.
No updates since 2003.
5) NShader:
*) only provides syntax highlighiting;
*) only supports VS 2008 (I have VS 2005 a see few reasons to
upgrade to 2008 as I'm mostly doing C++)
6) Typhoon Labs Shader Designer:
*) Crashes on Windows Vista/7. Could get it to work though on Windows XP.
*) Supports intellicense and syntax highlighting;
*) Does not support shader debugging;
*) No longer updated as the development has been ceased - thus does not
support latest version of the language.
So is this the state of affairs in OpenGL land?
Thanks for your feedback.
P.S. I guess I should just send bug reports to the glslDevil team hoping that they would
fix them in less than a year...