[Mesa-dev] [PATCH 0/6] Translate improvements

Luca Barbieri luca at luca-barbieri.com
Thu Aug 12 10:08:58 PDT 2010


This patchset improves translate in several way, with a particular focus
on making it more useful and faster for hardware drivers.

The first part of the patchset is a couple of simple changes: support for
directly using memcpy() if the input and output formats are identical, and
support for 8-bit and 16-bit indices in addition to 32-bit ones.

The second part is a more ambitious and experimental rewrite of the
translate_sse code, which adds x86-64 support and accelerates all useful
format conversions (in particular, any swizzle with no conversion, and any
conversion to float32, or to any 16-bit integers).

Currently, translate_sse does not work on x86-64 at all, and only supports
float32 and two unorm8 formats, both as input and output, making it unusable
for compensating holes in GPU vertex format support, or for pushing vertices
directly on the FIFO.

Luca Barbieri (6):
  translate_generic: use memcpy if possible
  translate_generic: factor out common code between linear and indexed
  translate_sse: remove useless generated function wrappers
  translate: add support for 8/16-bit indices
  rtasm: add minimal x86-64 support and new instructions
  translate_sse: major rewrite

 src/gallium/auxiliary/rtasm/rtasm_cpu.c            |    6 +-
 src/gallium/auxiliary/rtasm/rtasm_x86sse.c         |  447 +++++++-
 src/gallium/auxiliary/rtasm/rtasm_x86sse.h         |   67 +-
 src/gallium/auxiliary/translate/translate.h        |   12 +
 .../auxiliary/translate/translate_generic.c        |  200 ++--
 src/gallium/auxiliary/translate/translate_sse.c    | 1224 +++++++++++++++-----
 6 files changed, 1536 insertions(+), 420 deletions(-)


More information about the mesa-dev mailing list