diff options
Diffstat (limited to 'src/microsoft/vulkan/dzn_image.cpp')
-rw-r--r-- | src/microsoft/vulkan/dzn_image.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/microsoft/vulkan/dzn_image.cpp b/src/microsoft/vulkan/dzn_image.cpp index 79650b094e7..f2b1d9f0092 100644 --- a/src/microsoft/vulkan/dzn_image.cpp +++ b/src/microsoft/vulkan/dzn_image.cpp @@ -509,7 +509,7 @@ dzn_image_get_rtv_desc(const dzn_image *image, } D3D12_RESOURCE_STATES -dzn_image_layout_to_state(VkImageLayout layout) +dzn_image_layout_to_state(VkImageLayout layout, VkImageAspectFlagBits aspect) { switch (layout) { case VK_IMAGE_LAYOUT_PREINITIALIZED: @@ -536,6 +536,16 @@ dzn_image_layout_to_state(VkImageLayout layout) case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL: return D3D12_RESOURCE_STATE_DEPTH_READ; + case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL: + return aspect == VK_IMAGE_ASPECT_STENCIL_BIT ? + D3D12_RESOURCE_STATE_DEPTH_WRITE : + D3D12_RESOURCE_STATE_DEPTH_READ; + + case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL: + return aspect == VK_IMAGE_ASPECT_STENCIL_BIT ? + D3D12_RESOURCE_STATE_DEPTH_READ : + D3D12_RESOURCE_STATE_DEPTH_WRITE; + case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL: return D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE; |