draw: flush pipeline before trying to allocate more hw vertices
authorKeith Whitwell <keith@tungstengraphics.com>
Mon, 14 Apr 2008 11:32:53 +0000 (12:32 +0100)
committerKeith Whitwell <keith@tungstengraphics.com>
Mon, 14 Apr 2008 11:37:19 +0000 (12:37 +0100)
src/gallium/auxiliary/draw/draw_pt.c
src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c

index c67a217..5c16165 100644 (file)
@@ -175,10 +175,6 @@ draw_pt_arrays(struct draw_context *draw,
    frontend = draw->pt.front.vcache;
 #endif   
 
-   /* XXX: need to flush to get prim_vbuf.c to release its allocation?? 
-    */
-   draw_do_flush( draw, DRAW_FLUSH_BACKEND );
-
    frontend->prepare( frontend, prim, middle );
 
    frontend->run( frontend,
index e4e144e..2f8b08d 100644 (file)
@@ -243,6 +243,10 @@ static void fetch_emit_run( struct draw_pt_middle_end *middle,
    struct draw_context *draw = feme->draw;
    void *hw_verts;
    
+   /* XXX: need to flush to get prim_vbuf.c to release its allocation?? 
+    */
+   draw_do_flush( draw, DRAW_FLUSH_BACKEND );
+
    hw_verts = draw->render->allocate_vertices( draw->render,
                                                (ushort)feme->hw_vertex_size,
                                                (ushort)fetch_count );
index fb9b2da..b5d2f81 100644 (file)
@@ -177,6 +177,10 @@ static void fetch_pipeline_run( struct draw_pt_middle_end *middle,
       void *hw_verts;
       float *out;
 
+      /* XXX: need to flush to get prim_vbuf.c to release its allocation?? 
+       */
+      draw_do_flush( draw, DRAW_FLUSH_BACKEND );
+
       hw_verts = draw->render->allocate_vertices(draw->render,
                                                  (ushort)fpme->hw_vertex_size,
                                                  (ushort)fetch_count);