diff options
author | Bruce Cherniak <[email protected]> | 2016-12-01 19:08:12 -0600 |
---|---|---|
committer | Tim Rowley <[email protected]> | 2016-12-02 14:36:28 -0600 |
commit | a7b510f656dfbda0afb1de78926037a337449140 (patch) | |
tree | 75087c0604ea6c464cd1d3718aa6ddecbd3ab9b4 /src/gallium/drivers/swr | |
parent | 2085088033df8b16ac21c8b2716a0454e2987ce1 (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]>
Diffstat (limited to 'src/gallium/drivers/swr')
-rw-r--r-- | src/gallium/drivers/swr/swr_query.cpp | 13 |
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); |