diff --git a/src/microsoft/vulkan/dzn_image.c b/src/microsoft/vulkan/dzn_image.c index aae3facfec6..18e1c6d125f 100644 --- a/src/microsoft/vulkan/dzn_image.c +++ b/src/microsoft/vulkan/dzn_image.c @@ -286,8 +286,11 @@ dzn_image_get_dxgi_format(VkFormat format, DXGI_FORMAT_D32_FLOAT : DXGI_FORMAT_R32_FLOAT; case PIPE_FORMAT_Z24X8_UNORM: - return usage == VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT ? - DXGI_FORMAT_D24_UNORM_S8_UINT : DXGI_FORMAT_R24_UNORM_X8_TYPELESS; + if (usage == VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) + return DXGI_FORMAT_D24_UNORM_S8_UINT; + if (aspects & VK_IMAGE_ASPECT_DEPTH_BIT) + return DXGI_FORMAT_R24_UNORM_X8_TYPELESS; + return DXGI_FORMAT_R24G8_TYPELESS; case PIPE_FORMAT_Z24_UNORM_S8_UINT: if (usage == VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) @@ -301,8 +304,11 @@ dzn_image_get_dxgi_format(VkFormat format, return DXGI_FORMAT_R24G8_TYPELESS; case PIPE_FORMAT_X24S8_UINT: - return usage == VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT ? - DXGI_FORMAT_D24_UNORM_S8_UINT : DXGI_FORMAT_X24_TYPELESS_G8_UINT; + if (usage == VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) + return DXGI_FORMAT_D24_UNORM_S8_UINT; + if (aspects & VK_IMAGE_ASPECT_STENCIL_BIT) + return DXGI_FORMAT_X24_TYPELESS_G8_UINT; + return DXGI_FORMAT_R24G8_TYPELESS; case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT: if (usage == VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT)