Module: Mesa Branch: main Commit: 02a873fa2a8b21c442a14ad91a772804f5f4a303 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=02a873fa2a8b21c442a14ad91a772804f5f4a303
Author: jphuang <jphu...@microsoft.com> Date: Mon Dec 4 10:55:48 2023 +0800 dzn: Change dst image layout according to aspect Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26532> --- src/microsoft/vulkan/dzn_cmd_buffer.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/microsoft/vulkan/dzn_cmd_buffer.c b/src/microsoft/vulkan/dzn_cmd_buffer.c index 8ea71d0cec9..18f1d50a75a 100644 --- a/src/microsoft/vulkan/dzn_cmd_buffer.c +++ b/src/microsoft/vulkan/dzn_cmd_buffer.c @@ -2900,13 +2900,15 @@ dzn_cmd_buffer_blit_issue_barriers(struct dzn_cmd_buffer *cmdbuf, D3D12_BARRIER_LAYOUT_RENDER_TARGET, &dst_range); } else { + VkImageLayout dst_new_layout = (aspect & (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) ? + VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL : VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; dzn_cmd_buffer_queue_image_range_layout_transition(cmdbuf, src, &src_range, src_layout, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, DZN_QUEUE_TRANSITION_FLUSH); dzn_cmd_buffer_queue_image_range_layout_transition(cmdbuf, dst, &dst_range, dst_layout, - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + dst_new_layout, DZN_QUEUE_TRANSITION_FLUSH); } } else { @@ -2916,12 +2918,14 @@ dzn_cmd_buffer_blit_issue_barriers(struct dzn_cmd_buffer *cmdbuf, D3D12_BARRIER_LAYOUT_RENDER_TARGET, *restore_dst_layout, &dst_range); } else { + VkImageLayout dst_new_layout = (aspect & (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) ? + VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL : VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; dzn_cmd_buffer_queue_image_range_layout_transition(cmdbuf, src, &src_range, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, src_layout, DZN_QUEUE_TRANSITION_FLUSH); dzn_cmd_buffer_queue_image_range_layout_transition(cmdbuf, dst, &dst_range, - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + dst_new_layout, dst_layout, DZN_QUEUE_TRANSITION_FLUSH); }