hasvk: add state cache invalidation back before fast clears

Prior to 87149cc545, blorp added a state cache invalidation prior to
fast clears. This got dropped on Hasvk.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 87149cc545 ("blorp: update and move fast clear PIPE_CONTROLs to drivers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24719>
(cherry picked from commit 9231f24be1)
This commit is contained in:
Lionel Landwerlin 2023-08-16 11:53:24 +03:00 committed by Dylan Baker
parent 97ea9e77f5
commit 7fc8a05cd5
3 changed files with 19 additions and 1 deletions

View file

@ -6454,7 +6454,7 @@
"description": "hasvk: add state cache invalidation back before fast clears",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "87149cc545afdacb339a933d47ded5c1adf8f429",
"notes": null

View file

@ -135,6 +135,12 @@ struct blorp_address {
bool local_hint;
};
static inline bool
blorp_address_is_null(struct blorp_address address)
{
return address.buffer == NULL && address.offset == 0;
}
struct blorp_surf
{
const struct isl_surf *surf;

View file

@ -1826,6 +1826,12 @@ anv_image_mcs_op(struct anv_cmd_buffer *cmd_buffer,
ANV_PIPE_END_OF_PIPE_SYNC_BIT,
"before fast clear mcs");
if (!blorp_address_is_null(surf.clear_color_addr)) {
anv_add_pending_pipe_bits(cmd_buffer,
ANV_PIPE_STATE_CACHE_INVALIDATE_BIT,
"before blorp clear color edit");
}
switch (mcs_op) {
case ISL_AUX_OP_FAST_CLEAR:
blorp_fast_clear(&batch, &surf, format, swizzle,
@ -1914,6 +1920,12 @@ anv_image_ccs_op(struct anv_cmd_buffer *cmd_buffer,
ANV_PIPE_END_OF_PIPE_SYNC_BIT,
"before fast clear ccs");
if (!blorp_address_is_null(surf.clear_color_addr)) {
anv_add_pending_pipe_bits(cmd_buffer,
ANV_PIPE_STATE_CACHE_INVALIDATE_BIT,
"before blorp clear color edit");
}
switch (ccs_op) {
case ISL_AUX_OP_FAST_CLEAR:
blorp_fast_clear(&batch, &surf, format, swizzle,