diff options
author | Roland Scheidegger <[email protected]> | 2013-06-26 23:11:03 +0200 |
---|---|---|
committer | Roland Scheidegger <[email protected]> | 2013-06-26 23:17:53 +0200 |
commit | 2e4da1f59444c550e4b1e31dd5cfec39d7ef2a26 (patch) | |
tree | d87e8968c3f791cfb6eba87daa4860c6ac90d603 /src/gallium/drivers/llvmpipe/lp_query.c | |
parent | 08203428800554215657f1ebf19d74328103800e (diff) |
llvmpipe: add support for nested / overlapping queries
OpenGL doesn't support this but d3d10 does.
It is a bit of a pain as it is necessary to keep track of queries
still active at the end of a scene, which is also why I cheat a bit
and limit the amount of simultaneously active queries to (arbitrary)
16 (simplifies things because don't have to deal with a real list
that way). I can't think of a reason why you'd really want large
numbers of overlapping/nested queries so it is hopefully fine.
(This only affects queries which need to be binned.)
v2: don't copy remainder of array when deleting an entry simply replace
the deleted entry with the last one (order doesn't matter).
Reviewed-by: Jose Fonseca <[email protected]>
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_query.c')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_query.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_query.c b/src/gallium/drivers/llvmpipe/lp_query.c index 38d6b84b8d7..ac6d09d9a0f 100644 --- a/src/gallium/drivers/llvmpipe/lp_query.c +++ b/src/gallium/drivers/llvmpipe/lp_query.c @@ -233,7 +233,7 @@ llvmpipe_begin_query(struct pipe_context *pipe, struct pipe_query *q) break; case PIPE_QUERY_OCCLUSION_COUNTER: case PIPE_QUERY_OCCLUSION_PREDICATE: - llvmpipe->active_occlusion_query++; + llvmpipe->active_occlusion_queries++; llvmpipe->dirty |= LP_NEW_OCCLUSION_QUERY; break; default: @@ -288,8 +288,8 @@ llvmpipe_end_query(struct pipe_context *pipe, struct pipe_query *q) break; case PIPE_QUERY_OCCLUSION_COUNTER: case PIPE_QUERY_OCCLUSION_PREDICATE: - assert(llvmpipe->active_occlusion_query); - llvmpipe->active_occlusion_query--; + assert(llvmpipe->active_occlusion_queries); + llvmpipe->active_occlusion_queries--; llvmpipe->dirty |= LP_NEW_OCCLUSION_QUERY; break; default: |