From b70a51318a43f489611f4fc2f93887a362f5c99f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Fri, 28 Oct 2011 12:44:19 +0200 Subject: [PATCH] r600g: cleanup r600_query_result --- src/gallium/drivers/r600/r600_hw_context.c | 15 ++++++--------- 1 file 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; -- 2.7.4