summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2020-10-06 03:53:40 +0200
committerMarge Bot <eric+marge@anholt.net>2021-01-13 16:27:19 +0000
commitdba0a523a0aaef5937772472bf1b43c7c27df563 (patch)
tree07b80ae2c7d9096875dcb97b725e0aff0296f8d9 /src
parent9026f10cdadff9d485dfd64654407518c6497c50 (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.c8
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;