diff options
Diffstat (limited to 'src/gallium/drivers/r300/r300_query.c')
-rw-r--r-- | src/gallium/drivers/r300/r300_query.c | 70 |
1 files changed, 9 insertions, 61 deletions
diff --git a/src/gallium/drivers/r300/r300_query.c b/src/gallium/drivers/r300/r300_query.c index 9752a519491..782f041e926 100644 --- a/src/gallium/drivers/r300/r300_query.c +++ b/src/gallium/drivers/r300/r300_query.c @@ -156,75 +156,23 @@ static void r300_render_condition(struct pipe_context *pipe, uint64_t result = 0; boolean wait; + r300->skip_rendering = FALSE; + if (query) { wait = mode == PIPE_RENDER_COND_WAIT || mode == PIPE_RENDER_COND_BY_REGION_WAIT; - if (!r300_get_query_result(pipe, query, wait, &result)) { - r300->skip_rendering = FALSE; - } else { + if (r300_get_query_result(pipe, query, wait, &result)) { r300->skip_rendering = result == 0; } - } else { - r300->skip_rendering = FALSE; } } -/*************************************************************************** - * Fake occlusion queries (for debugging) - ***************************************************************************/ - -static unsigned r300_fake_query; - -static struct pipe_query *r300_fake_create_query(struct pipe_context *pipe, - unsigned query_type) -{ - return (struct pipe_query*)&r300_fake_query; -} - -static void r300_fake_destroy_query(struct pipe_context* pipe, - struct pipe_query* query) -{ -} - -static void r300_fake_begin_query(struct pipe_context* pipe, - struct pipe_query* query) -{ -} - -static void r300_fake_end_query(struct pipe_context* pipe, - struct pipe_query* query) -{ -} - -static boolean r300_fake_get_query_result(struct pipe_context* pipe, - struct pipe_query* query, - boolean wait, void* vresult) -{ - uint64_t *result = (uint64_t*)vresult; - *result = 1000000; - return TRUE; -} - -static void r300_fake_render_condition(struct pipe_context *pipe, - struct pipe_query *query, uint mode) -{ -} - void r300_init_query_functions(struct r300_context* r300) { - if (DBG_ON(r300, DBG_FAKE_OCC)) { - r300->context.create_query = r300_fake_create_query; - r300->context.destroy_query = r300_fake_destroy_query; - r300->context.begin_query = r300_fake_begin_query; - r300->context.end_query = r300_fake_end_query; - r300->context.get_query_result = r300_fake_get_query_result; - r300->context.render_condition = r300_fake_render_condition; - } else { - r300->context.create_query = r300_create_query; - r300->context.destroy_query = r300_destroy_query; - r300->context.begin_query = r300_begin_query; - r300->context.end_query = r300_end_query; - r300->context.get_query_result = r300_get_query_result; - r300->context.render_condition = r300_render_condition; - } + r300->context.create_query = r300_create_query; + r300->context.destroy_query = r300_destroy_query; + r300->context.begin_query = r300_begin_query; + r300->context.end_query = r300_end_query; + r300->context.get_query_result = r300_get_query_result; + r300->context.render_condition = r300_render_condition; } |