PDA

View Full Version : AMD bug: GL 3.x glClearBuffer - access violation



BionicBytes
10-13-2011, 02:50 AM
Has anyone else noticed, but none of the newer GL 3.x versions of glClear work. Each time they are executed I get an access violation - yet they work fine on my Geforce 8600m.

I'm using a GL 3.3 compatability profile, Catalyst 11.10 preview2 drivers with a Radeon 4850.
The same problem has existed on all catalyst versions ever since GL 3 was introduced; I have tried Cat 10.3, 10.7, 10.9,11.1,11.9 and now 11.10 p2 Catalyst drivers - all with the same result.

I have coded around the issue in my main part of the rendering engine with the following (testing for AMD h/w):


if (glwindow.RunTime.RendererInfo.SupportedExtensions .GL[Opengl_30]) AND (NOT glwindow.RunTime.RendererInfo.VendorATI) then
begin
glClearBufferfi (GL_DEPTH_STENCIL, 0, 1.0, 0);
glClearBufferfv (GL_COLOR, 0, @scenevariables.ClearColor.r); //mrt color
if MRT_RENDER_ENABLE then
begin
glClearBufferfv (GL_COLOR, 1, @MRT_Normal_Clear.r); //mrt normal
glClearBufferfv (GL_COLOR, 2, @MRT_Position_Clear.r); //mrt position
end;
end else
begin
glClearDepth (1.0);
glclearstencil (0);
glClearColor (scenevariables.ClearColor.r, scenevariables.ClearColor.g, scenevariables.ClearColor.b , scenevariables.ClearColor.a);
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT or GL_STENCIL_BUFFER_BIT);
end;


but now that I've created an RGBA unsigned Integer texture (GL_RGBA32UI internal format) for object picking and selection, the same issue has cropped up again.


glClearBufferuiv (GL_COLOR, 0, @Black_ClearColorUI.X) //Black_ClearColorUI: TVertex4ui = (X:6;Y:1;Z:100;W:0);


So basically, on AMD drivers, calling either glClearBufferuiv or glClearBufferfv causes an access violation.

Anyone else have the same issue?
can someone from AMD fix this please.

Hongwei Li
10-13-2011, 10:00 PM
yet again I doubt the robustness of the opengl language binding. I am not saying it is not problem of the driver, but it should not be the problem of these two functions. The real criminal should be elsewhere in the driver, I guess.

If possible, could you send me the faulty code?

BionicBytes
10-14-2011, 02:04 PM
The code I posted above will cause the problem. Do you want me to send some sample binary - I could but it's surely easy to reproduce?