diff options
author | Zack Rusin <[email protected]> | 2013-04-23 06:19:14 -0400 |
---|---|---|
committer | Zack Rusin <[email protected]> | 2013-04-26 22:58:54 -0400 |
commit | 562835bcdf8a0b005d46d641f68ba4bcf3fb2a48 (patch) | |
tree | 8a9e502e7fa16885337a6557eea1e0e2ff0a968f /src/gallium/drivers/llvmpipe/lp_query.c | |
parent | 49dda2d92f7563057601091e084d0fe154d00d25 (diff) |
llvmpipe: implement so_overflow query
Signed-off-by: Zack Rusin <[email protected]>
Reviewed-by: José Fonseca <[email protected]>
Reviewed-by: Roland Scheidegger <[email protected]>
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_query.c')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_query.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_query.c b/src/gallium/drivers/llvmpipe/lp_query.c index fcb5c6ac340..6b1da8bf3ec 100644 --- a/src/gallium/drivers/llvmpipe/lp_query.c +++ b/src/gallium/drivers/llvmpipe/lp_query.c @@ -139,6 +139,9 @@ llvmpipe_get_query_result(struct pipe_context *pipe, case PIPE_QUERY_PRIMITIVES_EMITTED: *result = pq->num_primitives_written; break; + case PIPE_QUERY_SO_OVERFLOW_PREDICATE: + *result = pq->so_has_overflown; + break; case PIPE_QUERY_SO_STATISTICS: { struct pipe_query_data_so_statistics *stats = (struct pipe_query_data_so_statistics *)vresult; @@ -196,6 +199,10 @@ llvmpipe_begin_query(struct pipe_context *pipe, struct pipe_query *q) llvmpipe->num_primitives_generated = 0; } + if (pq->type == PIPE_QUERY_SO_OVERFLOW_PREDICATE) { + pq->so_has_overflown = FALSE; + } + if (pq->type == PIPE_QUERY_PIPELINE_STATISTICS) { /* reset our cache */ if (llvmpipe->active_statistics_queries == 0) { @@ -234,6 +241,11 @@ llvmpipe_end_query(struct pipe_context *pipe, struct pipe_query *q) pq->num_primitives_generated = llvmpipe->num_primitives_generated; } + if (pq->type == PIPE_QUERY_SO_OVERFLOW_PREDICATE) { + pq->so_has_overflown = (llvmpipe->num_primitives_generated > + llvmpipe->so_stats.num_primitives_written); + } + if (pq->type == PIPE_QUERY_PIPELINE_STATISTICS) { pq->stats.ia_vertices = llvmpipe->pipeline_statistics.ia_vertices - pq->stats.ia_vertices; |