From b30342d38f372ac987322d9d01d9296eb2511f79 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Tue, 17 Jul 2018 13:22:48 +1000 Subject: VideoBackends: Support D24S8 abstract texture format --- Source/Core/VideoBackends/Vulkan/Util.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'Source/Core/VideoBackends/Vulkan/Util.cpp') diff --git a/Source/Core/VideoBackends/Vulkan/Util.cpp b/Source/Core/VideoBackends/Vulkan/Util.cpp index 9e9060c5a3..4ffa5c0146 100644 --- a/Source/Core/VideoBackends/Vulkan/Util.cpp +++ b/Source/Core/VideoBackends/Vulkan/Util.cpp @@ -118,6 +118,9 @@ VkFormat GetVkFormatForHostTextureFormat(AbstractTextureFormat format) case AbstractTextureFormat::D16: return VK_FORMAT_D16_UNORM; + case AbstractTextureFormat::D24_S8: + return VK_FORMAT_D24_UNORM_S8_UINT; + case AbstractTextureFormat::R32F: return VK_FORMAT_R32_SFLOAT; @@ -133,6 +136,24 @@ VkFormat GetVkFormatForHostTextureFormat(AbstractTextureFormat format) } } +VkImageAspectFlags GetImageAspectForFormat(VkFormat format) +{ + switch (format) + { + case VK_FORMAT_D16_UNORM_S8_UINT: + case VK_FORMAT_D24_UNORM_S8_UINT: + case VK_FORMAT_D32_SFLOAT_S8_UINT: + return VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT; + + case VK_FORMAT_D16_UNORM: + case VK_FORMAT_D32_SFLOAT: + return VK_IMAGE_ASPECT_DEPTH_BIT; + + default: + return VK_IMAGE_ASPECT_COLOR_BIT; + } +} + u32 GetTexelSize(VkFormat format) { // Only contains pixel formats we use. -- cgit v1.2.3