Mesa (radeon-rewrite): radeon: realloc dma if needed after revalidate

Jerome Glisse glisse at kemper.freedesktop.org
Mon May 25 09:30:08 UTC 2009


Module: Mesa
Branch: radeon-rewrite
Commit: 9b1efcb87c794ded9306f01336d48a80aaad3261
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9b1efcb87c794ded9306f01336d48a80aaad3261

Author: Jerome Glisse <glisse at freedesktop.org>
Date:   Sat May 23 21:57:25 2009 +0200

radeon: realloc dma if needed after revalidate

Revalidate can trigger flushing and dma buffer deallocation,
so retry allocation on such case.

---

 src/mesa/drivers/dri/radeon/radeon_dma.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/radeon/radeon_dma.c b/src/mesa/drivers/dri/radeon/radeon_dma.c
index a357afe..48b0d63 100644
--- a/src/mesa/drivers/dri/radeon/radeon_dma.c
+++ b/src/mesa/drivers/dri/radeon/radeon_dma.c
@@ -203,6 +203,12 @@ again_alloc:
 	if (radeon_revalidate_bos(rmesa->glCtx) == GL_FALSE)
 	  fprintf(stderr,"failure to revalidate BOs - badness\n");
 
+	if (!rmesa->dma.current) {
+        /* Cmd buff have been flushed in radeon_revalidate_bos */
+		rmesa->dma.nr_released_bufs = 0;
+		goto again_alloc;
+	}
+
 	radeon_bo_map(rmesa->dma.current, 1);
 }
 




More information about the mesa-commit mailing list