diff options
author | Nicolai Hähnle <[email protected]> | 2017-09-08 11:54:37 +0200 |
---|---|---|
committer | Nicolai Hähnle <[email protected]> | 2017-09-18 11:25:19 +0200 |
commit | 66d03d0e3e963f83b15aec910325ae9cce07d092 (patch) | |
tree | 07c94e1105244f510decf9a252824817f29b2471 | |
parent | 3f6b3d9db72c45e648c8c5943ef949273b110005 (diff) |
gallium/radeon: pass old_(perfect_)enable to set_occlusion_query_state
The callee can derive the current enable state itself.
Reviewed-by: Marek Olšák <[email protected]>
Tested-by: Dieter Nützel <[email protected]>
-rw-r--r-- | src/gallium/drivers/r600/r600_state_common.c | 4 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/r600_pipe_common.h | 4 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/r600_query.c | 3 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_state.c | 4 |
4 files changed, 11 insertions, 4 deletions
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; |