[Mesa-dev] S2TC - yet another attempt to solve the "S3TC issue"

Rudolf Polzer divverent at xonotic.org
Mon Aug 8 06:12:05 PDT 2011

On Mon, Aug 08, 2011 at 05:49:09AM -0700, Jose Fonseca wrote:
> ----- Original Message -----
> > The suggestion however is to include a S2TC-like method with Mesa, to
> > basically
> > make sure that in the long run NO distro has no support for S3TC
> > uploading,
> > without requiring an extra decision in each distro.
> I wouldn't oppose bundling S2TC for software renderers, but enabling S3TC decompression on hardware is an orthogonal matter, which depends on the licensing terms between the IHV and S3.
> If you wanna fix this, convince IHVs to fully license the S3TC use in their hardware for Linux.  So far the only IHV that _seems_ to have such wide cross-OS license is NVIDIA.
> I think it would be good to add a FAQ about this in the docs.  But I'm done with this stupid thread.  I'll enjoy my vacation and stop wasting time with this nonsense.

In other words: you want the EXISTING support in Mesa to upload S3TC compressed
textures (pre-compressed, not runtime compressed) to the hardware removed.

It is the driconf option "Enable S3TC texture compression even if software
support is not available" ("force_s3tc_enable" in the configuration file or

There is already existing games that use this method to silently enable
precompressed texture even when no libtxc_dxtn library is available:


So effectively, Mesa already does this. If you were right with your opinion,
this would mean Mesa is ALREADY violating the patent, because any game can
set that environment variable and thus TRANSPARENTLY use S3TC, without the
user being aware that the patented technology is being used. And then I would
ask how it is any MORE illegal if a distro bundles the S2TC lib, and thus
S3TC upload is available WITHOUT setting force_s3tc_enable.

Summarizing: in the EXISTING code, it's already possible for any application to
enable S3TC decompression. Just enable force_s3tc_enable before initializing
OpenGL. So it is available, just by a "different API" than the one in the
OpenGL extension spec (due to an extra putenv() call being required). Including
S2TC, and thus enabling compressed texture upload by default, only changes the
API by which this functionality is enabled to the standard OpenGL one (without
the putenv() call).

Best regards,

Rudolf Polzer

More information about the mesa-dev mailing list