NV Driver BUG DXT5 ?

Has anybody seen a bug in dxt5 compressed images in driver 169.21 ? dxt1 and dxt3 seems to be fine bug dxt5 get mixed up horizontaly depending on mip level.

No, no problem observed over here (Windows XP, 169.21, GF8800GTS 512). All miplevels look correct. Maybe something wrong with the image data you send to GL? What datatype and what external format have you tested with? Are you setting PixelStore correctly?

The problem is originated to using texture compression so when i use the compressed format to send to opengl, the image gets corrupted.

Are you sure you use dxt5 all the way down to hw and not converting it in software ?

I have used the same code snippet in Gizmo3D for ages. Now the image gets somehow miplevel dependant flipped horizontaly.

Another API (OSG) also shows strange result.

Another API (NVSG) shows correct image but not sure they send compressed texture down the pipeline.

Multigen creator shows correct image but not sure they send compressed through OpenGL.

Here is a link to some screenshots


and more info on


Can anybody else confirm this bug ?

I can confirm this, I have the same problems on 169.21.

Some DXT1 textures are flipped vertically (I think only ones without mipmaps), and additionally DXT5 texture DO NOT MIPMAP AT ALL when rendered, thus aliases badly. It seems to fall back to GL_NEAREST filtering, even when I explicitly specify GL_LINEAR.

DXT1 mipmapping works fine, haven’t tried DXT3.

This happens with nVidia code that I picked up on the web somewhere, and always worked for me in the past.

Obviously another nVidia driver bug…sigh…

Isn’t it about time for Open Source drivers? How ironic the drivers are branded ForceWare

Small note: identical faulty behavior on both NX8800GT and NX7300GT, it does not seem tied to any hardware in particular.


I can confirm bad mip-mapping on DXT5. Also, I can say, that if I cancel to load last mip level (setting MAX_LEVEL and MAX_LOD to correct decremented number), everything works fine.

For me, I’ve found some kind of decision to make mip-mapping work. Before calling glCompressedTexImage2d() I call glTexImage2d() with NULL data, it seems to have no memory wastes and it fixes nearest filtering problem.

Interesting Jackis, I’ll have a look at that.

I’m getting consistent and correct results on the latest beta drivers. It appears fixed.