Mesa (master): r300-gallium, radeon: A couple cleanups.

Corbin Simpson csimpson at kemper.freedesktop.org
Sat May 9 02:41:22 UTC 2009


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

Author: Corbin Simpson <MostAwesomeDude at gmail.com>
Date:   Fri May  8 16:50:42 2009 -0700

r300-gallium, radeon: A couple cleanups.

Trying to track down goddamn bugs. :C

---

 src/gallium/drivers/r300/r300_context.c          |    4 ----
 src/gallium/drivers/r300/r300_state.c            |    3 +++
 src/gallium/drivers/r300/r300_texture.c          |    1 +
 src/gallium/winsys/drm/radeon/core/radeon_r300.c |    8 +++++++-
 4 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_context.c b/src/gallium/drivers/r300/r300_context.c
index 6bdf544..a4e89c3 100644
--- a/src/gallium/drivers/r300/r300_context.c
+++ b/src/gallium/drivers/r300/r300_context.c
@@ -34,10 +34,6 @@ static boolean r300_draw_range_elements(struct pipe_context* pipe,
     struct r300_context* r300 = r300_context(pipe);
     int i;
 
-    if (r300->dirty_state) {
-        r300_emit_dirty_state(r300);
-    }
-
     for (i = 0; i < r300->vertex_buffer_count; i++) {
         void* buf = pipe_buffer_map(pipe->screen,
                                     r300->vertex_buffers[i].buffer,
diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c
index 184a23c..0143e22 100644
--- a/src/gallium/drivers/r300/r300_state.c
+++ b/src/gallium/drivers/r300/r300_state.c
@@ -562,14 +562,17 @@ static void r300_set_viewport_state(struct pipe_context* pipe,
         r300->viewport_state->vte_control = R300_VTX_W0_FMT;
 
         if (state->scale[0] != 1.0f) {
+            assert(state->scale[0] != 0.0f);
             r300->viewport_state->xscale = state->scale[0];
             r300->viewport_state->vte_control |= R300_VPORT_X_SCALE_ENA;
         }
         if (state->scale[1] != 1.0f) {
+            assert(state->scale[1] != 0.0f);
             r300->viewport_state->yscale = state->scale[1];
             r300->viewport_state->vte_control |= R300_VPORT_Y_SCALE_ENA;
         }
         if (state->scale[2] != 1.0f) {
+            assert(state->scale[2] != 0.0f);
             r300->viewport_state->zscale = state->scale[2];
             r300->viewport_state->vte_control |= R300_VPORT_Z_SCALE_ENA;
         }
diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c
index fe91f4e..6c9d3b7 100644
--- a/src/gallium/drivers/r300/r300_texture.c
+++ b/src/gallium/drivers/r300/r300_texture.c
@@ -187,6 +187,7 @@ static struct pipe_texture*
             tex->stride);
 
     pipe_buffer_reference(&tex->buffer, buffer);
+    debug_printf("%p is the buffer\n", tex->buffer);
 
     return (struct pipe_texture*)tex;
 }
diff --git a/src/gallium/winsys/drm/radeon/core/radeon_r300.c b/src/gallium/winsys/drm/radeon/core/radeon_r300.c
index da23320..5dcce20 100644
--- a/src/gallium/winsys/drm/radeon/core/radeon_r300.c
+++ b/src/gallium/winsys/drm/radeon/core/radeon_r300.c
@@ -62,6 +62,7 @@ static boolean radeon_r300_validate(struct r300_winsys* winsys)
     if (retval == RADEON_CS_SPACE_OP_TO_BIG) {
         /* We might as well HCF, since this is not going to fit in the card,
          * period. */
+        /* XXX just drop it on the floor instead */
 	exit(1);
     } else if (retval == RADEON_CS_SPACE_FLUSH) {
         /* We must flush before more rendering can commence. */
@@ -128,14 +129,19 @@ static void radeon_r300_flush_cs(struct r300_winsys* winsys)
 {
     struct radeon_winsys_priv* priv =
         (struct radeon_winsys_priv*)winsys->radeon_winsys;
-    int retval = 0;
+    struct radeon_cs_space_check* sc = priv->sc;
+    int retval = 1;
 
+    /* Emit the CS. */
     retval = radeon_cs_emit(priv->cs);
     if (retval) {
         debug_printf("radeon: Bad CS, dumping...\n");
         radeon_cs_print(priv->cs, stderr);
     }
     radeon_cs_erase(priv->cs);
+
+    /* Clean out BOs. */
+    memset(sc, 0, sizeof(struct radeon_cs_space_check) * RADEON_MAX_BOS);
 }
 
 /* Helper function to do the ioctls needed for setup and init. */




More information about the mesa-commit mailing list