r600g: cleanup r600_query_result
authorMarek Olšák <maraeo@gmail.com>
Fri, 28 Oct 2011 10:44:19 +0000 (12:44 +0200)
committerMarek Olšák <maraeo@gmail.com>
Fri, 28 Oct 2011 17:29:05 +0000 (19:29 +0200)
src/gallium/drivers/r600/r600_hw_context.c

index f6609ce9692868a6881f91a4cbda4b09339d2ba4..aec537f82da1cf6f2b2a5da217729fd9017a6241 100644 (file)
@@ -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;