Mesa (master): r300g: force swizzles for RGTC

Dave Airlie airlied at kemper.freedesktop.org
Mon Feb 28 03:38:30 UTC 2011


Module: Mesa
Branch: master
Commit: 0495425dc3d9f1c12e30df3f8f7f450687d13d6b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0495425dc3d9f1c12e30df3f8f7f450687d13d6b

Author: Dave Airlie <airlied at redhat.com>
Date:   Sun Feb 27 17:00:50 2011 +1000

r300g: force swizzles for RGTC

still can't get signed to work

---

 src/gallium/drivers/r300/r300_texture.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c
index 2db5ab9..b97c45a 100644
--- a/src/gallium/drivers/r300/r300_texture.c
+++ b/src/gallium/drivers/r300/r300_texture.c
@@ -217,10 +217,15 @@ uint32_t r300_translate_texformat(enum pipe_format format,
             case PIPE_FORMAT_RGTC1_SNORM:
                 result |= sign_bit[0];
             case PIPE_FORMAT_RGTC1_UNORM:
+                result &= ~(0xfff << 9); /* mask off swizzle */
+                result |= R300_TX_FORMAT_Y << R300_TX_FORMAT_R_SHIFT;
                 return R500_TX_FORMAT_ATI1N | result;
             case PIPE_FORMAT_RGTC2_SNORM:
                 result |= sign_bit[0] | sign_bit[1];
             case PIPE_FORMAT_RGTC2_UNORM:
+                result &= ~(0xfff << 9); /* mask off swizzle */
+                result |= R300_TX_FORMAT_Y << R300_TX_FORMAT_R_SHIFT |
+                          R300_TX_FORMAT_X << R300_TX_FORMAT_G_SHIFT;
                 return R400_TX_FORMAT_ATI2N | result;
             default:
                 return ~0; /* Unsupported/unknown. */




More information about the mesa-commit mailing list