diff --git a/src/nouveau/vulkan/nvk_cmd_clear.c b/src/nouveau/vulkan/nvk_cmd_clear.c index 6352678a430..8dc92550698 100644 --- a/src/nouveau/vulkan/nvk_cmd_clear.c +++ b/src/nouveau/vulkan/nvk_cmd_clear.c @@ -25,6 +25,18 @@ nvk_mme_clear(struct mme_builder *b) const uint32_t arr_idx = 1 << DRF_LO(NV9097_CLEAR_SURFACE_RT_ARRAY_INDEX); + mme_if(b, ieq, view_mask, mme_zero()) { + struct mme_value layer_count = mme_load(b); + + mme_loop(b, layer_count) { + mme_mthd(b, NV9097_CLEAR_SURFACE); + mme_emit(b, payload); + + mme_add_to(b, payload, payload, mme_imm(arr_idx)); + } + mme_free_reg(b, layer_count); + } + mme_if(b, ine, view_mask, mme_zero()) { struct mme_value bit = mme_mov(b, mme_imm(1)); @@ -40,18 +52,6 @@ nvk_mme_clear(struct mme_builder *b) mme_free_reg(b, bit); } - mme_if(b, ieq, view_mask, mme_zero()) { - struct mme_value layer_count = mme_load(b); - - mme_loop(b, layer_count) { - mme_mthd(b, NV9097_CLEAR_SURFACE); - mme_emit(b, payload); - - mme_add_to(b, payload, payload, mme_imm(arr_idx)); - } - mme_free_reg(b, layer_count); - } - mme_free_reg(b, payload); mme_free_reg(b, view_mask); }