gallium: more work on ccw flag removal
[mesa.git] / src / gallium / drivers / r300 / r300_emit.c
index 663a7715d95bdb043a7c854757b4511a62fca27a..568109cf9604eadf96959b6899507ddfd3de1d7f 100644 (file)
@@ -100,7 +100,6 @@ void r300_emit_clip_state(struct r300_context* r300,
         OUT_CS_REG(R300_VAP_CLIP_CNTL, R300_CLIP_DISABLE);
         END_CS;
     }
-
 }
 
 void r300_emit_dsa_state(struct r300_context* r300, unsigned size, void* state)
@@ -526,8 +525,6 @@ void r300_emit_fb_state(struct r300_context* r300, unsigned size, void* state)
         OUT_CS(((fb->width  + 1440-1) << R300_SCISSORS_X_SHIFT) |
                ((fb->height + 1440-1) << R300_SCISSORS_Y_SHIFT));
     }
-    OUT_CS_REG(R300_GA_POINT_MINMAX,
-        (MAX2(fb->width, fb->height) * 6) << R300_GA_POINT_MINMAX_MAX_SHIFT);
     END_CS;
 }
 
@@ -668,7 +665,9 @@ void r300_emit_rs_state(struct r300_context* r300, unsigned size, void* state)
     OUT_CS_REG(R300_GB_AA_CONFIG, rs->antialiasing_config);
 
     OUT_CS_REG(R300_GA_POINT_SIZE, rs->point_size);
-    OUT_CS_REG(R300_GA_LINE_CNTL, rs->line_control);
+    OUT_CS_REG_SEQ(R300_GA_POINT_MINMAX, 2);
+    OUT_CS(rs->point_minmax);
+    OUT_CS(rs->line_control);
 
     if (rs->polygon_offset_enable) {
         scale = rs->depth_scale * 12;
@@ -718,6 +717,13 @@ void r300_emit_rs_block_state(struct r300_context* r300,
     DBG(r300, DBG_DRAW, "r300: RS emit:\n");
 
     BEGIN_CS(size);
+    OUT_CS_REG_SEQ(R300_VAP_VTX_STATE_CNTL, 2);
+    OUT_CS(rs->vap_vtx_state_cntl);
+    OUT_CS(rs->vap_vsm_vtx_assm);
+    OUT_CS_REG_SEQ(R300_VAP_OUTPUT_VTX_FMT_0, 2);
+    OUT_CS(rs->vap_out_vtx_fmt[0]);
+    OUT_CS(rs->vap_out_vtx_fmt[1]);
+
     if (r300->screen->caps.is_r500) {
         OUT_CS_REG_SEQ(R500_RS_IP_0, count);
     } else {
@@ -902,25 +908,6 @@ void r300_emit_vertex_stream_state(struct r300_context* r300,
     END_CS;
 }
 
-void r300_emit_vap_output_state(struct r300_context* r300,
-                               unsigned size, void* state)
-{
-    struct r300_vap_output_state *vap_out_state =
-        (struct r300_vap_output_state*)state;
-    CS_LOCALS(r300);
-
-    DBG(r300, DBG_DRAW, "r300: VAP emit:\n");
-
-    BEGIN_CS(size);
-    OUT_CS_REG_SEQ(R300_VAP_VTX_STATE_CNTL, 2);
-    OUT_CS(vap_out_state->vap_vtx_state_cntl);
-    OUT_CS(vap_out_state->vap_vsm_vtx_assm);
-    OUT_CS_REG_SEQ(R300_VAP_OUTPUT_VTX_FMT_0, 2);
-    OUT_CS(vap_out_state->vap_out_vtx_fmt[0]);
-    OUT_CS(vap_out_state->vap_out_vtx_fmt[1]);
-    END_CS;
-}
-
 void r300_emit_pvs_flush(struct r300_context* r300, unsigned size, void* state)
 {
     CS_LOCALS(r300);
@@ -1016,16 +1003,16 @@ void r300_emit_viewport_state(struct r300_context* r300,
     struct r300_viewport_state* viewport = (struct r300_viewport_state*)state;
     CS_LOCALS(r300);
 
-     BEGIN_CS(size);
-     OUT_CS_REG_SEQ(R300_SE_VPORT_XSCALE, 6);
-     OUT_CS_32F(viewport->xscale);
-     OUT_CS_32F(viewport->xoffset);
-     OUT_CS_32F(viewport->yscale);
-     OUT_CS_32F(viewport->yoffset);
-     OUT_CS_32F(viewport->zscale);
-     OUT_CS_32F(viewport->zoffset);
-     OUT_CS_REG(R300_VAP_VTE_CNTL, viewport->vte_control);
-     END_CS;
+    BEGIN_CS(size);
+    OUT_CS_REG_SEQ(R300_SE_VPORT_XSCALE, 6);
+    OUT_CS_32F(viewport->xscale);
+    OUT_CS_32F(viewport->xoffset);
+    OUT_CS_32F(viewport->yscale);
+    OUT_CS_32F(viewport->yoffset);
+    OUT_CS_32F(viewport->zscale);
+    OUT_CS_32F(viewport->zoffset);
+    OUT_CS_REG(R300_VAP_VTE_CNTL, viewport->vte_control);
+    END_CS;
 }
 
 void r300_emit_ztop_state(struct r300_context* r300,
@@ -1165,6 +1152,9 @@ unsigned r300_get_num_dirty_dwords(struct r300_context *r300)
         }
     }
 
+    /* let's reserve some more, just in case */
+    dwords += 32;
+
     return dwords;
 }