mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 15:48:36 +02:00
radv: implement missing VK_ACCESS_MEMORY_{READ,WRITE}_BIT
From the Vulkan spec 1.2.146:
"VK_ACCESS_MEMORY_READ_BIT specifies all read accesses. It is
always valid in any access mask, and is treated as equivalent
to setting all READ access flags that are valid where it is
used."
"VK_ACCESS_MEMORY_WRITE_BIT specifies all write accesses.
It is always valid in any access mask, and is treated as
equivalent to setting all WRITE access flags that are valid
where it is used."
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3241
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/5807>
This commit is contained in:
parent
02a57896f6
commit
6f734324a5
1 changed files with 24 additions and 0 deletions
|
|
@ -2907,6 +2907,17 @@ radv_src_access_flush(struct radv_cmd_buffer *cmd_buffer,
|
|||
RADV_CMD_FLAG_FLUSH_AND_INV_DB |
|
||||
RADV_CMD_FLAG_INV_L2;
|
||||
|
||||
if (flush_CB_meta)
|
||||
flush_bits |= RADV_CMD_FLAG_FLUSH_AND_INV_CB_META;
|
||||
if (flush_DB_meta)
|
||||
flush_bits |= RADV_CMD_FLAG_FLUSH_AND_INV_DB_META;
|
||||
break;
|
||||
case VK_ACCESS_MEMORY_WRITE_BIT:
|
||||
flush_bits |= RADV_CMD_FLAG_INV_L2 |
|
||||
RADV_CMD_FLAG_WB_L2 |
|
||||
RADV_CMD_FLAG_FLUSH_AND_INV_CB |
|
||||
RADV_CMD_FLAG_FLUSH_AND_INV_DB;
|
||||
|
||||
if (flush_CB_meta)
|
||||
flush_bits |= RADV_CMD_FLAG_FLUSH_AND_INV_CB_META;
|
||||
if (flush_DB_meta)
|
||||
|
|
@ -2994,6 +3005,19 @@ radv_dst_access_flush(struct radv_cmd_buffer *cmd_buffer,
|
|||
if (flush_DB_meta)
|
||||
flush_bits |= RADV_CMD_FLAG_FLUSH_AND_INV_DB_META;
|
||||
break;
|
||||
case VK_ACCESS_MEMORY_READ_BIT:
|
||||
flush_bits |= RADV_CMD_FLAG_INV_VCACHE |
|
||||
RADV_CMD_FLAG_INV_SCACHE |
|
||||
RADV_CMD_FLAG_INV_L2;
|
||||
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;
|
||||
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;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue