zink: mark general layout as transfer-read/write
The general layout can be used for transfers, so we need to make sure the vulkan driver knows. This will help the driver know when it needs to flush caches. While we're at it, also add shader-read, which is another access we use. We should stop using that one ASAP, but for now this seems like the right thing to do. Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7652>
This commit is contained in:
parent
249aed1ff0
commit
11ebe2a572
|
@ -771,9 +771,11 @@ access_src_flags(VkImageLayout layout)
|
|||
{
|
||||
switch (layout) {
|
||||
case VK_IMAGE_LAYOUT_UNDEFINED:
|
||||
case VK_IMAGE_LAYOUT_GENERAL:
|
||||
return 0;
|
||||
|
||||
case VK_IMAGE_LAYOUT_GENERAL:
|
||||
return VK_ACCESS_TRANSFER_READ_BIT | VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_TRANSFER_WRITE_BIT;
|
||||
|
||||
case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:
|
||||
return VK_ACCESS_COLOR_ATTACHMENT_READ_BIT;
|
||||
case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:
|
||||
|
@ -801,9 +803,11 @@ access_dst_flags(VkImageLayout layout)
|
|||
{
|
||||
switch (layout) {
|
||||
case VK_IMAGE_LAYOUT_UNDEFINED:
|
||||
case VK_IMAGE_LAYOUT_GENERAL:
|
||||
return 0;
|
||||
|
||||
case VK_IMAGE_LAYOUT_GENERAL:
|
||||
return VK_ACCESS_TRANSFER_READ_BIT | VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_TRANSFER_WRITE_BIT;
|
||||
|
||||
case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:
|
||||
return VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
|
||||
case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:
|
||||
|
@ -834,6 +838,9 @@ pipeline_dst_stage(VkImageLayout layout)
|
|||
case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:
|
||||
return VK_PIPELINE_STAGE_TRANSFER_BIT;
|
||||
|
||||
case VK_IMAGE_LAYOUT_GENERAL:
|
||||
return VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
|
||||
|
||||
default:
|
||||
return VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT;
|
||||
}
|
||||
|
@ -853,6 +860,9 @@ pipeline_src_stage(VkImageLayout layout)
|
|||
case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:
|
||||
return VK_PIPELINE_STAGE_TRANSFER_BIT;
|
||||
|
||||
case VK_IMAGE_LAYOUT_GENERAL:
|
||||
return VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
|
||||
|
||||
default:
|
||||
return VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue