By Andrey Vorobiev
As S3TC technology is widely used and is a de facto standard for many cards, there's no need in comparing cards' work with and without it (as advantages are already clear). We'll just pause on NVIDIA GPUs that have a defect in S3TC realization that, however, can be fixed all right.
As it's known, games such as Quake3 have no previously compressed and specially processed textures in standard delivery, and with S3TC (FXT1) activation there is an autocompression of textures, thus the resulting picture looked different for cards supporting texture compression. Therefore we can compare autocompression quality on some video chipsets that "understand" texture compression, and also evaluate perfomance boost (on the example of Quake 3 with maximum quality):
NVIDIA GeForce 256/2/3
The difference can be seen even on small shots and it's against using S3TC. We see, that enabling S3TC boosts NVIDIA's GeForce chipsets though spoils quality.
The problem of poor compressed textures quality on GeForce / GeForce2 GTS chips is coupled to an unpleasant hardware unpacking feature for textures packed in DXT1 format. While unpacking such textures the chip operates with a 16-bit texel. This results in banding while unpacking textures, containing smooth gradients (this effect we see on sky textures of Quake III). The quality of compressed textures on GeForce / GeForce2 chips can be increased using DXT2 - DXT5 formats instead of the DXT1 format. This will not be a problem for developers, and will require a very small change of the game code (replacement of a one identifier). Certainly, such method will be good only for games, which do not contain precompressed S3TC textures, and that use realtime texture compression. (For example Quake III: Arena, Soldier of Fortune etc.) From the 6.47 version of NVIDIA's Detonator this problem is solved at drivers level. In OpenGL section the key S3TCQuality has appeared which is equal to 0 by default. This key operates with realtime texture packing. Setting this key to 1 will make OpenGL driver start packing textures into DXT3 format instead of DXT1 format.
If you don't want to mess with Registry or you've got an earlier Detonator, you can visit NVIDIA World site, where you'll be offered another way: to use a set of S3TC Fix Pack2 patches (by Alexey Nikolaychuk aka Unwinder (AlexUnwinder@mail.ru) together with Alexey Berillo aka SomeBody Else) to improve S3TC texture quality. These patches will update game's OpenGL, forcing them to use other format instead of DXT1. S3TC Fix Pack 2 has patches for Quake III: Arena, Soldier of fortune, and a universal patch for any OpenGL applications.
Alexey has written an utility, which corrects the code in Quake3.exe, forcing to use other unpacking algorithms. After patching we get this in the same Quake3:
As we see, though the artefacts have remained, they are not so obvious, and the picture is similar to that of ATI RADEON. Visit "World of NVIDIA" site or e-mail the author for the full details of the given investigation. But better download RivaTuner to tune your NVIDIA videocard fine.
Getting back to S3TC-Fix, I can say this correction lowers perfomance boost due to S3TC activation, but that's natural as speed always suffers after quality improvement.
In the second part of S3TC in OpenGL discussion I want to note that this technology fully shows itself with special compressed textures present, i.e. in games optimized for S3TC or those having "S3TC levels", for example Quake3 levels from Diamond Multimedia (Savage2000 advertising) that are now used with NVIDIA chipsets:
Here we can see that an autocompresion mistake doesn't spoil graphics quality of NVIDIA's GPU.
And here's RADEON:
Textures have just disappeared. So when autocompression works fine, compressed texture arrays cause problems. The same with KYRO/KYRO II.
There's a 'specificial' OpenGL driver for Comanche4 that allows using S3TC textures. Only S3 users could enjoy them until this moment because they were supported only by S3 Metal. But now people that have S3TC support through OpenGL (NVIDIA GeForce/GeForce2, ATI RADEON, KYRO/KYRO II card owners) can download this driver, patch Unreal Tournament 4.28 and set the game for OpenGL. But you'll need a licensed copy of the game with 2nd CD and large textures support.
Moreover, Epic Games itself has released a Direct3D driver allowing to activate S3TC. Download it here.
And below are the results. To the left there is Direct3D version without S3TC, and to the right - with S3TC:
The difference is outstanding. And gameplay can be spoiled only in ultra-high resolutions.