summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/CMakeLists.txt6
-rw-r--r--src/video_core/renderer_opengl/gl_device.cpp15
-rw-r--r--src/yuzu/configuration/configure_per_game.cpp2
-rw-r--r--src/yuzu/configuration/configure_per_game.ui8
4 files changed, 22 insertions, 9 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 6e66dc1df..63dd9febf 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -32,6 +32,7 @@ if (MSVC)
32 # /Zc:externConstexpr - Allow extern constexpr variables to have external linkage, like the standard mandates 32 # /Zc:externConstexpr - Allow extern constexpr variables to have external linkage, like the standard mandates
33 # /Zc:inline - Let codegen omit inline functions in object files 33 # /Zc:inline - Let codegen omit inline functions in object files
34 # /Zc:throwingNew - Let codegen assume `operator new` (without std::nothrow) will never return null 34 # /Zc:throwingNew - Let codegen assume `operator new` (without std::nothrow) will never return null
35 # /GT - Supports fiber safety for data allocated using static thread-local storage
35 add_compile_options( 36 add_compile_options(
36 /MP 37 /MP
37 /Zi 38 /Zi
@@ -44,6 +45,7 @@ if (MSVC)
44 /Zc:externConstexpr 45 /Zc:externConstexpr
45 /Zc:inline 46 /Zc:inline
46 /Zc:throwingNew 47 /Zc:throwingNew
48 /GT
47 49
48 # External headers diagnostics 50 # External headers diagnostics
49 /experimental:external # Enables the external headers options. This option isn't required in Visual Studio 2019 version 16.10 and later 51 /experimental:external # Enables the external headers options. This option isn't required in Visual Studio 2019 version 16.10 and later
@@ -69,6 +71,10 @@ if (MSVC)
69 /we5038 # data member 'member1' will be initialized after data member 'member2' 71 /we5038 # data member 'member1' will be initialized after data member 'member2'
70 ) 72 )
71 73
74 if (ARCHITECTURE_x86_64)
75 add_compile_options(/QIntel-jcc-erratum)
76 endif()
77
72 # /GS- - No stack buffer overflow checks 78 # /GS- - No stack buffer overflow checks
73 add_compile_options("$<$<CONFIG:Release>:/GS->") 79 add_compile_options("$<$<CONFIG:Release>:/GS->")
74 80
diff --git a/src/video_core/renderer_opengl/gl_device.cpp b/src/video_core/renderer_opengl/gl_device.cpp
index 1e1d1d020..0764ea6e0 100644
--- a/src/video_core/renderer_opengl/gl_device.cpp
+++ b/src/video_core/renderer_opengl/gl_device.cpp
@@ -181,6 +181,21 @@ Device::Device() {
181 LOG_ERROR(Render_OpenGL, "Assembly shaders enabled but not supported"); 181 LOG_ERROR(Render_OpenGL, "Assembly shaders enabled but not supported");
182 shader_backend = Settings::ShaderBackend::GLSL; 182 shader_backend = Settings::ShaderBackend::GLSL;
183 } 183 }
184
185 if (shader_backend == Settings::ShaderBackend::GLSL && is_nvidia &&
186 !Settings::values.renderer_debug) {
187 const std::string_view driver_version = version.substr(13);
188 const int version_major =
189 std::atoi(driver_version.substr(0, driver_version.find(".")).data());
190
191 if (version_major >= 495) {
192 LOG_WARNING(Render_OpenGL, "NVIDIA drivers 495 and later causes significant problems "
193 "with yuzu. Forcing GLASM as a mitigation.");
194 shader_backend = Settings::ShaderBackend::GLASM;
195 use_assembly_shaders = true;
196 }
197 }
198
184 // Blocks AMD and Intel OpenGL drivers on Windows from using asynchronous shader compilation. 199 // Blocks AMD and Intel OpenGL drivers on Windows from using asynchronous shader compilation.
185 use_asynchronous_shaders = Settings::values.use_asynchronous_shaders.GetValue() && 200 use_asynchronous_shaders = Settings::values.use_asynchronous_shaders.GetValue() &&
186 !(is_amd || (is_intel && !is_linux)); 201 !(is_amd || (is_intel && !is_linux));
diff --git a/src/yuzu/configuration/configure_per_game.cpp b/src/yuzu/configuration/configure_per_game.cpp
index 1031399e1..12699c126 100644
--- a/src/yuzu/configuration/configure_per_game.cpp
+++ b/src/yuzu/configuration/configure_per_game.cpp
@@ -66,7 +66,7 @@ ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id, const std::str
66 ui->tabWidget->addTab(system_tab.get(), tr("System")); 66 ui->tabWidget->addTab(system_tab.get(), tr("System"));
67 ui->tabWidget->addTab(cpu_tab.get(), tr("CPU")); 67 ui->tabWidget->addTab(cpu_tab.get(), tr("CPU"));
68 ui->tabWidget->addTab(graphics_tab.get(), tr("Graphics")); 68 ui->tabWidget->addTab(graphics_tab.get(), tr("Graphics"));
69 ui->tabWidget->addTab(graphics_advanced_tab.get(), tr("GraphicsAdvanced")); 69 ui->tabWidget->addTab(graphics_advanced_tab.get(), tr("Adv. Graphics"));
70 ui->tabWidget->addTab(audio_tab.get(), tr("Audio")); 70 ui->tabWidget->addTab(audio_tab.get(), tr("Audio"));
71 71
72 setFocusPolicy(Qt::ClickFocus); 72 setFocusPolicy(Qt::ClickFocus);
diff --git a/src/yuzu/configuration/configure_per_game.ui b/src/yuzu/configuration/configure_per_game.ui
index 60efdbf21..85c86e107 100644
--- a/src/yuzu/configuration/configure_per_game.ui
+++ b/src/yuzu/configuration/configure_per_game.ui
@@ -2,14 +2,6 @@
2<ui version="4.0"> 2<ui version="4.0">
3 <class>ConfigurePerGame</class> 3 <class>ConfigurePerGame</class>
4 <widget class="QDialog" name="ConfigurePerGame"> 4 <widget class="QDialog" name="ConfigurePerGame">
5 <property name="geometry">
6 <rect>
7 <x>0</x>
8 <y>0</y>
9 <width>900</width>
10 <height>630</height>
11 </rect>
12 </property>
13 <property name="minimumSize"> 5 <property name="minimumSize">
14 <size> 6 <size>
15 <width>900</width> 7 <width>900</width>