svga: Note ranges even when there is no hardware buffer around.
authorJosé Fonseca <jfonseca@vmware.com>
Thu, 18 Feb 2010 14:12:31 +0000 (14:12 +0000)
committerJosé Fonseca <jfonseca@vmware.com>
Mon, 22 Feb 2010 21:46:37 +0000 (21:46 +0000)
Not having a hardware buffer around doesn't change the fact that the
range is dirty and needs to be uploaded eventually.

src/gallium/drivers/svga/svga_screen_buffer.c

index bf637f2aa93b7a950c6f83008bfbc001db8e16b8..14fa40d206df83c95c72ef710251d81a38d0c12c 100644 (file)
@@ -312,7 +312,6 @@ svga_buffer_add_range(struct svga_buffer *sbuf,
    unsigned nearest_range;
    unsigned nearest_dist;
 
-   assert(sbuf->hwbuf);
    assert(end > start);
    
    if (sbuf->map.num_ranges < SVGA_BUFFER_MAX_RANGES) {
@@ -466,8 +465,7 @@ svga_buffer_flush_mapped_range( struct pipe_screen *screen,
    assert(sbuf->map.writing);
    if(sbuf->map.writing) {
       assert(sbuf->map.flush_explicit);
-      if(sbuf->hwbuf)
-         svga_buffer_add_range(sbuf, offset, offset + length);
+      svga_buffer_add_range(sbuf, offset, offset + length);
    }
    pipe_mutex_unlock(ss->swc_mutex);
 }
@@ -494,8 +492,7 @@ svga_buffer_unmap( struct pipe_screen *screen,
          /* No mapped range was flushed -- flush the whole buffer */
          SVGA_DBG(DEBUG_DMA, "flushing the whole buffer\n");
    
-         if(sbuf->hwbuf)
-            svga_buffer_add_range(sbuf, 0, sbuf->base.size);
+         svga_buffer_add_range(sbuf, 0, sbuf->base.size);
       }
       
       sbuf->map.writing = FALSE;