AnsweredAssumed Answered

Where to submit AMD driver bug ? Got one

Question asked by cippyboy on Oct 2, 2013
Latest reply on Oct 4, 2013 by nou

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;      

}

Outcomes