ATI Catalyst 9.4 OpenGL bug with non-power of two textures
Published on 2009/04/21 by Igor Levicki
Sometimes I really wonder whether WHQL certificate has any other purpose except to allow hardware manufacturer's driver writer teams to pat themselves on the back when they get it.
Few days ago I have installed ATI Catalyst 9.4 driver update and yesterday I noticed a nasty OpenGL bug.
I am writing an OpenGL based image viewing utility which uses hardware acceleration for zooming and panning of large digital images. It uses Intel JPEG library which I modified a bit to use all available CPU cores for image decoding. Needless to say, it is blazingly fast and at version 0.48 the main code dealing with image display is stable and bug-free.
It worked perfectly until I upgraded to Catalyst 9.4 drivers, and now it doesn't work properly at all. At first I suspected that I have some mistake in my code, but since it worked flawlessly for several months, and it still works on NVIDIA cards I immediately suspected a driver bug.
The worst part is that I do not use any advanced OpenGL features, I only require support for NPOT textures. Guess what? That is exactly what is broken in Catalyst 9.4!
It is easy to reproduce, try loading a texture with X size larger than 2560 pixels (Y size does not seem to be relevant) — you will get completely garbled image.
As if that wasn't enough, they also broke VSYNC. if I turn VSYNC on to avoid tearing, with Catalyst 9.4 zooming and panning become horribly slow and application uses 50% of CPU time (half of a dual-core CPU).
I believe it is time that developers who allow such bugs to crawl into WHQL certified code (both at ATI and at Microsoft) get fired.
Either that, or Microsoft should stop wasting resources on WHQL testing, and allow unsigned drivers because clearly having a signed driver nowadays doesn't even mean it has been tested for basic regressions.