Overview of specific behaviour on ATI/nVidia Cards

Started by
3 comments, last by Yann L 16 years, 5 months ago
So I did have a lot of trouble with shaders in the past because of some "different" implementations of ATI and Nvidia, or implementations deviating from the standard. Example: gl_ClipVertex, using LINE_SMOOTH causing fallback to software rendering, only specific buffer formats for FBOs are accelerated. I found some solutions by try and error, some in forums, some in documents around the web. But not all on the official vendor sites. So the question is if somebody has done a tabular overview of common mistakes or specializations for use with shaders. E.g. tips for special hardware acceleration features like ATIs HiZ, or states causing fallback to software mode and so on. Such a list would greatly improve shader performance and drecrease debugging time. A notation referring to affected hw would be nice either. Somebody knows of such an overview or has interest in contributing with his/her own experience to create one? [Edited by - bene81 on October 31, 2007 5:17:40 AM]
Advertisement
Seconded...

But does anyone know what the differences in implementations are?

– and are there any other graphics hardware manufacturers doing more odd things with what I thought was a clearly defined specification?
Some info can be found here:

http://ati.amd.com/developer/SDK/AMD_SDK_Samples_May2007/Documentations/ATI_OpenGL_Programming_and_Optimization_Guide.pdf
http://ati.amd.com/developer/SDK/AMD_SDK_Samples_May2007/Documentations/Depth_in-depth.pdf
http://download.nvidia.com/developer/GLSL/GLSL%20Release%20Notes%20for%20Release%2060.pdf
http://developer.download.nvidia.com/GPU_Programming_Guide/GPU_Programming_Guide.pdf
Except for the official performance guidelines, such advice is difficult to give, because it isn't 'stable'. A trick that worked well and fast on one driver revision might be completely broken or inefficient after the next driver update. Even the best performance guidelines issued by NV or ATI are only valid for the GPU type they were written for. Using them on anything else can even decrease performance. Best example is GF7 vs. GF8 series. A lot of the GLSL performance tricks that worked well on a GF7 will decrease performance on a GF8. Because the former is a vector GPU and the latter a scalar.

Conclusion: be careful with performance tricks. They can backfire.

BTW: and while we're on the topic of weird OpenGL behaviour, let me relink to my good and well trusted partial ATI OpenGL buglist. If anyone feels like extending it, go ahead.

This topic is closed to new replies.

Advertisement