Looking on the forum, it's as if the drivers never have bugs. I tried looking for driver bug submissions but found none

I just found one with my HD7850 and latest 13.10 drivers

GLSL shader that after one frame stops all driver rendering and hangs.

The ofensive code (I think) is declaring an array of 3 structures as local variables and double referencing from uniform blocks.

//Inputs

in vec4 POSITION;

in vec2 TEXCOORD;

//Outputs

out mediump vec2 TexCoordVarying;

out vec3 PSTest;

uniform sampler2D Texture0;

uniform mat4 modelViewProjectionMatrix;

uniform vec3 ExtraTranslate;//z = Alpha

struct VertexData

{

vec4 POS;

vec4 TEX;

};

layout(binding = 0, offset = 0) uniform VertexBufferData

{

VertexData Vertices[ 16 ];

};

layout(binding = 1, offset = 0) uniform IndexBufferData

{

uint Indices[ 16 ];

};

layout(binding = 2, offset = 0) uniform BaryCoordsBuffer

{

vec4 BaryCoords[ 7 ];//for Level=2

};

vec4 interpolate4(in vec4 v0, in vec4 v1, in vec4 v2, vec4 BaryCoord)

{

return v0 * BaryCoord.x + v1 * BaryCoord.y + v2 * BaryCoord.z;

}

void main()

{

int PolygonID = gl_VertexID / 3;

int VertexIndex = gl_VertexID % 3;//- PolygonID * 3;

int PolygonIndices[3] = { PolygonID * 3 + 0, PolygonID * 3 + 1, PolygonID * 3 + 2 };

VertexData ReferencedVertices[3] = { Vertices[ Indices[ PolygonIndices[ 0 ] ]], Vertices[ Indices[ PolygonIndices[ 1 ] ]],

Vertices[ Indices[ PolygonIndices[ 2 ] ]] };

vec4 CurrentVertex;

CurrentVertex = interpolate4( ReferencedVertices[0].POS, ReferencedVertices[1].POS, ReferencedVertices[2].POS, BaryCoords[ VertexIndex ] );

vec4 CurrentTexcoord;

CurrentTexcoord = interpolate4( ReferencedVertices[0].TEX, ReferencedVertices[1].TEX, ReferencedVertices[2].TEX, BaryCoords[ VertexIndex ] );

PSTest = BaryCoords[ VertexIndex ].xyz;

vec4 ModifiedPos = CurrentVertex;

ModifiedPos.xy += ExtraTranslate.xy;

gl_Position = modelViewProjectionMatrix * ModifiedPos;

TexCoordVarying = CurrentTexcoord.xy;

}

if there is a GPU hang (as opposed to compilation failure), then please provide a full test case, since it is hard to reproduce with a single shader text.

this will make it easier for a bug to be reproduced/filed/fixed.

thanks,

Pierre B.