S3TC Support For Mesa Brought Up Again
Besides the Mesa 7.8 release announcement hitting the Mesa mailing list over the weekend, also catching our interest is a new discussion concerning S3TC texture compression in this open-source software stack. One of the developers working on Spring RTS, an open-source real-time strategy game engine for Linux and Windows, is wanting the open-source Mesa developers to implement S3TC texture compression/decompression. But this is a rather sticky situation.
The reason that full S3TC texture compression/decompression hasn't been properly implemented within any of the Mesa drivers is because of patent fears. S3 Graphics / VIA holds US Patent #5956431 that was filed back in 1999 and covers the S3 Texture Compression algorithms.
S3TC support is available for Mesa, but not fully or cleanly. Pre-compressed S3TC textures can be used by Mesa as the textures will just be passed directly to the graphics processor with all modern GPUs supporting this kind of hardware decompression. If real-time compression of S3TC textures is needed, there is no support by default as it's dependent upon an external library that cannot be legally redistributed or used within countries where the patented S3TC algorithms are upheld -- unless of course you have an S3 Texture Compression license. This support is provided by the txc_dxtn library and the source code can be found here. When Mesa's built and this external library is detected, supported DRI drivers can then take advantage and utilized uncompressed data.
The Spring RTS developer goes on with a long message about how Mesa 3D developers could potentially workaround the S3TC patent fears. The developer does not appear to have a legal background, but is basing his belief on transcripts from a patent defense talk. This though is unlikely to generate any development action until there's any official work done by the Linux Foundation, Software Freedom Law Center, Electronic Frontier Foundation, or other legal organizations that look to support free software.
There's also been some patent concerns regarding OpenGL 3.x support in Mesa, but we haven't heard anything on that matter since the Linux Foundation was going to be investigating that issue.
The reason that full S3TC texture compression/decompression hasn't been properly implemented within any of the Mesa drivers is because of patent fears. S3 Graphics / VIA holds US Patent #5956431 that was filed back in 1999 and covers the S3 Texture Compression algorithms.
S3TC support is available for Mesa, but not fully or cleanly. Pre-compressed S3TC textures can be used by Mesa as the textures will just be passed directly to the graphics processor with all modern GPUs supporting this kind of hardware decompression. If real-time compression of S3TC textures is needed, there is no support by default as it's dependent upon an external library that cannot be legally redistributed or used within countries where the patented S3TC algorithms are upheld -- unless of course you have an S3 Texture Compression license. This support is provided by the txc_dxtn library and the source code can be found here. When Mesa's built and this external library is detected, supported DRI drivers can then take advantage and utilized uncompressed data.
The Spring RTS developer goes on with a long message about how Mesa 3D developers could potentially workaround the S3TC patent fears. The developer does not appear to have a legal background, but is basing his belief on transcripts from a patent defense talk. This though is unlikely to generate any development action until there's any official work done by the Linux Foundation, Software Freedom Law Center, Electronic Frontier Foundation, or other legal organizations that look to support free software.
There's also been some patent concerns regarding OpenGL 3.x support in Mesa, but we haven't heard anything on that matter since the Linux Foundation was going to be investigating that issue.
25 Comments