mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-14 05:48:04 +02:00
radv: restore invalidating the vector cache for internal meta operations
The driver used to invalidate the vector cache for meta operations but this has been removed and I think it should be restored to fix a bunch of regressions on GFX8. This probably needs to be cleaned up but this is a hotfix. This fixes a bunch of regressions and flakes on GFX8 like dEQP-VK.pipeline.multisample.sample_locations_ext.draw.color.samples_4.*. Fixes:8f8d72af55("radv: Use access helpers for flushing with meta operations.") 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/8573> (cherry picked from commit8882abe47e)
This commit is contained in:
parent
70e8dafb64
commit
0acff8c6f2
5 changed files with 6 additions and 1 deletions
|
|
@ -355,7 +355,7 @@
|
|||
"description": "radv: restore invalidating the vector cache for internal meta operations",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"master_sha": null,
|
||||
"because_sha": "8f8d72af555c2f4d7a44107bf52602571fc0c4d2"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -368,6 +368,7 @@ uint32_t radv_fill_buffer(struct radv_cmd_buffer *cmd_buffer,
|
|||
fill_buffer_shader(cmd_buffer, bo, offset, size, value);
|
||||
|
||||
flush_bits = RADV_CMD_FLAG_CS_PARTIAL_FLUSH |
|
||||
RADV_CMD_FLAG_INV_VCACHE |
|
||||
radv_src_access_flush(cmd_buffer, VK_ACCESS_SHADER_WRITE_BIT, image);
|
||||
} else if (size) {
|
||||
uint64_t va = radv_buffer_get_va(bo);
|
||||
|
|
|
|||
|
|
@ -940,6 +940,7 @@ clear_htile_mask(struct radv_cmd_buffer *cmd_buffer, const struct radv_image *im
|
|||
radv_meta_restore(&saved_state, cmd_buffer);
|
||||
|
||||
return RADV_CMD_FLAG_CS_PARTIAL_FLUSH |
|
||||
RADV_CMD_FLAG_INV_VCACHE |
|
||||
radv_src_access_flush(cmd_buffer, VK_ACCESS_SHADER_WRITE_BIT, image);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -949,6 +949,7 @@ radv_decompress_dcc_compute(struct radv_cmd_buffer *cmd_buffer,
|
|||
radv_meta_restore(&saved_state, cmd_buffer);
|
||||
|
||||
cmd_buffer->state.flush_bits |= RADV_CMD_FLAG_CS_PARTIAL_FLUSH |
|
||||
RADV_CMD_FLAG_INV_VCACHE |
|
||||
radv_src_access_flush(cmd_buffer, VK_ACCESS_SHADER_WRITE_BIT, image);
|
||||
|
||||
/* Initialize the DCC metadata as "fully expanded". */
|
||||
|
|
|
|||
|
|
@ -943,6 +943,7 @@ radv_cmd_buffer_resolve_subpass_cs(struct radv_cmd_buffer *cmd_buffer)
|
|||
|
||||
cmd_buffer->state.flush_bits |=
|
||||
RADV_CMD_FLAG_CS_PARTIAL_FLUSH |
|
||||
RADV_CMD_FLAG_INV_VCACHE |
|
||||
radv_src_access_flush(cmd_buffer, VK_ACCESS_SHADER_WRITE_BIT, NULL);
|
||||
}
|
||||
|
||||
|
|
@ -1022,6 +1023,7 @@ radv_depth_stencil_resolve_subpass_cs(struct radv_cmd_buffer *cmd_buffer,
|
|||
|
||||
cmd_buffer->state.flush_bits |=
|
||||
RADV_CMD_FLAG_CS_PARTIAL_FLUSH |
|
||||
RADV_CMD_FLAG_INV_VCACHE |
|
||||
radv_src_access_flush(cmd_buffer, VK_ACCESS_SHADER_WRITE_BIT, NULL);
|
||||
|
||||
VkImageLayout layout =
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue