Issues with ATI GLSL compiler/opengl drivers

Hi,

Our team is working on a new Engine based on OpenGL 2.0 and has heavy focus on GLSL shaders. While we have a very solid rendering path up and runing on our nVidia hardware, we are almost struggling with ATI GLSL compiler issues which isn’t making life any easier for us. Following are the issues we are having lately with our shaders/renderer on ATI hardware.

1 - No rectangular texture support (ARB_texture_rectangle).
2 - No, floating point texture support (nVidia has promised in the 75xx series of their drivers).
3 - Bad GLSL support. Array decleration problems on 9700 pro. Does not give compile time error but undefined behavior at run-time. Possibly register allocation issue or instruction count exceeds limit. But GLSL specification does not define any instruction count. Even low end nVidia cards behave fine (even for very large number of instructions).
4 - Very annoying Sampler access bug. Accessing more than 3 or 4 texture samples in fragment shader causes crash.

We are using ATI catalyst 5.2. Has anyone else also come accross such issues? If so, has anyone contacted ATI about these? and what are their comments on it?

Regards,
Mohsin

  1. Use EXT_texture_rectangle instead ( http://www.ati.com/developer/sdk/RADEONSDK/Html/Info/Extensions/GL_EXT_texture_rectangle.html , I do not know if / how this is exposed to GLSL, though).
  2. What about ATI_texture_float ( http://oss.sgi.com/projects/ogl-sample/registry/ATI/texture_float.txt )? That’s what the ARB extension is based on. ATI probably just “forgot” to “rename” it.
  3. & 4. I have no experience on this, sorry.

ATI drivers have some problems with GLSL since Catalyst 4.8 or 4.9 (I don’t remember).
Some people here speculated that they change their OpenGL driver when Doom3 was released.
The real thing is that there are some bugs that has been reported in this forum (you can search for ATI in this forum to see some of them). I test every new release but they don’t solve anything.
ATI has a track record for bad drivers for years. Last years they became to improve their drivers a lot. In fact, they were the first to release a GLSL driver. But at the middle of the last year they stopped improving the functionality of their opengl driver (it seems that the D3D people are also not very happy) and came back to their usual way of do their drivers.
‘This is the way ATI works’ ™

I had a Radeon 9800 in my working computer for some months til mid last year (I have had most ATI cards during years but I just use them for testing) but I had to remove when they break their drivers. Now I have a GF6800GT and it is the card I recommend to everybody. If you are a serious developer you should have one of it. :slight_smile:

Originally posted by Fastian:
1 - No rectangular texture support (ARB_texture_rectangle).
2 - No, floating point texture support (nVidia has promised in the 75xx series of their drivers).
3 - Bad GLSL support. Array decleration problems on 9700 pro. Does not give compile time error but undefined behavior at run-time. Possibly register allocation issue or instruction count exceeds limit. But GLSL specification does not define any instruction count. Even low end nVidia cards behave fine (even for very large number of instructions).
4 - Very annoying Sampler access bug. Accessing more than 3 or 4 texture samples in fragment shader causes crash.

There is definitely float texture support. Don’t know about 3. I recall an array bug, but it’s been fixed. Never heard of the sampler access bug. I’ve had shader sample tens of samples without problems. Do you have a repro shader you can post?

Originally posted by Humus:
Never heard of the sampler access bug. I’ve had shader sample tens of samples without problems. Do you have a repro shader you can post?
I’ll try to compile a sample application with the sampler access bug and send it to you, probably by Monday. I’m out of office till then.

Thanks
Mohsin

Originally posted by Zak McKrakem:
Now I have a GF6800GT and it is the card I recommend to everybody. If you are a serious developer you should have one of it. :slight_smile:
Actually our engine performs very well on ATI boards AFA performance is concerned, It’s these small driver issues that keep stallin our development efforts. ATI doesen’t have a developer network as extensive as nVidias nor do they give any proper description of whats the status with their current drivers in terms of feature support, even to registered developers.

I found a new bug in new ATI drivers!!! (I think that means Catalyst 5.1 as well). When I try to share resources between many contexts using wglShareLists, I’ve noticed that shaders are shared but they produce very different artifacts (looks like memory artefacts on textures). My test shader was:

gl_FragColor=vec4(1,0,0,0);

I know that it is a bug because on earlier drivers everything worked perfectly (the same code). Help me please maybe there is an another solution to fix that?

Originally posted by bonzaj:
I found a new bug in new ATI drivers!!! (I think that means Catalyst 5.1 as well).
ATI just released Catalyst 5.3. They claim to have official OpenGL 2.0 support and looks good from the documentation. I haven’t tried them out yet but they should solve most of the problems.

Originally posted by bonzaj:
[b]I found a new bug in new ATI drivers!!! (I think that means Catalyst 5.1 as well). When I try to share resources between many contexts using wglShareLists, I’ve noticed that shaders are shared but they produce very different artifacts (looks like memory artefacts on textures). My test shader was:

gl_FragColor=vec4(1,0,0,0);

I know that it is a bug because on earlier drivers everything worked perfectly (the same code). Help me please maybe there is an another solution to fix that?[/b]
This is a known bug and it was fixed recently. It apparently didn’t make it into Cat 5.3 though.

strange. Their docuemnt says non power of two texture support but apparently I still can’t use rectangular textures in GLSL :frowning:

humus: great news! silly me that I haven’t checked it before, and run out with this old bug feedback :slight_smile:

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.