Compare commits
1 commit
876489cbde
...
a2b68b9ae5
Author | SHA1 | Date | |
---|---|---|---|
a2b68b9ae5 |
5 changed files with 50 additions and 0 deletions
|
@ -97,6 +97,8 @@ add_library(
|
||||||
memory_detect.h
|
memory_detect.h
|
||||||
multi_level_page_table.cpp
|
multi_level_page_table.cpp
|
||||||
multi_level_page_table.h
|
multi_level_page_table.h
|
||||||
|
nvidia_flags.cpp
|
||||||
|
nvidia_flags.h
|
||||||
overflow.h
|
overflow.h
|
||||||
page_table.cpp
|
page_table.cpp
|
||||||
page_table.h
|
page_table.h
|
||||||
|
|
32
src/common/nvidia_flags.cpp
Normal file
32
src/common/nvidia_flags.cpp
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include <cstdlib>
|
||||||
|
|
||||||
|
#include <fmt/ranges.h>
|
||||||
|
|
||||||
|
#include "common/fs/fs.h"
|
||||||
|
#include "common/fs/path_util.h"
|
||||||
|
#include "common/nvidia_flags.h"
|
||||||
|
|
||||||
|
namespace Common {
|
||||||
|
|
||||||
|
void ConfigureNvidiaEnvironmentFlags() {
|
||||||
|
#ifdef _WIN32
|
||||||
|
const auto nvidia_shader_dir =
|
||||||
|
Common::FS::GetEdenPath(Common::FS::EdenPath::ShaderDir) / "nvidia";
|
||||||
|
|
||||||
|
if (!Common::FS::CreateDirs(nvidia_shader_dir)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const auto windows_path_string =
|
||||||
|
Common::FS::PathToUTF8String(nvidia_shader_dir.lexically_normal());
|
||||||
|
|
||||||
|
void(_putenv(fmt::format("__GL_SHADER_DISK_CACHE_PATH={}", windows_path_string).c_str()));
|
||||||
|
void(_putenv("__GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1"));
|
||||||
|
void(_putenv("__GL_THREADED_OPTIMIZATIONS=1"));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace Common
|
11
src/common/nvidia_flags.h
Normal file
11
src/common/nvidia_flags.h
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
namespace Common {
|
||||||
|
|
||||||
|
/// Configure platform specific flags for Nvidia's driver
|
||||||
|
void ConfigureNvidiaEnvironmentFlags();
|
||||||
|
|
||||||
|
} // namespace Common
|
|
@ -35,6 +35,7 @@
|
||||||
#include "applets/qt_profile_select.h"
|
#include "applets/qt_profile_select.h"
|
||||||
#include "applets/qt_software_keyboard.h"
|
#include "applets/qt_software_keyboard.h"
|
||||||
#include "applets/qt_web_browser.h"
|
#include "applets/qt_web_browser.h"
|
||||||
|
#include "common/nvidia_flags.h"
|
||||||
#include "common/settings_enums.h"
|
#include "common/settings_enums.h"
|
||||||
#include "configuration/configure_input.h"
|
#include "configuration/configure_input.h"
|
||||||
#include "configuration/configure_per_game.h"
|
#include "configuration/configure_per_game.h"
|
||||||
|
@ -4916,6 +4917,7 @@ int main(int argc, char* argv[]) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Common::DetachedTasks detached_tasks;
|
Common::DetachedTasks detached_tasks;
|
||||||
|
Common::ConfigureNvidiaEnvironmentFlags();
|
||||||
|
|
||||||
// Init settings params
|
// Init settings params
|
||||||
QCoreApplication::setOrganizationName(QStringLiteral("eden"));
|
QCoreApplication::setOrganizationName(QStringLiteral("eden"));
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#include "common/detached_tasks.h"
|
#include "common/detached_tasks.h"
|
||||||
#include "common/logging/backend.h"
|
#include "common/logging/backend.h"
|
||||||
#include "common/logging/log.h"
|
#include "common/logging/log.h"
|
||||||
|
#include "common/nvidia_flags.h"
|
||||||
#include "common/scm_rev.h"
|
#include "common/scm_rev.h"
|
||||||
#include "common/scope_exit.h"
|
#include "common/scope_exit.h"
|
||||||
#include "common/settings.h"
|
#include "common/settings.h"
|
||||||
|
@ -333,6 +334,8 @@ int main(int argc, char** argv) {
|
||||||
LocalFree(argv_w);
|
LocalFree(argv_w);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Common::ConfigureNvidiaEnvironmentFlags();
|
||||||
|
|
||||||
if (filepath.empty()) {
|
if (filepath.empty()) {
|
||||||
LOG_CRITICAL(Frontend, "Failed to load ROM: No ROM specified");
|
LOG_CRITICAL(Frontend, "Failed to load ROM: No ROM specified");
|
||||||
return -1;
|
return -1;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue