diff --git a/Nuake/Source/Nuake/Rendering/Vulkan/VulkanRenderer.cpp b/Nuake/Source/Nuake/Rendering/Vulkan/VulkanRenderer.cpp index 06e3ed22..f21f6089 100644 --- a/Nuake/Source/Nuake/Rendering/Vulkan/VulkanRenderer.cpp +++ b/Nuake/Source/Nuake/Rendering/Vulkan/VulkanRenderer.cpp @@ -23,6 +23,8 @@ #include "DescriptorLayoutBuilder.h" +#include "Nuake/Core/OS.h" + #include "imgui/imgui.h" #include "imgui/imgui_impl_vulkan.h" #include "imgui/imgui_impl_glfw.h" @@ -208,6 +210,17 @@ void VkRenderer::SelectGPU() auto systemInfoRet = vkb::SystemInfo::get_system_info(); auto& systemInfo = systemInfoRet.value(); + for (auto extension : requiredExtensions) + { + if (!systemInfo.is_extension_available(extension)) + { + std::string errMessage = "No GPU found who supports the required Vulkan extension: " + std::string(extension); + errMessage += "\nConsider updating drivers."; + Logger::Log(errMessage, "vulkan", CRITICAL); + OS::ShowMessageBox("Vulkan Error", errMessage); + } + } + vkb::PhysicalDeviceSelector selector{ VkbInstance }; vkb::PhysicalDevice physicalDevice = selector .set_minimum_version(1, 3)