Mesa (master): r300g: put the emission of R300_US_OUT_FMT_UNUSED back

Marek Olšák mareko at kemper.freedesktop.org
Sat Feb 27 19:11:36 UTC 2010


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

Author: Marek Olšák <maraeo at gmail.com>
Date:   Sat Feb 27 20:03:34 2010 +0100

r300g: put the emission of R300_US_OUT_FMT_UNUSED back

It wasn't such a good idea to remove it. :/

---

 src/gallium/drivers/r300/r300_emit.c  |    6 +++++-
 src/gallium/drivers/r300/r300_state.c |    3 ++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c
index 3037a38..1ea622f 100644
--- a/src/gallium/drivers/r300/r300_emit.c
+++ b/src/gallium/drivers/r300/r300_emit.c
@@ -387,7 +387,8 @@ void r300_emit_fb_state(struct r300_context* r300, void* state)
     int i;
     CS_LOCALS(r300);
 
-    BEGIN_CS((10 * fb->nr_cbufs) + (fb->zsbuf ? 10 : 0) + 6);
+    BEGIN_CS((10 * fb->nr_cbufs) + (2 * (4 - fb->nr_cbufs)) +
+             (fb->zsbuf ? 10 : 0) + 6);
 
     /* Flush and free renderbuffer caches. */
     OUT_CS_REG(R300_RB3D_DSTCACHE_CTLSTAT,
@@ -426,6 +427,9 @@ void r300_emit_fb_state(struct r300_context* r300, void* state)
 
         OUT_CS_REG(R300_US_OUT_FMT_0 + (4 * i), tex->fb_state.us_out_fmt);
     }
+    for (; i < 4; i++) {
+        OUT_CS_REG(R300_US_OUT_FMT_0 + (4 * i), R300_US_OUT_FMT_UNUSED);
+    }
 
     /* Set up a zbuffer. */
     if (fb->zsbuf) {
diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c
index 0fbb9e7..2c4beee 100644
--- a/src/gallium/drivers/r300/r300_state.c
+++ b/src/gallium/drivers/r300/r300_state.c
@@ -598,7 +598,8 @@ static void
 
     memcpy(r300->fb_state.state, state, sizeof(struct pipe_framebuffer_state));
 
-    r300->fb_state.size = (10 * state->nr_cbufs) + (state->zsbuf ? 10 : 0) + 6;
+    r300->fb_state.size = (10 * state->nr_cbufs) + (2 * (4 - state->nr_cbufs)) +
+                          (state->zsbuf ? 10 : 0) + 6;
 
     r300_fb_update_tiling_flags(r300, r300->fb_state.state, state);
 




More information about the mesa-commit mailing list