Here's quite a pleasant surprise to wake up to this morning: OpenGL floating-point textures and render-targets support has finally been merged to mainline Mesa master! The drawn-out process
that began more than a month ago
is finally over.
Pushed to Mesa master over the night was Marek Olšák's patches for float textures in supporting the ARB_texture_float extension and render-buffers, which is part of the OpenGL 3.0 specification. Marek's work is fully supported in the ATI R300 Gallium3D driver while other drivers can now easily hook into this newly-added support that up until now was living in a branched version of Mesa.
Though as previously discussed
, while this code is now in the mainline Mesa code-base and will be part of the Mesa 7.11 release, it will not be enabled by default. Due to patent concerns, enabling this support must be done at compile-time by setting the --enable-texture-float
flag. If it's not set, you'll still be left without the support. At least though it's easier building mainline Mesa rather than having to worry about separate branches, etc.
The patches dropping in this support can be found from the Mesa Git log
. VMware's José Fonseca has also added a patents document to the Mesa tree that describes this situation.
Silicon Graphics, Inc. owns US Patent #6,650,327, issued November 18, 2003 .
SGI believes this patent contains necessary IP for graphics systems implementing floating point rasterization and floating point framebuffer capabilities described in ARB_texture_float extension, and will discuss licensing on RAND terms, on an individual basis with companies wishing to use this IP in the context of conformant OpenGL implementations .
The source code to implement ARB_texture_float extension is included and can be toggled on at compile time only by those who purchased a license from SGI, or are in a country where the patent does not apply.
The software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
You should contact a lawyer or SGI's legal department if you want to enable this extension.
Don't expect to find this enabled-by-default soon in any mainstream Linux distributions over these patent concerns. The Linux Foundation was looking into 3D patent issues
as it would be rather great if SGI would voluntarily provide a patent covenant to the open-source / Mesa community, but so far it doesn't appear their legal work has done any good. Back at the Linux Foundation Collaboration Summit earlier in the month I asked Keith Packard if he heard anything resulting from the Linux Foundation looking into the Mesa patent issues, but he hadn't heard of anything coming to fruition.
Meanwhile, the S3TC texture compression
work hasn't been merged to mainline Mesa. While this too is in another patent mess, this at least can be provided to Mesa by an external shared library and doesn't need to be built into core Mesa itself for being a clean implementation.