Sample app: Added printing information about available memory heaps nad types

This commit is contained in:
Adam Sawicki 2021-02-26 11:59:58 +01:00
parent a420c3d752
commit afd50562cb
3 changed files with 440 additions and 9 deletions

View file

@ -177,4 +177,92 @@ void SaveFile(const wchar_t* filePath, const void* data, size_t dataSize)
assert(0);
}
std::wstring SizeToStr(size_t size)
{
if(size == 0)
return L"0";
wchar_t result[32];
double size2 = (double)size;
if (size2 >= 1024.0*1024.0*1024.0*1024.0)
{
swprintf_s(result, L"%.2f TB", size2 / (1024.0*1024.0*1024.0*1024.0));
}
else if (size2 >= 1024.0*1024.0*1024.0)
{
swprintf_s(result, L"%.2f GB", size2 / (1024.0*1024.0*1024.0));
}
else if (size2 >= 1024.0*1024.0)
{
swprintf_s(result, L"%.2f MB", size2 / (1024.0*1024.0));
}
else if (size2 >= 1024.0)
{
swprintf_s(result, L"%.2f KB", size2 / 1024.0);
}
else
swprintf_s(result, L"%llu B", size);
return result;
}
const wchar_t* PhysicalDeviceTypeToStr(VkPhysicalDeviceType type)
{
// Skipping common prefix VK_PHYSICAL_DEVICE_TYPE_
static const wchar_t* const VALUES[] = {
L"OTHER",
L"INTEGRATED_GPU",
L"DISCRETE_GPU",
L"VIRTUAL_GPU",
L"CPU",
};
return (uint32_t)type < _countof(VALUES) ? VALUES[(uint32_t)type] : L"";
}
const wchar_t* VendorIDToStr(uint32_t vendorID)
{
switch(vendorID)
{
// Skipping common prefix VK_VENDOR_ID_ for these:
case 0x10001: return L"VIV";
case 0x10002: return L"VSI";
case 0x10003: return L"KAZAN";
case 0x10004: return L"CODEPLAY";
case 0x10005: return L"MESA";
case 0x10006: return L"POCL";
// Others...
case VENDOR_ID_AMD: return L"AMD";
case VENDOR_ID_NVIDIA: return L"NVIDIA";
case VENDOR_ID_INTEL: return L"Intel";
case 0x1010: return L"ImgTec";
case 0x13B5: return L"ARM";
case 0x5143: return L"Qualcomm";
}
return L"";
}
#if VMA_VULKAN_VERSION >= 1002000
const wchar_t* DriverIDToStr(VkDriverId driverID)
{
// Skipping common prefix VK_DRIVER_ID_
static const wchar_t* const VALUES[] = {
L"",
L"AMD_PROPRIETARY",
L"AMD_OPEN_SOURCE",
L"MESA_RADV",
L"NVIDIA_PROPRIETARY",
L"INTEL_PROPRIETARY_WINDOWS",
L"INTEL_OPEN_SOURCE_MESA",
L"IMAGINATION_PROPRIETARY",
L"QUALCOMM_PROPRIETARY",
L"ARM_PROPRIETARY",
L"GOOGLE_SWIFTSHADER",
L"GGP_PROPRIETARY",
L"BROADCOM_PROPRIETARY",
L"MESA_LLVMPIPE",
L"MOLTENVK",
};
return (uint32_t)driverID < _countof(VALUES) ? VALUES[(uint32_t)driverID] : L"";
}
#endif // #if VMA_VULKAN_VERSION >= 1002000
#endif // #ifdef _WIN32