r300g: Fix the ATI1N swizzle (RGTC1 and LATC1)
authorStefan Dösinger <stefandoesinger@gmx.at>
Mon, 9 Mar 2015 15:15:13 +0000 (16:15 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 9 Mar 2015 19:58:32 +0000 (20:58 +0100)
commitf710b99071fe4e3c2ee88cdcb6bb5c10298e014e
treeefecbc61bcf94ff08e9e732f45c4674569ff2f5a
parent51b43c559f40eed2d02a35014c86b6a3e232c6fa
r300g: Fix the ATI1N swizzle (RGTC1 and LATC1)

This fixes the GL_COMPRESSED_RED_RGTC1 part of piglit's rgtc-teximage-01
test as well as the precision part of Wine's 3dc format test (fd.o bug
89156).

The Z component seems to contain a lower precision version of the
result, probably a temporary value from the decompression computation.
The Y and W component contain different data that depends on the input
values as well, but I could not make sense of them (Not that I tried
very hard).

GL_COMPRESSED_SIGNED_RED_RGTC1 still seems to have precision problems in
piglit, and both formats are affected by a compiler bug if they're
sampled by the shader with a swizzle other than .xyzw. Wine uses .xxxx,
which returns random garbage.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89156
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
Cc: 10.5 10.4 <mesa-stable@lists.freedesktop.org>
src/gallium/drivers/r300/r300_texture.c