SpiecsEngine
 
Loading...
Searching...
No Matches

◆ findSupportedFormat()

VkFormat Spices::VulkanSwapChain::findSupportedFormat ( const VkPhysicalDevice & physicalDevice,
const std::vector< VkFormat > & candidates,
VkImageTiling tiling,
VkFormatFeatureFlags features )
static

Check whether specific formats is supported by physical device.

Parameters
[in]physicalDeviceVkPhysicalDevice.
[in]candidatesThe VkFormats Container we need query.
[in]tilingVkImageTiling.
[in]featuresVkFormatFeatureFlags.
Returns
Returns a Format supported.

Iter all candidates.

Return one if not find.

Iter all candidates.

Return one if not find.

Definition at line 62 of file VulkanSwapChain.cpp.

68 {
70
74 for (const VkFormat format : candidates)
75 {
76 VkFormatProperties props;
77 vkGetPhysicalDeviceFormatProperties(physicalDevice, format, &props);
78
79 if (tiling == VK_IMAGE_TILING_LINEAR && (props.linearTilingFeatures & features) == features) {
80 return format;
81 }
82 else if (tiling == VK_IMAGE_TILING_OPTIMAL && (props.optimalTilingFeatures & features) == features) {
83 return format;
84 }
85
86 SPICES_CORE_WARN("VulkanSwapChain::Not find a suitable format.");
87 }
88
92 return candidates[0];
93 }
#define SPICES_PROFILE_ZONE