From: Marek Olšák Date: Thu, 10 Nov 2011 20:18:10 +0000 (+0100) Subject: r300g: implement PIPE_QUERY_OCCLUSION_PREDICATE X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=014b3aa07d252d71a85234cfd2255b3b561b5c16;p=mesa.git r300g: implement PIPE_QUERY_OCCLUSION_PREDICATE --- 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; }