| 906 | }; |
| 907 | |
| 908 | static VkFormat FindSupportedFormat( |
| 909 | const std::vector<VkFormat>& candidates, |
| 910 | VkImageTiling tiling, |
| 911 | VkFormatFeatureFlags features) |
| 912 | { |
| 913 | for (VkFormat format : candidates) |
| 914 | { |
| 915 | VkFormatProperties props; |
| 916 | vkGetPhysicalDeviceFormatProperties(g_hPhysicalDevice, format, &props); |
| 917 | |
| 918 | if ((tiling == VK_IMAGE_TILING_LINEAR) && |
| 919 | ((props.linearTilingFeatures & features) == features)) |
| 920 | { |
| 921 | return format; |
| 922 | } |
| 923 | else if ((tiling == VK_IMAGE_TILING_OPTIMAL) && |
| 924 | ((props.optimalTilingFeatures & features) == features)) |
| 925 | { |
| 926 | return format; |
| 927 | } |
| 928 | } |
| 929 | return VK_FORMAT_UNDEFINED; |
| 930 | } |
| 931 | |
| 932 | static VkFormat FindDepthFormat() |
| 933 | { |