[Mesa-dev] [PATCH 6/6] translate_sse: major rewrite (v2)

Luca Barbieri luca at luca-barbieri.com
Fri Aug 13 04:48:56 PDT 2010


Changes in v2:
- Minimize #ifs
- Give a name to magic number CHANNELS_0001
- Add support for CPUs without SSE (only memcpy and swizzles, like non SSE2)
- Fixed comments

translate_sse is currently very limited to the point of
being useless in essentially all cases.

In particular, it only support some float32 and unorm8
formats and doesn't work on x86-64.

This commit rewrites it to support:
1. Dumb memory copy for any pair of identical formats
2. All formats that are swizzles of each other
3. Converting 32/64-bit floats and all 8/16/32-bit integers to 32-bit float
4. Converting unorm8/snorm8 to snorm16 and uscaled8/sscaled8 to sscaled16
5. Support for x86-64 (doesn't take advantage of it in any way though)

This new translate can even be useful to translate index buffers for
cards that lack 8-bit index support.

It passes the testsuite I wrote, but note that this is a major change, and more
testing would be great.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0006-translate_sse-major-rewrite-v2.patch.gz
Type: application/x-gzip
Size: 8879 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20100813/df768ae7/attachment-0001.bin>


More information about the mesa-dev mailing list