MCPcopy Create free account
hub / github.com/begla/Intrinsic / initVkInstance

Method initVkInstance

IntrinsicCore/src/IntrinsicRendererRenderSystem.cpp:477–595  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

475// <-
476
477void RenderSystem::initVkInstance()
478{
479 VkApplicationInfo appInfo = {};
480 appInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
481 appInfo.pApplicationName = "Intrinsic";
482 appInfo.pEngineName = "Intrinsic";
483 appInfo.apiVersion = VK_API_VERSION_1_0;
484
485 _INTR_ARRAY(const char*) extensionsToEnable;
486 {
487 extensionsToEnable.push_back(VK_KHR_SURFACE_EXTENSION_NAME);
488#if defined(VK_USE_PLATFORM_WIN32_KHR)
489 extensionsToEnable.push_back(VK_KHR_WIN32_SURFACE_EXTENSION_NAME);
490#elif defined(VK_USE_PLATFORM_XLIB_KHR)
491 extensionsToEnable.push_back(VK_KHR_XLIB_SURFACE_EXTENSION_NAME);
492#elif defined(VK_USE_PLATFORM_WAYLAND_KHR)
493 extensionsToEnable.push_back(VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME);
494#endif // VK_USE_PLATFORM_WIN32_KHR
495 }
496
497 _INTR_ARRAY(const char*) layersToEnable;
498 if ((Settings::Manager::_rendererFlags &
499 Settings::RendererFlags::kValidationEnabled) > 0u)
500 {
501 layersToEnable.push_back("VK_LAYER_LUNARG_standard_validation");
502 extensionsToEnable.push_back(VK_EXT_DEBUG_REPORT_EXTENSION_NAME);
503 }
504
505 uint32_t availableLayerCount = 0u;
506 vkEnumerateInstanceLayerProperties(&availableLayerCount, nullptr);
507 _INTR_ARRAY(VkLayerProperties) availableLayers;
508 availableLayers.resize(availableLayerCount);
509 vkEnumerateInstanceLayerProperties(&availableLayerCount,
510 availableLayers.data());
511
512 _INTR_ARRAY(const char*) enabledLayers;
513 for (uint32_t i = 0u; i < availableLayerCount; ++i)
514 {
515 VkLayerProperties& layerProperty = availableLayers[i];
516 _INTR_LOG_INFO("Found available Vulkan layer '%s'...",
517 layerProperty.layerName);
518
519 for (uint32_t i = 0u; i < layersToEnable.size(); ++i)
520 {
521 if (strcmp(layerProperty.layerName, layersToEnable[i]) == 0u)
522 {
523 _INTR_LOG_INFO("Enabaling Vulkan layer '%s'...",
524 layerProperty.layerName);
525 enabledLayers.push_back(layersToEnable[i]);
526 }
527 }
528 }
529
530 if (enabledLayers.size() != layersToEnable.size())
531 {
532 _INTR_LOG_WARNING("Failed to enable some Vulkan layers...");
533 }
534

Callers

nothing calls this directly

Calls 4

push_backMethod · 0.80
resizeMethod · 0.80
dataMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected