summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300/r300_query.c
diff options
context:
space:
mode:
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;
}