Mesa (master): r300g: fix RGTC2_SNORM

Marek Olšák mareko at kemper.freedesktop.org
Tue Mar 1 04:25:47 UTC 2011


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

Author: Marek Olšák <maraeo at gmail.com>
Date:   Tue Mar  1 05:16:34 2011 +0100

r300g: fix RGTC2_SNORM

ATI engineers have probably chosen those sign bits by a dice roll.

---

 src/gallium/drivers/r300/r300_state_derived.c |    3 +++
 src/gallium/drivers/r300/r300_texture.c       |    2 +-
 2 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_state_derived.c b/src/gallium/drivers/r300/r300_state_derived.c
index 7e06958..a1e116f 100644
--- a/src/gallium/drivers/r300/r300_state_derived.c
+++ b/src/gallium/drivers/r300/r300_state_derived.c
@@ -650,6 +650,9 @@ static uint32_t r300_get_border_color(enum pipe_format format,
             util_pack_color(border_swizzled, PIPE_FORMAT_B4G4R4A4_UNORM, &uc);
             return uc.ui;
         case PIPE_FORMAT_RGTC2_SNORM:
+            border_swizzled[0] = border_swizzled[2];
+            util_pack_color(border_swizzled, PIPE_FORMAT_R8G8B8A8_SNORM, &uc);
+            return uc.ui;
         case PIPE_FORMAT_RGTC2_UNORM:
             util_pack_color(border_swizzled, PIPE_FORMAT_B8G8R8A8_UNORM, &uc);
             return uc.ui;
diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c
index 6ed3125..da06847 100644
--- a/src/gallium/drivers/r300/r300_texture.c
+++ b/src/gallium/drivers/r300/r300_texture.c
@@ -213,7 +213,7 @@ uint32_t r300_translate_texformat(enum pipe_format format,
             case PIPE_FORMAT_RGTC1_UNORM:
                 return R500_TX_FORMAT_ATI1N | result;
             case PIPE_FORMAT_RGTC2_SNORM:
-                result |= sign_bit[0] | sign_bit[1];
+                result |= sign_bit[2] | sign_bit[3];
             case PIPE_FORMAT_RGTC2_UNORM:
                 return R400_TX_FORMAT_ATI2N | result;
             default:




More information about the mesa-commit mailing list