From 6a02873687f76c08bf4788d2905b9b8abeee2ba7 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Tue, 26 Mar 2019 11:08:22 -0700 Subject: [PATCH] iris: Only update clear color for gens 8 and 9. Newer gens can read it directly. Also properly skip updating the ISL_AUX_USAGE_NONE surface. Fixes: a8b5ea8ef015ed4a "iris: Add function to update clear color in surface state." Reviewed-by: Kenneth Graunke --- src/gallium/drivers/iris/iris_state.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index 25c2af9845e..50956ec7243 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -3785,8 +3785,17 @@ update_clear_value(struct iris_batch *batch, struct iris_resource *res, struct iris_state_ref *state) { + struct iris_screen *screen = batch->screen; + const struct gen_device_info *devinfo = &screen->devinfo; + + /* We only need to update the clear color in the surface state for gen8 and + * gen9. Newer gens can read it directly from the clear color state buffer. + */ + if (devinfo->gen > 9) + return; + unsigned aux_modes = res->aux.possible_usages; - aux_modes &= ~ISL_AUX_USAGE_NONE; + aux_modes &= ~(1 << ISL_AUX_USAGE_NONE); while (aux_modes) { enum isl_aux_usage aux_usage = u_bit_scan(&aux_modes); -- 2.30.2