One month ago I mentioned there was a possible workaround for the S3TC patent situation
. The possible S3TC
workaround was S2TC, which is a simpler implementation of texture compression than the patented S3 Texture Compression algorithms, and comes gratis from the developers of the Xonotic game. However, Mesa developers still aren't thrilled about this possible solution.
See the original Phoronix article
for all of the details for S2TC, which the two developers have dubbed the Super Simple Texture Compression scheme. S2TC is an original texture compression design, but it's meant to be able to be decoded by S3TC decoders in hardware. Due to the simpler design and ensuring it doesn't step on the intellectual property of S3TC, its image quality is slightly less, but to most users it would be indifferent.
After the article ran on Phoronix, which was greeted by more than 100 comments in the forums
, the S2TC developers (Maik Merten and Rudolf Polzer) announced their work to the Mesa mailing list. They also provided a reference implementation and other work, which could serve as a drop-in replacement to libtcx_dxtn, the standalone S3TC library for Mesa. While weeks have passed, the Mesa developers largely remain uninterested. Due to intellectual property concerns, they don't want to touch this code at all.
Some of the mailing list discussion can be found in this thread
. Due to the legal concerns and that there is the external S3TC library that end-users can opt to build and use (no major distributions are shipping the library due to the aforementioned concerns), the S2TC work hasn't hit any exposed nerves with developers.
Brian Paul, the original creator of Mesa, was originally quite positive. "I saw the story about this on Phoronix a couple weeks ago. I like it. As far as I'm concerned, I think it would be OK to integrate this into Mesa to use as a fallback when libtxc_dxtn isn't available."
Ian Romanick then followed-up by saying that S2TC may solve the issue for the compressor and software-based compression, but that it may not solve it for where decompression is done for hardware drivers. The hardware drivers may still have an issue, which would then be facing the Linux distributions. Ian notes though that the S3TC patent situation might
not be a problem much longer due to HTC's recent acquisition of S3 Graphics
, so this Intel developer would prefer a solution where something is built into core Mesa and could eventually evolve into full S3TC support. Ian doesn't think for this plan that libtxc_dxtn would be the best choice, but rather libsquish
The libsquish project is an open-source DXT compression library that supports DXT1/DXT3/DXT5 formats, offers SSE optimizations, works on multiple platforms, and has a very simple API. The libsquish code is already used by other projects and is likely more mature than the unofficial S3TC external library
Dan McCabe, the one that wrote the original reference implementation of S3TC when an engineer at S3 Graphics, even chimed in on the matter. While he's not a lawyer, "The algorithms used in the creation of the data in this case bears no resemblance to any algorithms that create "high quality" data that the hardware, which was created under license from S3, might consume...This shouldn't infringe on S3's S3TC compression and/or decompression algorithms (although I cannot comment on whether it infringes on any other patents)."
Jose Fonseca came in yesterday to say, "Don't get me wrong, I think S2TC's an interesting piece of work, but how do you dare to presume to tell us what we should or should not do in legal matters, while claiming to not be a lawyer, nor offering to pay legal expenses resulting from following your advice? You must think really highly of yourself, or think we are really dumb to not have thought/discussed this till now." Jose commented in a later email that he wouldn't be opposed to bundling S2TC for the software renders (e.g. Softpipe and the LLVMpipe drivers that just use the CPU and not a GPU), but not cases where S3TC decompression is done in hardware. Jose ends though, "But I'm done with this stupid thread. I'll enjoy my vacation and stop wasting time with this nonsense."
Rudolf Polzer notes that distribution vendors could pick-up their S2TC drop-in replacement to the Mesa S3TC external library and ship that, without any further modifications to Mesa. Distributions then gain S2TC/S3TC-like support, while hopefully not being at any greater patent risk. However, he is hoping that S2TC could be integrated in Mesa itself to eliminate the run-around.
Corbin Simpson's response is that "Please go ask distributions to pick this up; we aren't going to do it without the legal issues being cleared up."
Alan Coopersmith also jumped into the thread to dispel the myths that software patents are only a problem in the United States. Japan, South Korea, and Australia, among other countries, honor software parents directly along with some effect in the European Union. "If you want to ensure Mesa is never built into a phone, or included as part of a preinstalled Linux bundle on a laptop, doing the wrong thing with patents is a good way to accomplish that."