Tell me more ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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?
share|improve this question

1 Answer

up vote 12 down vote accepted

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.

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

share|improve this answer
Sorry if this sounds so noob but where do I set force_s3tc_enable? I take it that this is a config file of some sort but what/where is that file? I already have libgl1-mesa-dev installed. – skytreader Jan 5 at 14:36
1  
As I mentioned, it's an en.wikipedia.org/wiki/Environment_variable - you can set it in a number of ways, the easiest is on the command line - so you'd run force_s3tc_enable=true my_gl_app rather than just my_gl_app. – RAOF Jan 10 at 7:23

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.