diff options
author | bunnei <bunneidev@gmail.com> | 2022-07-25 12:12:41 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-25 12:12:41 -0700 |
commit | 1bcde9dd9879fc2677695e9283f2fe1d68c935b2 (patch) | |
tree | 8653a5c7a234ab22b606b4a765ff3c1cbb3e3d74 /src/yuzu/check_vulkan.cpp | |
parent | 591d1f1b09d2af6e432d4fb27af3321919758c0c (diff) | |
parent | 7d9369d15ea6061e4b3a48cc8dbe442501a86ba1 (diff) |
Merge pull request #8564 from lat9nq/dinner-fork
yuzu: Streamline broken Vulkan handling
Diffstat (limited to 'src/yuzu/check_vulkan.cpp')
-rw-r--r-- | src/yuzu/check_vulkan.cpp | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/src/yuzu/check_vulkan.cpp b/src/yuzu/check_vulkan.cpp deleted file mode 100644 index e6d66ab34..000000000 --- a/src/yuzu/check_vulkan.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "video_core/vulkan_common/vulkan_wrapper.h" - -#include <filesystem> -#include <fstream> -#include "common/fs/fs.h" -#include "common/fs/path_util.h" -#include "common/logging/log.h" -#include "video_core/vulkan_common/vulkan_instance.h" -#include "video_core/vulkan_common/vulkan_library.h" -#include "yuzu/check_vulkan.h" -#include "yuzu/uisettings.h" - -constexpr char TEMP_FILE_NAME[] = "vulkan_check"; - -bool CheckVulkan() { - if (UISettings::values.has_broken_vulkan) { - return true; - } - - LOG_DEBUG(Frontend, "Checking presence of Vulkan"); - - const auto fs_config_loc = Common::FS::GetYuzuPath(Common::FS::YuzuPath::ConfigDir); - const auto temp_file_loc = fs_config_loc / TEMP_FILE_NAME; - - if (std::filesystem::exists(temp_file_loc)) { - LOG_WARNING(Frontend, "Detected recovery from previous failed Vulkan initialization"); - - UISettings::values.has_broken_vulkan = true; - std::filesystem::remove(temp_file_loc); - return false; - } - - std::ofstream temp_file_handle(temp_file_loc); - temp_file_handle.close(); - - try { - Vulkan::vk::InstanceDispatch dld; - const Common::DynamicLibrary library = Vulkan::OpenLibrary(); - const Vulkan::vk::Instance instance = - Vulkan::CreateInstance(library, dld, VK_API_VERSION_1_0); - - } catch (const Vulkan::vk::Exception& exception) { - LOG_ERROR(Frontend, "Failed to initialize Vulkan: {}", exception.what()); - // Don't set has_broken_vulkan to true here: we care when loading Vulkan crashes the - // application, not when we can handle it. - } - - std::filesystem::remove(temp_file_loc); - return true; -} |