diff options
author | Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> | 2020-10-06 03:53:40 +0200 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2021-01-13 16:27:19 +0000 |
commit | dba0a523a0aaef5937772472bf1b43c7c27df563 (patch) | |
tree | 07b80ae2c7d9096875dcb97b725e0aff0296f8d9 /src | |
parent | 9026f10cdadff9d485dfd64654407518c6497c50 (diff) |
radv: Do dst invalidations for write accesses.
For write-after-write hazards.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7202>
Diffstat (limited to 'src')
-rw-r--r-- | src/amd/vulkan/radv_cmd_buffer.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 2a09d2bb700..394c1199f14 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -3387,8 +3387,9 @@ radv_dst_access_flush(struct radv_cmd_buffer *cmd_buffer, flush_bits |= RADV_CMD_FLAG_INV_VCACHE | RADV_CMD_FLAG_INV_SCACHE; break; case VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT: - case VK_ACCESS_TRANSFER_READ_BIT: case VK_ACCESS_INPUT_ATTACHMENT_READ_BIT: + case VK_ACCESS_TRANSFER_READ_BIT: + case VK_ACCESS_TRANSFER_WRITE_BIT: flush_bits |= RADV_CMD_FLAG_INV_VCACHE | RADV_CMD_FLAG_INV_L2; break; @@ -3402,19 +3403,24 @@ radv_dst_access_flush(struct radv_cmd_buffer *cmd_buffer, if (!image_is_coherent) flush_bits |= RADV_CMD_FLAG_INV_L2; break; + case VK_ACCESS_SHADER_WRITE_BIT: + break; case VK_ACCESS_COLOR_ATTACHMENT_READ_BIT: + case VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT: if (flush_CB) flush_bits |= RADV_CMD_FLAG_FLUSH_AND_INV_CB; if (flush_CB_meta) flush_bits |= RADV_CMD_FLAG_FLUSH_AND_INV_CB_META; break; case VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT: + case VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT: if (flush_DB) flush_bits |= RADV_CMD_FLAG_FLUSH_AND_INV_DB; if (flush_DB_meta) flush_bits |= RADV_CMD_FLAG_FLUSH_AND_INV_DB_META; break; case VK_ACCESS_MEMORY_READ_BIT: + case VK_ACCESS_MEMORY_WRITE_BIT: flush_bits |= RADV_CMD_FLAG_INV_VCACHE | RADV_CMD_FLAG_INV_SCACHE | RADV_CMD_FLAG_INV_L2; |