Module: Mesa Branch: main Commit: 023f7b26dc535f33ac23d6dc55044ddda2202a66 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=023f7b26dc535f33ac23d6dc55044ddda2202a66
Author: Jesse Natalie <[email protected]> Date: Thu Mar 30 13:39:41 2023 -0700 dzn: Attempt to force depth write states for depth access in LAYOUT_GENERIC Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22225> --- src/microsoft/vulkan/dzn_cmd_buffer.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/microsoft/vulkan/dzn_cmd_buffer.c b/src/microsoft/vulkan/dzn_cmd_buffer.c index 01b24dd7b66..1e5324ff0cb 100644 --- a/src/microsoft/vulkan/dzn_cmd_buffer.c +++ b/src/microsoft/vulkan/dzn_cmd_buffer.c @@ -1150,9 +1150,19 @@ dzn_CmdPipelineBarrier2(VkCommandBuffer commandBuffer, ID3D12GraphicsCommandList1_ResourceBarrier(cmdbuf->cmdlist, 1, &aliasing_barrier); } + VkImageLayout old_layout = ibarrier->oldLayout; + VkImageLayout new_layout = ibarrier->newLayout; + if ((image->vk.usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) && + old_layout == VK_IMAGE_LAYOUT_GENERAL && + (ibarrier->srcAccessMask & VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT)) + old_layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; + if ((image->vk.usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) && + new_layout == VK_IMAGE_LAYOUT_GENERAL && + (ibarrier->dstAccessMask & VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT)) + new_layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; dzn_cmd_buffer_queue_image_range_layout_transition(cmdbuf, image, range, - ibarrier->oldLayout, - ibarrier->newLayout, + old_layout, + new_layout, DZN_QUEUE_TRANSITION_FLUSH); } }
