Reserve the accurate number of dwords in the batch buffer.
authorJosé Fonseca <jrfonseca@tungstengraphics.com>
Mon, 29 Oct 2007 10:25:02 +0000 (10:25 +0000)
committerJosé Fonseca <jrfonseca@tungstengraphics.com>
Mon, 29 Oct 2007 12:15:57 +0000 (12:15 +0000)
src/mesa/pipe/i915simple/i915_prim_emit.c

index fcf3c99cac82aa6ef0448027e157a1602b836872..40e33e6e0965422fd8fdc97c75965108462f38f1 100644 (file)
@@ -134,7 +134,7 @@ emit_prim( struct draw_stage *stage,
    if (i915->hardware_dirty)
       i915_emit_hardware_state( i915 );
 
-   ptr = BEGIN_BATCH( nr * vertex_size, 0 );
+   ptr = BEGIN_BATCH( 1 + nr * vertex_size / 4, 0 );
    if (ptr == 0) {
       FLUSH_BATCH();
 
@@ -143,7 +143,7 @@ emit_prim( struct draw_stage *stage,
       i915_update_derived( i915 );
       i915_emit_hardware_state( i915 );
 
-      ptr = BEGIN_BATCH( nr * vertex_size, 0 );
+      ptr = BEGIN_BATCH( 1 + nr * vertex_size / 4, 0 );
       if (ptr == 0) {
         assert(0);
         return;
@@ -157,10 +157,8 @@ emit_prim( struct draw_stage *stage,
             hwprim |
             ((4 + vertex_size * nr)/4 - 2));
 
-   for (i = 0; i < nr; i++) {
+   for (i = 0; i < nr; i++)
       emit_hw_vertex(i915, prim->v[i]);
-      ptr += vertex_size / sizeof(int);
-   }
 }