I have a crash of driver 344.11, 344.48, 344.60 & 344.65 with a simple vertex (or fragment) shader that works with previous versions of the driver.
It was tested on different computers with a GTX 660, GTX 680, GTX 770 or GTX 780, running on Windows 7 64-bit.
The vertex shader is:
attribute vec2 coord2d;
uniform int iMax;
void main(void)
{
vec4 pos = vec4(coord2d, 0.0, 1.0);
for (int i = 0; i != iMax; i++)
{
pos = 1.01 * pos + vec4(0.2, 0.0, 0, 0);
}
gl_Position = pos;
}
iMax must be a uniform.
The application sets the uniform to 1
GLint iMax = glGetUniformLocation(program, "iMax"); glUniform1i(iMax, 1);
and displays an image
glUseProgram(program);
...
glutSwapBuffers();
Then the uniform is set to 2
GLint iMax = glGetUniformLocation(program, "iMax"); glUniform1i(iMax, 2);
and when the second image is rendered, the driver crashs (TDR under Windows).
Note that if the loop is into a fragment shader, the same problem occurs.
I can join the source code of the simple application if my explainations are not sufficient.
Thanks