radv: re-emit the guardband state when restoring meta operations

Meta operations change dynamic states like viewports and previously,
the guardband state was also always re-emitted because it relied on
dynamic viewport/scissor changes.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7577
Fixes: 40d8df7280 ("radv: emit the guardband state separately from the scissor state")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19521>
(cherry picked from commit 33d60bda9d)
This commit is contained in:
Samuel Pitoiset 2022-11-04 10:19:48 +01:00 committed by Eric Engestrom
parent 19711e41c5
commit 935aaef351
2 changed files with 4 additions and 1 deletions

View file

@ -787,7 +787,7 @@
"description": "radv: re-emit the guardband state when restoring meta operations",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "40d8df728081e050b83ff0677ce4bf947e234a03"
},

View file

@ -163,6 +163,9 @@ radv_meta_restore(const struct radv_meta_saved_state *state, struct radv_cmd_buf
/* Restore all dynamic states. */
cmd_buffer->state.dynamic = state->dynamic;
cmd_buffer->state.dirty |= RADV_DYNAMIC_ALL;
/* Re-emit the guardband state because meta operations changed dynamic states. */
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_GUARDBAND;
}
if (state->flags & RADV_META_SAVE_COMPUTE_PIPELINE) {