Mesa (master): r300g: add tx depth support in register.

Dave Airlie airlied at kemper.freedesktop.org
Sat Sep 26 09:34:22 UTC 2009


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Sat Sep 26 19:32:46 2009 +1000

r300g: add tx depth support in register.

also enable cube/3d bits in txformat reg

---

 src/gallium/drivers/r300/r300_reg.h     |    1 +
 src/gallium/drivers/r300/r300_texture.c |    7 +++++++
 2 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_reg.h b/src/gallium/drivers/r300/r300_reg.h
index 03cd219..3abff5d 100644
--- a/src/gallium/drivers/r300/r300_reg.h
+++ b/src/gallium/drivers/r300/r300_reg.h
@@ -1478,6 +1478,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 #       define R300_TX_PITCH_EN                  (1 << 31)
 #       define R300_TX_WIDTH(x)                  ((x) << 0)
 #       define R300_TX_HEIGHT(x)                 ((x) << 11)
+#       define R300_TX_DEPTH(x)                  ((x) << 22)
 #       define R300_TX_NUM_LEVELS(x)             ((x) << 26)
 
 #define R300_TX_FORMAT1_0                   0x44C0
diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c
index 2ec07b4..ce60ded 100644
--- a/src/gallium/drivers/r300/r300_texture.c
+++ b/src/gallium/drivers/r300/r300_texture.c
@@ -29,11 +29,18 @@ static void r300_setup_texture_state(struct r300_texture* tex)
 
     state->format0 = R300_TX_WIDTH((pt->width[0] - 1) & 0x7ff) |
         R300_TX_HEIGHT((pt->height[0] - 1) & 0x7ff) |
+        R300_TX_DEPTH(util_logbase2(pt->depth[0]) & 0xf) |
         R300_TX_NUM_LEVELS(pt->last_level) |
         R300_TX_PITCH_EN;
 
     /* XXX */
     state->format1 = r300_translate_texformat(pt->format);
+    if (pt->target == PIPE_TEXTURE_CUBE) {
+	state->format1 |= R300_TX_FORMAT_CUBIC_MAP;
+    }
+    if (pt->target == PIPE_TEXTURE_3D) {
+	state->format1 |= R300_TX_FORMAT_3D;
+    }
 
     state->format2 = (r300_texture_get_stride(tex, 0) / pt->block.size) - 1;
 




More information about the mesa-commit mailing list