summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruce Cherniak <[email protected]>2016-12-01 19:08:12 -0600
committerTim Rowley <[email protected]>2016-12-02 14:36:28 -0600
commita7b510f656dfbda0afb1de78926037a337449140 (patch)
tree75087c0604ea6c464cd1d3718aa6ddecbd3ab9b4
parent2085088033df8b16ac21c8b2716a0454e2987ce1 (diff)
swr: Fix active_queries count
The active_query count was incorrect for query types that don't require a begin_query. Removed the unnecessary assert. Reviewed-by: Tim Rowley <[email protected]>
-rw-r--r--src/gallium/drivers/swr/swr_query.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/gallium/drivers/swr/swr_query.cpp b/src/gallium/drivers/swr/swr_query.cpp
index a95e0d8d816..6eb07810c02 100644
--- a/src/gallium/drivers/swr/swr_query.cpp
+++ b/src/gallium/drivers/swr/swr_query.cpp
@@ -165,8 +165,9 @@ swr_begin_query(struct pipe_context *pipe, struct pipe_query *q)
/* Initialize Results */
memset(&pq->result, 0, sizeof(pq->result));
switch (pq->type) {
+ case PIPE_QUERY_GPU_FINISHED:
case PIPE_QUERY_TIMESTAMP:
- /* nothing to do */
+ /* nothing to do, but don't want the default */
break;
case PIPE_QUERY_TIME_ELAPSED:
pq->result.timestamp_start = swr_get_timestamp(pipe->screen);
@@ -181,10 +182,10 @@ swr_begin_query(struct pipe_context *pipe, struct pipe_query *q)
SwrEnableStatsFE(ctx->swrContext, TRUE);
SwrEnableStatsBE(ctx->swrContext, TRUE);
}
+ ctx->active_queries++;
break;
}
- ctx->active_queries++;
return true;
}
@@ -195,11 +196,10 @@ swr_end_query(struct pipe_context *pipe, struct pipe_query *q)
struct swr_context *ctx = swr_context(pipe);
struct swr_query *pq = swr_query(q);
- assert(ctx->active_queries
- && "swr_end_query, there are no active queries!");
- ctx->active_queries--;
-
switch (pq->type) {
+ case PIPE_QUERY_GPU_FINISHED:
+ /* nothing to do, but don't want the default */
+ break;
case PIPE_QUERY_TIMESTAMP:
case PIPE_QUERY_TIME_ELAPSED:
pq->result.timestamp_end = swr_get_timestamp(pipe->screen);
@@ -214,6 +214,7 @@ swr_end_query(struct pipe_context *pipe, struct pipe_query *q)
swr_fence_submit(ctx, pq->fence);
/* Only change stat collection if there are no active queries */
+ ctx->active_queries--;
if (ctx->active_queries == 0) {
SwrEnableStatsFE(ctx->swrContext, FALSE);
SwrEnableStatsBE(ctx->swrContext, FALSE);