summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300/r300_query.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2011-11-10 21:18:10 +0100
committerMarek Olšák <[email protected]>2011-11-10 22:53:54 +0100
commit014b3aa07d252d71a85234cfd2255b3b561b5c16 (patch)
treec78fcdd77cacdfa8a108a0d8300a66538f2041fe /src/gallium/drivers/r300/r300_query.c
parent4fd485666a9a52c48633d261c2fdd763d63299f5 (diff)
r300g: implement PIPE_QUERY_OCCLUSION_PREDICATE
Diffstat (limited to 'src/gallium/drivers/r300/r300_query.c')
-rw-r--r--src/gallium/drivers/r300/r300_query.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/drivers/r300/r300_query.c b/src/gallium/drivers/r300/r300_query.c
index 55ec66deb72..c1667171766 100644
--- a/src/gallium/drivers/r300/r300_query.c
+++ b/src/gallium/drivers/r300/r300_query.c
@@ -36,7 +36,8 @@ static struct pipe_query *r300_create_query(struct pipe_context *pipe,
struct r300_screen *r300screen = r300->screen;
struct r300_query *q;
- if (query_type != PIPE_QUERY_OCCLUSION_COUNTER) {
+ if (query_type != PIPE_QUERY_OCCLUSION_COUNTER &&
+ query_type != PIPE_QUERY_OCCLUSION_PREDICATE) {
return NULL;
}
@@ -139,6 +140,9 @@ static boolean r300_get_query_result(struct pipe_context* pipe,
r300->rws->buffer_unmap(q->buf);
+ if (q->type == PIPE_QUERY_OCCLUSION_PREDICATE) {
+ temp = temp != 0;
+ }
*((uint64_t*)vresult) = temp;
return TRUE;
}