Mesa (master): r600g: cleanup r600_query_result
Marek Olšák
mareko at kemper.freedesktop.org
Fri Oct 28 17:45:14 UTC 2011
Module: Mesa
Branch: master
Commit: b70a51318a43f489611f4fc2f93887a362f5c99f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b70a51318a43f489611f4fc2f93887a362f5c99f
Author: Marek Olšák <maraeo at gmail.com>
Date: Fri Oct 28 12:44:19 2011 +0200
r600g: cleanup r600_query_result
---
src/gallium/drivers/r600/r600_hw_context.c | 15 ++++++---------
1 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_hw_context.c b/src/gallium/drivers/r600/r600_hw_context.c
index f6609ce..aec537f 100644
--- a/src/gallium/drivers/r600/r600_hw_context.c
+++ b/src/gallium/drivers/r600/r600_hw_context.c
@@ -1568,20 +1568,17 @@ void r600_context_emit_fence(struct r600_context *ctx, struct r600_resource *fen
static boolean r600_query_result(struct r600_context *ctx, struct r600_query *query, boolean wait)
{
unsigned results_base = query->results_start;
- u64 start, end;
- u32 *results, *current_result;
+ u32 *map;
- if (wait)
- results = ctx->screen->ws->buffer_map(query->buffer->buf, ctx->cs, PIPE_TRANSFER_READ);
- else
- results = ctx->screen->ws->buffer_map(query->buffer->buf, ctx->cs, PIPE_TRANSFER_DONTBLOCK | PIPE_TRANSFER_READ);
- if (!results)
+ map = ctx->screen->ws->buffer_map(query->buffer->buf, ctx->cs,
+ PIPE_TRANSFER_READ | (wait ? 0 : PIPE_TRANSFER_DONTBLOCK));
+ if (!map)
return FALSE;
-
/* count all results across all data blocks */
while (results_base != query->results_end) {
- current_result = (u32*)((char*)results + results_base);
+ u64 start, end;
+ u32 *current_result = (u32*)((char*)map + results_base);
start = (u64)current_result[0] | (u64)current_result[1] << 32;
end = (u64)current_result[2] | (u64)current_result[3] << 32;
More information about the mesa-commit
mailing list