MCPcopy Create free account
hub / github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator / Init

Method Init

src/VulkanSample.cpp:420–528  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

418}
419
420void VulkanUsage::Init()
421{
422 g_hAppInstance = (HINSTANCE)GetModuleHandle(NULL);
423
424 if(USE_CUSTOM_CPU_ALLOCATION_CALLBACKS)
425 {
426 g_Allocs = &g_CpuAllocationCallbacks;
427 }
428
429#ifdef VOLK_HEADER_VERSION
430 ERR_GUARD_VULKAN(volkInitialize());
431#endif
432
433 uint32_t instanceLayerPropCount = 0;
434 ERR_GUARD_VULKAN( vkEnumerateInstanceLayerProperties(&instanceLayerPropCount, nullptr) );
435 std::vector<VkLayerProperties> instanceLayerProps(instanceLayerPropCount);
436 if(instanceLayerPropCount > 0)
437 {
438 ERR_GUARD_VULKAN( vkEnumerateInstanceLayerProperties(&instanceLayerPropCount, instanceLayerProps.data()) );
439 }
440
441 if(g_EnableValidationLayer)
442 {
443 if(IsLayerSupported(instanceLayerProps.data(), instanceLayerProps.size(), VALIDATION_LAYER_NAME) == false)
444 {
445 wprintf(L"Layer \"%hs\" not supported.", VALIDATION_LAYER_NAME);
446 g_EnableValidationLayer = false;
447 }
448 }
449
450 uint32_t availableInstanceExtensionCount = 0;
451 ERR_GUARD_VULKAN( vkEnumerateInstanceExtensionProperties(nullptr, &availableInstanceExtensionCount, nullptr) );
452 std::vector<VkExtensionProperties> availableInstanceExtensions(availableInstanceExtensionCount);
453 if(availableInstanceExtensionCount > 0)
454 {
455 ERR_GUARD_VULKAN( vkEnumerateInstanceExtensionProperties(nullptr, &availableInstanceExtensionCount, availableInstanceExtensions.data()) );
456 }
457
458 std::vector<const char*> enabledInstanceExtensions;
459 enabledInstanceExtensions.push_back(VK_KHR_SURFACE_EXTENSION_NAME);
460 enabledInstanceExtensions.push_back(VK_KHR_WIN32_SURFACE_EXTENSION_NAME);
461
462 std::vector<const char*> instanceLayers;
463 if(g_EnableValidationLayer)
464 {
465 instanceLayers.push_back(VALIDATION_LAYER_NAME);
466 }
467
468 for(const auto& extensionProperties : availableInstanceExtensions)
469 {
470 if(strcmp(extensionProperties.extensionName, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME) == 0)
471 {
472 if(GetVulkanApiVersion() == VK_API_VERSION_1_0)
473 {
474 enabledInstanceExtensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);
475 VK_KHR_get_physical_device_properties2_enabled = true;
476 }
477 }

Callers 1

Main2Function · 0.45

Calls 4

GetVulkanApiVersionFunction · 0.85
dataMethod · 0.45
sizeMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected