Discussions surrounding S3TC Texture Compression support for mainline Mesa (right now it's an external library
) is becoming an increasingly common occurrence. Newer games and OpenGL applications depend upon S3TC support and open-source developers are unable to provide "out of the box" support due to patent concerns.
There was a hopeful discussion about S3TC and floating point support for Mesa
a little more than a week ago, but that discussion died before anything materialized in Mesa Git. The push there was for mainlining the S3TC and OpenGL floating point support but to not build it by default if not using the hidden --enable-patented
The latest talk of S3TC comes from Zack Rusin. He saw the Icculus interview
we mentioned yesterday where he criticizes open-source graphics drivers for Linux and being sub-standard. Zack took particular issue with one of Ryan's comments concerning the lack of S3TC support shipping in these drivers. "I find it completely ridiculous that we're shipping open source OpenGL drivers without S3TC support because of patent concerns. Today, that's like shipping a web browser without .jpg support!"
In a blog post entitled Directing Lemmings
, Zack writes more about S3TC and Mesa. "Legally there's nothing stopping anyone from licensing s3tc or floating point patents, forking Mesa3D and shipping closed source version of it with code handling both. It's simply that you can't reconcile Free Software with patents. You just can't add what amounts to arbitrary restrictions to your software and claim freedom. There's absolutely nothing we can do here. There were teams of lawyers looking at this stuff and the conclusion every single time was "you just can't get away with this". Jose and Brian spent a lot of time looking at ways of getting around it as well."
There's also another developer that's proposed his solution to the S3TC mess in Mesa. An employee at SCS Software, the studio behind a number of hunting and driving games like "Hunting Unlimited", "Rocky Mountain Trophy Hunter 3", and "18 Wheels of Steel: Pedal to the Metal", has proposed naked DXTn support via ARB_texture_compression in this email
The gist of Petr Sebor's proposal is to provide DXtn (S3TC) support in Mesa, but only to the extent that the ARB_texture_compression extension is being used to transfer pre-compressed texture data to an S3TC-capable GPU (most modern GPUs). In cases where OpenGL software has already compressed S3TC texture data using a library like nvdxt, Mesa doesn't need to deal with the patented algorithms, but rather just submit the binary data to the graphics processor. This though would be of limited benefit and only be useful for cases of where the textures are already compressed before reaching Mesa, but that's at least an improvement from where the GL_EXT_texture_compression_s3tc support is right now. Petr further describes his line of thought in this second message
, but as of right now none of the core Mesa developers have responded.
Evidently SCS Software is looking to get some of their games running on Mesa / Gallium3D. This is interesting after checking out a number of their titles, they only seem to be supported on Windows. Perhaps this game studio is expanding to Linux, thereby allowing you to play games like TruckSaver, Deer Drive, and Bus Driver under Linux.