r600g: handle PIPE_QUERY_GPU_FINISHED
authorChristoph Bumiller <christoph.bumiller@speed.at>
Fri, 16 May 2014 23:20:13 +0000 (01:20 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 2 Jun 2014 10:49:02 +0000 (12:49 +0200)
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeon/r600_query.c

index 38889fdf2a52259a10a5b1cc777ba4aa5c7d78fe..a356aad5b32792701fcf8b7ea84ea474dcaceeb9 100644 (file)
@@ -113,6 +113,7 @@ static struct r600_resource *r600_new_query_buffer(struct r600_common_context *c
                }
                ctx->ws->buffer_unmap(buf->cs_buf);
                break;
+       case PIPE_QUERY_GPU_FINISHED:
        case PIPE_QUERY_TIME_ELAPSED:
        case PIPE_QUERY_TIMESTAMP:
                break;
@@ -274,6 +275,8 @@ static void r600_emit_query_end(struct r600_common_context *ctx, struct r600_que
                radeon_emit(cs, va);
                radeon_emit(cs, (va >> 32UL) & 0xFF);
                break;
+        case PIPE_QUERY_GPU_FINISHED:
+               break;
        default:
                assert(0);
        }
@@ -357,6 +360,9 @@ static struct pipe_query *r600_create_query(struct pipe_context *ctx, unsigned q
                query->result_size = 16 * rctx->max_db;
                query->num_cs_dw = 6;
                break;
+       case PIPE_QUERY_GPU_FINISHED:
+               query->num_cs_dw = 2;
+               break;
        case PIPE_QUERY_TIME_ELAPSED:
                query->result_size = 16;
                query->num_cs_dw = 8;
@@ -583,6 +589,9 @@ static boolean r600_get_query_buffer_result(struct r600_common_context *ctx,
                        results_base += 16;
                }
                break;
+       case PIPE_QUERY_GPU_FINISHED:
+               result->b = TRUE;
+               break;
        case PIPE_QUERY_TIME_ELAPSED:
                while (results_base != qbuf->results_end) {
                        result->u64 +=