Use the force Luke, use the force.
authorAapo Tahkola <aet@rasterburn.org>
Thu, 9 Mar 2006 04:42:45 +0000 (04:42 +0000)
committerAapo Tahkola <aet@rasterburn.org>
Thu, 9 Mar 2006 04:42:45 +0000 (04:42 +0000)
src/mesa/drivers/dri/r300/r300_ioctl.c

index d8079535069fcc766857e1f1c3db98293d51ae58..078ff35397c24fcaa7f7a273548627f55670537a 100644 (file)
@@ -626,8 +626,19 @@ void r300RefillCurrentDmaRegion(r300ContextPtr rmesa)
 
        dmabuf->id = radeon_mm_alloc(rmesa, 4, RADEON_BUFFER_SIZE*16);
        if (dmabuf->id == 0) {
-               WARN_ONCE("Whops! Dont know how to evict VBOs yet.\n");
-               exit(1);
+               LOCK_HARDWARE(&rmesa->radeon);  /* no need to validate */
+               
+               r300FlushCmdBufLocked(rmesa, __FUNCTION__);
+               radeonWaitForIdleLocked(&rmesa->radeon);
+               
+               dmabuf->id = radeon_mm_alloc(rmesa, 4, RADEON_BUFFER_SIZE*16);
+               
+               UNLOCK_HARDWARE(&rmesa->radeon);
+               
+               if (dmabuf->id == 0) {
+                       WARN_ONCE("Whops! Dont know how to evict VBOs yet.\n");
+                       exit(1);
+               }
        }
                        
        rmesa->dma.current.buf = dmabuf;