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);
       }

Reply via email to