[Mesa-dev] [PATCH 03/10] radeonsi: cleanup redundant computation of flush flags and rename a function

Marek Olšák maraeo at gmail.com
Sat Apr 12 09:34:17 PDT 2014


From: Marek Olšák <marek.olsak at amd.com>

---
 src/gallium/drivers/radeonsi/si_pipe.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
index 03f73ac..ec03d6c 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -66,17 +66,19 @@ static void si_flush_from_st(struct pipe_context *ctx,
 			     unsigned flags)
 {
 	struct si_context *sctx = (struct si_context *)ctx;
+	unsigned rflags = 0;
+
+	if (flags & PIPE_FLUSH_END_OF_FRAME)
+		rflags |= RADEON_FLUSH_END_OF_FRAME;
 
 	if (sctx->b.rings.dma.cs) {
-		sctx->b.rings.dma.flush(sctx,
-					flags & PIPE_FLUSH_END_OF_FRAME ? RADEON_FLUSH_END_OF_FRAME : 0);
+		sctx->b.rings.dma.flush(sctx, rflags);
 	}
 
-	si_flush(ctx, fence,
-		 flags & PIPE_FLUSH_END_OF_FRAME ? RADEON_FLUSH_END_OF_FRAME : 0);
+	si_flush(ctx, fence, rflags);
 }
 
-static void si_flush_from_winsys(void *ctx, unsigned flags)
+static void si_flush_gfx_ring(void *ctx, unsigned flags)
 {
 	si_flush((struct pipe_context*)ctx, NULL, flags);
 }
@@ -146,7 +148,8 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, void *
 	}
 
 	sctx->b.rings.gfx.cs = sctx->b.ws->cs_create(sctx->b.ws, RING_GFX, NULL);
-	sctx->b.rings.gfx.flush = si_flush_from_winsys;
+	sctx->b.rings.gfx.flush = si_flush_gfx_ring;
+	sctx->b.ws->cs_set_flush_callback(sctx->b.rings.gfx.cs, si_flush_gfx_ring, sctx);
 
 	si_init_all_descriptors(sctx);
 
@@ -168,8 +171,6 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, void *
 		goto fail;
 	}
 
-	sctx->b.ws->cs_set_flush_callback(sctx->b.rings.gfx.cs, si_flush_from_winsys, sctx);
-
 	sctx->blitter = util_blitter_create(&sctx->b.b);
 	if (sctx->blitter == NULL)
 		goto fail;
-- 
1.8.3.2



More information about the mesa-dev mailing list