Mesa (master): nv50: borrow some flushing code from the ddx

Maarten Maathuis madman2003 at kemper.freedesktop.org
Mon Aug 17 16:48:41 UTC 2009


Module: Mesa
Branch: master
Commit: 97cc526eb7ae17c6ec3509a129863ea85f4e8900
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=97cc526eb7ae17c6ec3509a129863ea85f4e8900

Author: Maarten Maathuis <madman2003 at gmail.com>
Date:   Sun Aug 16 04:06:44 2009 +0200

nv50: borrow some flushing code from the ddx

- This fixes neverball corruption.
- I'm unsure about what we're actually flushing here.

---

 src/gallium/drivers/nv50/nv50_context.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/nv50/nv50_context.c b/src/gallium/drivers/nv50/nv50_context.c
index a2222d8..48f36d6 100644
--- a/src/gallium/drivers/nv50/nv50_context.c
+++ b/src/gallium/drivers/nv50/nv50_context.c
@@ -31,9 +31,17 @@ static void
 nv50_flush(struct pipe_context *pipe, unsigned flags,
 	   struct pipe_fence_handle **fence)
 {
-	struct nv50_context *nv50 = (struct nv50_context *)pipe;
-	
-	FIRE_RING(nv50->screen->base.channel);
+	struct nv50_context *nv50 = nv50_context(pipe);
+	struct nouveau_channel *chan = nv50->screen->base.channel;
+	struct nouveau_grobj *eng2d = nv50->screen->eng2d;
+
+	/* We need this in the ddx for reliable composite, not sure what we're
+	 * actually flushing. We generate all our own flushes with flags = 0. */
+	WAIT_RING(chan, 3);
+	BEGIN_RING(chan, eng2d, 0x0110, 1);
+	OUT_RING  (chan, 0);
+
+	FIRE_RING(chan);
 }
 
 static void




More information about the mesa-commit mailing list