18 #include "../utils/utils.hpp"
24 static char const * AppName =
"PhysicalDeviceMemoryProperties";
25 static char const * EngineName =
"Vulkan.hpp";
29 std::ostringstream oss;
34 else if ( size < 1024 * 1024 )
36 oss << size / 1024.f <<
" KB";
38 else if ( size < 1024 * 1024 * 1024 )
40 oss << size / ( 1024.0f * 1024.0f ) <<
" MB";
44 oss << size / ( 1024.0f * 1024.0f * 1024.0f ) <<
" GB";
54 #if !defined( NDEBUG )
63 for (
size_t i = 0; i < physicalDevices.size(); i++ )
66 std::vector<vk::ExtensionProperties> extensionProperties = physicalDevices[i].enumerateDeviceExtensionProperties();
67 bool containsMemoryBudget =
vk::su::contains( extensionProperties,
"VK_EXT_memory_budget" );
69 std::cout <<
"PhysicalDevice " << i <<
"\n";
73 std::cout <<
"memoryHeapCount: " << memoryProperties.memoryHeapCount <<
"\n";
74 for ( uint32_t j = 0; j < memoryProperties.memoryHeapCount; j++ )
77 <<
", flags = " <<
vk::to_string( memoryProperties.memoryHeaps[j].flags ) <<
"\n";
78 if ( containsMemoryBudget )
81 <<
", heapUsage = " <<
formatSize( memoryBudgetProperties.heapUsage[j] ) <<
"\n";
84 std::cout <<
"memoryTypeCount: " << memoryProperties.memoryTypeCount <<
"\n";
85 for ( uint32_t j = 0; j < memoryProperties.memoryTypeCount; j++ )
87 std::cout <<
" " << j <<
": heapIndex = " << memoryProperties.memoryTypes[j].heapIndex
88 <<
", flags = " <<
vk::to_string( memoryProperties.memoryTypes[j].propertyFlags ) <<
"\n";
94 #if !defined( NDEBUG )
104 catch ( std::exception & err )
std::string formatSize(vk::DeviceSize size)
void cout(vk::SurfaceCapabilitiesKHR const &surfaceCapabilities)
VULKAN_HPP_NODISCARD Result createDebugUtilsMessengerEXT(const vk::DebugUtilsMessengerCreateInfoEXT *pCreateInfo, const vk::AllocationCallbacks *pAllocator, vk::DebugUtilsMessengerEXT *pMessenger, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT
void destroy(const vk::AllocationCallbacks *pAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT
VULKAN_HPP_NODISCARD Result enumeratePhysicalDevices(uint32_t *pPhysicalDeviceCount, vk::PhysicalDevice *pPhysicalDevices, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT
void destroyDebugUtilsMessengerEXT(vk::DebugUtilsMessengerEXT messenger, const vk::AllocationCallbacks *pAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT
virtual const char * what() const VULKAN_HPP_NOEXCEPT
vk::DebugUtilsMessengerCreateInfoEXT makeDebugUtilsMessengerCreateInfoEXT()
vk::Instance createInstance(std::string const &appName, std::string const &engineName, std::vector< std::string > const &layers, std::vector< std::string > const &extensions, uint32_t apiVersion)
bool contains(std::vector< vk::ExtensionProperties > const &extensionProperties, std::string const &extensionName)
VULKAN_HPP_INLINE std::string to_string(FormatFeatureFlags value)
#define VK_API_VERSION_1_1