From 66d03d0e3e963f83b15aec910325ae9cce07d092 Mon Sep 17 00:00:00 2001 From: Nicolai Hähnle Date: Fri, 8 Sep 2017 11:54:37 +0200 Subject: gallium/radeon: pass old_(perfect_)enable to set_occlusion_query_state MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The callee can derive the current enable state itself. Reviewed-by: Marek Olšák Tested-by: Dieter Nützel --- src/gallium/drivers/r600/r600_state_common.c | 4 +++- src/gallium/drivers/radeon/r600_pipe_common.h | 4 +++- src/gallium/drivers/radeon/r600_query.c | 3 ++- src/gallium/drivers/radeonsi/si_state.c | 4 +++- 4 files changed, 11 insertions(+), 4 deletions(-) (limited to 'src/gallium') diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c index 1515c28091c..38f4ca0fc46 100644 --- a/src/gallium/drivers/r600/r600_state_common.c +++ b/src/gallium/drivers/r600/r600_state_common.c @@ -2914,7 +2914,9 @@ static void r600_set_active_query_state(struct pipe_context *ctx, boolean enable } } -static void r600_set_occlusion_query_state(struct pipe_context *ctx, bool enable) +static void r600_set_occlusion_query_state(struct pipe_context *ctx, + bool old_enable, + bool old_perfect_enable) { struct r600_context *rctx = (struct r600_context*)ctx; diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h b/src/gallium/drivers/radeon/r600_pipe_common.h index 08220bdfd8d..46db2c968f3 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.h +++ b/src/gallium/drivers/radeon/r600_pipe_common.h @@ -704,7 +704,9 @@ struct r600_common_context { uint64_t old_gpu_address); /* Enable or disable occlusion queries. */ - void (*set_occlusion_query_state)(struct pipe_context *ctx, bool enable); + void (*set_occlusion_query_state)(struct pipe_context *ctx, + bool old_enable, + bool old_perfect_enable); void (*save_qbo_state)(struct pipe_context *ctx, struct r600_qbo_state *st); diff --git a/src/gallium/drivers/radeon/r600_query.c b/src/gallium/drivers/radeon/r600_query.c index e655bbdaa23..66bf4d88258 100644 --- a/src/gallium/drivers/radeon/r600_query.c +++ b/src/gallium/drivers/radeon/r600_query.c @@ -713,7 +713,8 @@ static void r600_update_occlusion_query_state(struct r600_common_context *rctx, perfect_enable = rctx->num_perfect_occlusion_queries != 0; if (enable != old_enable || perfect_enable != old_perfect_enable) { - rctx->set_occlusion_query_state(&rctx->b, enable); + rctx->set_occlusion_query_state(&rctx->b, old_enable, + old_perfect_enable); } } } diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index 1602406000e..f2a6a259919 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -1191,7 +1191,9 @@ static void si_set_active_query_state(struct pipe_context *ctx, boolean enable) } } -static void si_set_occlusion_query_state(struct pipe_context *ctx, bool enable) +static void si_set_occlusion_query_state(struct pipe_context *ctx, + bool old_enable, + bool old_perfect_enable) { struct si_context *sctx = (struct si_context*)ctx; -- cgit v1.2.3