Is there an easy way to enable S3TC on Intel graphics?

S3TC is a patented graphics mechanism for compressing textures. It's so widely patented that distributions (Ubuntu included) does not ship it with its free drivers. Closed-source drivers have this enabled because the companies (AMD/Nvidia) pay the patent royalties and assume the liability.

But I'm currently using an Intel graphics chipset. Specifically, the i915. The drivers are completely free and open source. While I believe the hardware can handle S3TC, the drivers are those that shipped with Ubuntu (or through the updates) so S3TC is turned off.

From what I read (fairly old posts) turning S3TC on requires getting the source for mesa, patching in S3TC, reconfiguring it and then recompiling it all. In short, it sounds like a mess.

  • Is this still the case?
  • Has somebody out there been nice and created a PPA with S3TC turned on?

Solution 1:

As of 12.10, libtxc-dxtn-s2tc0 is installed by default, providing this functionality.


Mesa does not require a rebuild to enable S3TC support, and hasn't for some time. There are two options for S3TC

  1. Setting force_s3tc_enable=true in the environment to advertise S3TC support. In this case, S3TC textures will be passed through to the hardware. Mesa will not support compression of textures using S3TC, which is required by the GL extension spec, so things may misbehave.

  2. Using the external libtxc-dxtn library for S3TC compression. Mesa will attempt to load it if it exists, and provide full S3TC support. This is available in xorg-edgers, at least.

Solution 2:

Install driconf and when you type driconf, a dialog box will appear. Use that dialog box to enable S3TC. That is what I did and my intel graphic card is able to now play some games with wine.