PDA

View Full Version : 5770 driver crash w/ atmos scattering demo



hound
08-04-2010, 10:48 AM
I've been looking into atmospheric scattering, and running the code found here (second project down - Atmosphere) (http://evasion.inrialpes.fr/~Eric.Bruneton/), and exactly every other time I run the program, the driver crashes and the notification bubble with "display driver has stopped responding and has successfully recovered" pops up.

I tracked it down once to a specific statement in the glsl, and changing it to some equivalent code, and that worked for a while. But now the problem has returned, and also happens in my own adapted version of the code. Has anyone else with an ATI card tried to run this demo and experienced crashes?

I'm using Windows 7 64 bit, with an HD5770.

heyufool1
08-04-2010, 10:58 AM
I also have Windows 7 64bit with a HD 5770 but, I can't compile the source because I don't have the tiffio.h file. So, if you could show me where to download it I'll do so and test the code out.

hound
08-04-2010, 11:08 AM
Thanks. You need to have libtiff (http://www.libtiff.org/), and glew as well.

heyufool1
08-04-2010, 11:43 AM
I'm trying to get it working but I don't know how to compile it so I found a .lib download of it and now I'm getting some other errors... Why can't the developers just provide the lib and dll?

hound
08-04-2010, 11:59 AM
Yeah. libtiff is an especial PITA to compile. It's only used in the demo for loading the earth texture though, so you could just comment out the loadTiff function, and where it's called (loadData), and pass 0 to glTexImage instead.

heyufool1
08-04-2010, 12:06 PM
Ok, it compiles now but when I run it I get:
"The application was unable to start correctly(0xc000007b). Click OK to close the application."...

EDIT: Well I fixed that problem but now I'm getting a bunch shader compile error which hopefully I can sort out...

hound
08-04-2010, 12:09 PM
Hmm. Did you put the glut dll in the exe directory? (forgot to mention glut earlier).

Edit: Ah cool.

I had to put an #ifdef _FRAGMENT_ in common.glsl around the functions, IIRC.

heyufool1
08-04-2010, 12:22 PM
I tried that and now I'm getting some other stupid errors:
"Assigning non-constant to = const highp 3-component vector of float"
Getting that error for every shader...

hound
08-04-2010, 01:02 PM
Hmm. I don't remember that happening for me.

marshats
08-04-2010, 05:14 PM
Just another data point -- On Ubuntu it compiles and runs fine (NVIDIA 9600GT card though) with only one addition to the Main.cpp file; #include <cstring>. The compile command is

g++ Main.cpp -lglut -lGLEW -ltiff

ps libraries glut, glew, tiff easily installed with synaptic GUI.

frank li
08-04-2010, 10:36 PM
I have a try with the project. There is no crash but the compiler threw out the error message - "Undeclared identifier gl_FragCoord.". I also can't find the message mentioned by heyufool1 - "Assigning non-constant to = const highp 3-component vector of float".

After looking at the shaders, it seems the common.glsl is used by both vertex shader and fragment shader, and gl_FragCoord is used in common.glsl. According to the spec, accessing gl_FragCoord in the vertex shader is illegal. I think it's helpful that you move the fragment shader method out of the vertex shader anyway.

hound
08-05-2010, 05:50 AM
Thanks marshats. Interesting to know it works on NVidia cards.

Frank: Yeah. Putting #ifdef _FRAGMENT_ in common.glsl around the functions should solve that. The NVidia compiler is more lenient I guess.

Once that change is in, the program should work, and that's when I get the driver crash.