summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_context.c
diff options
context:
space:
mode:
authorHenri Verbeet <[email protected]>2010-09-19 19:27:30 +0200
committerHenri Verbeet <[email protected]>2010-09-19 19:43:05 +0200
commita1d9a58b825825723f1c5f7705f2ed3ef834038a (patch)
tree7fde0b98f73428750390542b4e536092a53292e8 /src/gallium/drivers/r600/r600_context.c
parent2a910b339672e80e70d49d01ac7e8e870068e7ad (diff)
r600g: Flush upload buffers before draws instead of before flushes.
If a upload buffer is used by a previous draw that's still in the CS, accessing it would need a context flush. However, doing a context flush when mapping the upload buffer would then flush/destroy the same buffer we're trying to map there. Flushing the upload buffers before a draw avoids both the CS flush and the upload buffer going away while it's being used. Note that u_upload_data() could e.g. use a pool of buffers instead of allocating new ones all the time if that turns out to be a significant issue.
Diffstat (limited to 'src/gallium/drivers/r600/r600_context.c')
-rw-r--r--src/gallium/drivers/r600/r600_context.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/src/gallium/drivers/r600/r600_context.c b/src/gallium/drivers/r600/r600_context.c
index 776dc24569b..f07cbfc2ccf 100644
--- a/src/gallium/drivers/r600/r600_context.c
+++ b/src/gallium/drivers/r600/r600_context.c
@@ -70,10 +70,6 @@ void r600_flush(struct pipe_context *ctx, unsigned flags,
struct r600_context *rctx = r600_context(ctx);
struct r600_query *rquery = NULL;
- /* flush upload buffers */
- u_upload_flush(rctx->upload_vb);
- u_upload_flush(rctx->upload_ib);
-
/* suspend queries */
r600_queries_suspend(ctx);