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.c70
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;
}