Mesa (master): r300-gallium: Clean up FB state emit.

Corbin Simpson csimpson at kemper.freedesktop.org
Sat Apr 25 23:54:58 UTC 2009


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

Author: Corbin Simpson <MostAwesomeDude at gmail.com>
Date:   Fri Apr 24 16:53:38 2009 -0700

r300-gallium: Clean up FB state emit.

---

 src/gallium/drivers/r300/r300_emit.c |   26 +++++++++++++-------------
 1 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c
index cce5c59..74d63ff 100644
--- a/src/gallium/drivers/r300/r300_emit.c
+++ b/src/gallium/drivers/r300/r300_emit.c
@@ -152,38 +152,38 @@ void r500_emit_fragment_shader(struct r300_context* r300,
     END_CS;
 }
 
-/* XXX add pitch, stride, clean up */
 void r300_emit_fb_state(struct r300_context* r300,
                         struct pipe_framebuffer_state* fb)
 {
-    int i;
     struct r300_texture* tex;
+    unsigned pixpitch;
+    int i;
     CS_LOCALS(r300);
 
-    BEGIN_CS((7 * fb->nr_cbufs) + (fb->zsbuf ? 7 : 0) + 4);
+    BEGIN_CS((8 * fb->nr_cbufs) + (fb->zsbuf ? 8 : 0) + 4);
     for (i = 0; i < fb->nr_cbufs; i++) {
         tex = (struct r300_texture*)fb->cbufs[i]->texture;
+        pixpitch = tex->stride / tex->tex.block.size;
+
         OUT_CS_REG_SEQ(R300_RB3D_COLOROFFSET0 + (4 * i), 1);
         OUT_CS_RELOC(tex->buffer, 0, 0, RADEON_GEM_DOMAIN_VRAM, 0);
 
-        OUT_CS_REG(R300_US_OUT_FMT_0 + (4 * i),
-            r300_translate_out_fmt(fb->cbufs[i]->format));
-        unsigned pixpitch = tex->stride / tex->tex.block.size;
         OUT_CS_REG(R300_RB3D_COLORPITCH0 + (4 * i), pixpitch |
             r300_translate_colorformat(tex->tex.format));
+
+        OUT_CS_REG(R300_US_OUT_FMT_0 + (4 * i),
+            r300_translate_out_fmt(fb->cbufs[i]->format));
     }
 
     if (fb->zsbuf) {
         tex = (struct r300_texture*)fb->zsbuf->texture;
+        pixpitch = (tex->stride / tex->tex.block.size);
+
         OUT_CS_REG_SEQ(R300_ZB_DEPTHOFFSET, 1);
         OUT_CS_RELOC(tex->buffer, 0, 0, RADEON_GEM_DOMAIN_VRAM, 0);
-        if (fb->zsbuf->format == PIPE_FORMAT_Z24S8_UNORM) {
-            OUT_CS_REG(R300_ZB_FORMAT,
-                R300_DEPTHFORMAT_24BIT_INT_Z_8BIT_STENCIL);
-        } else {
-            OUT_CS_REG(R300_ZB_FORMAT, 0x0);
-        }
-        unsigned pixpitch = tex->stride / tex->tex.block.size;
+
+        OUT_CS_REG(R300_ZB_FORMAT, r300_translate_zsformat(tex->tex.format));
+
         OUT_CS_REG(R300_ZB_DEPTHPITCH, pixpitch);
     }
 




More information about the mesa-commit mailing list