[Mesa-dev] [PATCH 0/6] ARB_texture_float

Marek Olšák maraeo at gmail.com
Fri Apr 1 06:56:58 PDT 2011


please read on.

This patch series adds the last pieces of ARB_texture_float support to Mesa and Gallium.

The thing is Mesa and Gallium more or less already support float textures and renderbuffers in master. Gallium has full floating-point support in the interface and if it was a public API, people could just expose it and not care. There is clearly a need for a configure switch which can hide float renderbuffers from any interface, public or private, and driver developers should use such a switch.

So ARB_texture_float is mostly implemented in master. What's missing is the A/L/LA/I formats in Gallium, and the R/RG formats in the Mesa core, and some glue between Mesa and st/mesa.

I am proposing to merge all these patches and advertise ARB_texture_float if --enable-texture-float is used in configure.sh/autogen.sh. This is the same strategy the FreeType project had. If Linux distributors want ARB_texture_float (e.g. to get OpenGL 3), they should obtain the patent or find any other legal way around it, and then use the configure switch, but it's their and only their problem, not ours. By default, ARB_texture_float is disabled, so the Linux distributors not willing to support ARB_texture_float don't need to care.

BTW, this is not April Fools' prank.

Please review.

Luca Barbieri (1):
      gallium: add A/L/LA/I floating point formats

Marek Olšák (5):
      mesa: fix L16F and L32F format properties
      mesa: add R/RG floating-point formats
      mesa: finish up ARB_texture_float
      st/mesa: convert Mesa float formats to Gallium
      Add a configure enable switch for float textures

 configure.ac                             |   13 ++
 src/gallium/auxiliary/util/u_format.csv  |    8 +
 src/gallium/include/pipe/p_format.h      |    9 +
 src/mesa/drivers/dri/r300/r300_context.c |    1 -
 src/mesa/drivers/dri/r600/r600_context.c |    1 -
 src/mesa/main/extensions.c               |    3 +-
 src/mesa/main/fbobject.c                 |   32 ++++-
 src/mesa/main/formats.c                  |   44 ++++++-
 src/mesa/main/formats.h                  |    4 +
 src/mesa/main/framebuffer.c              |   14 ++-
 src/mesa/main/texfetch.c                 |   28 ++++
 src/mesa/main/texfetch_tmp.h             |  104 +++++++++++++
 src/mesa/main/texformat.c                |   16 ++
 src/mesa/main/texstore.c                 |   20 ++-
 src/mesa/state_tracker/st_extensions.c   |   14 ++
 src/mesa/state_tracker/st_format.c       |  237 ++++++++++++++++++++++++++++++
 16 files changed, 537 insertions(+), 11 deletions(-)

Best regards

More information about the mesa-dev mailing list