Hi,

The attached patch reduces the amount of pipe flushes for r600g.
I am not exactly sure if we could skip this flush entirely because of the 
internal r600g winsys flush logic.
But what we can do is the attached patch:

Replace pipe->flush() with pipe->texture_barrier() in
the texture upload path for the staging texture.
This should be enough to get data out of the gpu
caches ready to be read for texture fetch.

Please review.

Thanks

Mathias
From d301b1fa47aa80b94cce2a5d29c404654b025fc7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mathias=20Fr=C3=B6hlich?= <[email protected]>
Date: Tue, 26 Jul 2011 07:05:10 +0200
Subject: [PATCH] r600g: Replace needless flush in texture upload.

Replace pipe->flush() with pipe->texture_barrier() in
the texture upload path for the staging texture.
This should be enough to get data out of the gpu
caches ready to be read for texture fetch.
---
 src/gallium/drivers/r600/r600_texture.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c
index 1682cc8..b914ff3 100644
--- a/src/gallium/drivers/r600/r600_texture.c
+++ b/src/gallium/drivers/r600/r600_texture.c
@@ -66,7 +66,7 @@ static void r600_copy_from_staging_texture(struct pipe_context *ctx, struct r600
 				  rtransfer->staging_texture,
 				  0, &sbox);
 
-	r600_flush(ctx, NULL, RADEON_FLUSH_ASYNC);
+	ctx->texture_barrier(ctx);
 }
 
 unsigned r600_texture_get_offset(struct r600_resource_texture *rtex,
-- 
1.7.4.4

_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to