diff options
| author | 2020-02-18 16:51:42 -0400 | |
|---|---|---|
| committer | 2020-04-22 11:36:04 -0400 | |
| commit | 084ceb925acad470b69467d64e4dfbb3bd7ef3f1 (patch) | |
| tree | 3e4dcc3a3671b85cb3ac5f812159974c006e3c47 | |
| parent | Merge pull request #3714 from lioncash/copies (diff) | |
| download | yuzu-084ceb925acad470b69467d64e4dfbb3bd7ef3f1.tar.gz yuzu-084ceb925acad470b69467d64e4dfbb3bd7ef3f1.tar.xz yuzu-084ceb925acad470b69467d64e4dfbb3bd7ef3f1.zip | |
UI: Replasce accurate GPU option for GPU Accuracy Level
| -rw-r--r-- | src/core/settings.cpp | 2 | ||||
| -rw-r--r-- | src/core/settings.h | 16 | ||||
| -rw-r--r-- | src/core/telemetry_session.cpp | 16 | ||||
| -rw-r--r-- | src/video_core/engines/maxwell_dma.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/texture_cache/texture_cache.h | 8 | ||||
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 7 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.cpp | 5 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.ui | 33 | ||||
| -rw-r--r-- | src/yuzu_cmd/config.cpp | 4 | ||||
| -rw-r--r-- | src/yuzu_cmd/default_ini.h | 6 | ||||
| -rw-r--r-- | src/yuzu_tester/config.cpp | 4 |
12 files changed, 77 insertions, 28 deletions
diff --git a/src/core/settings.cpp b/src/core/settings.cpp index c1282cb80..445047469 100644 --- a/src/core/settings.cpp +++ b/src/core/settings.cpp | |||
| @@ -92,7 +92,7 @@ void LogSettings() { | |||
| 92 | LogSetting("Renderer_UseFrameLimit", Settings::values.use_frame_limit); | 92 | LogSetting("Renderer_UseFrameLimit", Settings::values.use_frame_limit); |
| 93 | LogSetting("Renderer_FrameLimit", Settings::values.frame_limit); | 93 | LogSetting("Renderer_FrameLimit", Settings::values.frame_limit); |
| 94 | LogSetting("Renderer_UseDiskShaderCache", Settings::values.use_disk_shader_cache); | 94 | LogSetting("Renderer_UseDiskShaderCache", Settings::values.use_disk_shader_cache); |
| 95 | LogSetting("Renderer_UseAccurateGpuEmulation", Settings::values.use_accurate_gpu_emulation); | 95 | LogSetting("Renderer_GPUAccuracyLevel", Settings::values.gpu_accuracy); |
| 96 | LogSetting("Renderer_UseAsynchronousGpuEmulation", | 96 | LogSetting("Renderer_UseAsynchronousGpuEmulation", |
| 97 | Settings::values.use_asynchronous_gpu_emulation); | 97 | Settings::values.use_asynchronous_gpu_emulation); |
| 98 | LogSetting("Renderer_UseVsync", Settings::values.use_vsync); | 98 | LogSetting("Renderer_UseVsync", Settings::values.use_vsync); |
diff --git a/src/core/settings.h b/src/core/settings.h index c73d1c596..b54a0d4ea 100644 --- a/src/core/settings.h +++ b/src/core/settings.h | |||
| @@ -376,6 +376,12 @@ enum class RendererBackend { | |||
| 376 | Vulkan = 1, | 376 | Vulkan = 1, |
| 377 | }; | 377 | }; |
| 378 | 378 | ||
| 379 | enum class GPUAccuracy : u32 { | ||
| 380 | Normal = 0, | ||
| 381 | High = 1, | ||
| 382 | Extreme = 2, | ||
| 383 | }; | ||
| 384 | |||
| 379 | struct Values { | 385 | struct Values { |
| 380 | // System | 386 | // System |
| 381 | bool use_docked_mode; | 387 | bool use_docked_mode; |
| @@ -436,7 +442,7 @@ struct Values { | |||
| 436 | bool use_frame_limit; | 442 | bool use_frame_limit; |
| 437 | u16 frame_limit; | 443 | u16 frame_limit; |
| 438 | bool use_disk_shader_cache; | 444 | bool use_disk_shader_cache; |
| 439 | bool use_accurate_gpu_emulation; | 445 | GPUAccuracy gpu_accuracy; |
| 440 | bool use_asynchronous_gpu_emulation; | 446 | bool use_asynchronous_gpu_emulation; |
| 441 | bool use_vsync; | 447 | bool use_vsync; |
| 442 | bool force_30fps_mode; | 448 | bool force_30fps_mode; |
| @@ -480,6 +486,14 @@ struct Values { | |||
| 480 | std::map<u64, std::vector<std::string>> disabled_addons; | 486 | std::map<u64, std::vector<std::string>> disabled_addons; |
| 481 | } extern values; | 487 | } extern values; |
| 482 | 488 | ||
| 489 | constexpr bool IsGPULevelExtreme() { | ||
| 490 | return values.gpu_accuracy == GPUAccuracy::Extreme; | ||
| 491 | } | ||
| 492 | |||
| 493 | constexpr bool IsGPULevelHigh() { | ||
| 494 | return values.gpu_accuracy == GPUAccuracy::Extreme || values.gpu_accuracy == GPUAccuracy::High; | ||
| 495 | } | ||
| 496 | |||
| 483 | void Apply(); | 497 | void Apply(); |
| 484 | void LogSettings(); | 498 | void LogSettings(); |
| 485 | } // namespace Settings | 499 | } // namespace Settings |
diff --git a/src/core/telemetry_session.cpp b/src/core/telemetry_session.cpp index fd5a3ee9f..1c3b03a1c 100644 --- a/src/core/telemetry_session.cpp +++ b/src/core/telemetry_session.cpp | |||
| @@ -56,6 +56,18 @@ static const char* TranslateRenderer(Settings::RendererBackend backend) { | |||
| 56 | return "Unknown"; | 56 | return "Unknown"; |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | static const char* TranslateGPUAccuracyLevel(Settings::GPUAccuracy backend) { | ||
| 60 | switch (backend) { | ||
| 61 | case Settings::GPUAccuracy::Normal: | ||
| 62 | return "Normal"; | ||
| 63 | case Settings::GPUAccuracy::High: | ||
| 64 | return "High"; | ||
| 65 | case Settings::GPUAccuracy::Extreme: | ||
| 66 | return "Extreme"; | ||
| 67 | } | ||
| 68 | return "Unknown"; | ||
| 69 | } | ||
| 70 | |||
| 59 | u64 GetTelemetryId() { | 71 | u64 GetTelemetryId() { |
| 60 | u64 telemetry_id{}; | 72 | u64 telemetry_id{}; |
| 61 | const std::string filename{FileUtil::GetUserPath(FileUtil::UserPath::ConfigDir) + | 73 | const std::string filename{FileUtil::GetUserPath(FileUtil::UserPath::ConfigDir) + |
| @@ -184,8 +196,8 @@ void TelemetrySession::AddInitialInfo(Loader::AppLoader& app_loader) { | |||
| 184 | AddField(field_type, "Renderer_UseFrameLimit", Settings::values.use_frame_limit); | 196 | AddField(field_type, "Renderer_UseFrameLimit", Settings::values.use_frame_limit); |
| 185 | AddField(field_type, "Renderer_FrameLimit", Settings::values.frame_limit); | 197 | AddField(field_type, "Renderer_FrameLimit", Settings::values.frame_limit); |
| 186 | AddField(field_type, "Renderer_UseDiskShaderCache", Settings::values.use_disk_shader_cache); | 198 | AddField(field_type, "Renderer_UseDiskShaderCache", Settings::values.use_disk_shader_cache); |
| 187 | AddField(field_type, "Renderer_UseAccurateGpuEmulation", | 199 | AddField(field_type, "Renderer_GPUAccuracyLevel", |
| 188 | Settings::values.use_accurate_gpu_emulation); | 200 | TranslateGPUAccuracyLevel(Settings::values.gpu_accuracy)); |
| 189 | AddField(field_type, "Renderer_UseAsynchronousGpuEmulation", | 201 | AddField(field_type, "Renderer_UseAsynchronousGpuEmulation", |
| 190 | Settings::values.use_asynchronous_gpu_emulation); | 202 | Settings::values.use_asynchronous_gpu_emulation); |
| 191 | AddField(field_type, "Renderer_UseVsync", Settings::values.use_vsync); | 203 | AddField(field_type, "Renderer_UseVsync", Settings::values.use_vsync); |
diff --git a/src/video_core/engines/maxwell_dma.cpp b/src/video_core/engines/maxwell_dma.cpp index c2610f992..32b04e31e 100644 --- a/src/video_core/engines/maxwell_dma.cpp +++ b/src/video_core/engines/maxwell_dma.cpp | |||
| @@ -136,7 +136,7 @@ void MaxwellDMA::HandleCopy() { | |||
| 136 | write_buffer.resize(dst_size); | 136 | write_buffer.resize(dst_size); |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | if (Settings::values.use_accurate_gpu_emulation) { | 139 | if (Settings::IsGPULevelExtreme()) { |
| 140 | memory_manager.ReadBlock(source, read_buffer.data(), src_size); | 140 | memory_manager.ReadBlock(source, read_buffer.data(), src_size); |
| 141 | memory_manager.ReadBlock(dest, write_buffer.data(), dst_size); | 141 | memory_manager.ReadBlock(dest, write_buffer.data(), dst_size); |
| 142 | } else { | 142 | } else { |
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 175374f0d..ac4485a18 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -661,7 +661,7 @@ void RasterizerOpenGL::InvalidateRegion(VAddr addr, u64 size) { | |||
| 661 | } | 661 | } |
| 662 | 662 | ||
| 663 | void RasterizerOpenGL::FlushAndInvalidateRegion(VAddr addr, u64 size) { | 663 | void RasterizerOpenGL::FlushAndInvalidateRegion(VAddr addr, u64 size) { |
| 664 | if (Settings::values.use_accurate_gpu_emulation) { | 664 | if (Settings::IsGPULevelExtreme()) { |
| 665 | FlushRegion(addr, size); | 665 | FlushRegion(addr, size); |
| 666 | } | 666 | } |
| 667 | InvalidateRegion(addr, size); | 667 | InvalidateRegion(addr, size); |
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 69ca08fd1..7432691d1 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h | |||
| @@ -417,7 +417,7 @@ private: | |||
| 417 | **/ | 417 | **/ |
| 418 | RecycleStrategy PickStrategy(std::vector<TSurface>& overlaps, const SurfaceParams& params, | 418 | RecycleStrategy PickStrategy(std::vector<TSurface>& overlaps, const SurfaceParams& params, |
| 419 | const GPUVAddr gpu_addr, const MatchTopologyResult untopological) { | 419 | const GPUVAddr gpu_addr, const MatchTopologyResult untopological) { |
| 420 | if (Settings::values.use_accurate_gpu_emulation) { | 420 | if (Settings::IsGPULevelExtreme()) { |
| 421 | return RecycleStrategy::Flush; | 421 | return RecycleStrategy::Flush; |
| 422 | } | 422 | } |
| 423 | // 3D Textures decision | 423 | // 3D Textures decision |
| @@ -461,7 +461,7 @@ private: | |||
| 461 | } | 461 | } |
| 462 | switch (PickStrategy(overlaps, params, gpu_addr, untopological)) { | 462 | switch (PickStrategy(overlaps, params, gpu_addr, untopological)) { |
| 463 | case RecycleStrategy::Ignore: { | 463 | case RecycleStrategy::Ignore: { |
| 464 | return InitializeSurface(gpu_addr, params, Settings::values.use_accurate_gpu_emulation); | 464 | return InitializeSurface(gpu_addr, params, Settings::IsGPULevelExtreme()); |
| 465 | } | 465 | } |
| 466 | case RecycleStrategy::Flush: { | 466 | case RecycleStrategy::Flush: { |
| 467 | std::sort(overlaps.begin(), overlaps.end(), | 467 | std::sort(overlaps.begin(), overlaps.end(), |
| @@ -598,7 +598,7 @@ private: | |||
| 598 | if (passed_tests == 0) { | 598 | if (passed_tests == 0) { |
| 599 | return {}; | 599 | return {}; |
| 600 | // In Accurate GPU all tests should pass, else we recycle | 600 | // In Accurate GPU all tests should pass, else we recycle |
| 601 | } else if (Settings::values.use_accurate_gpu_emulation && passed_tests != overlaps.size()) { | 601 | } else if (Settings::IsGPULevelExtreme() && passed_tests != overlaps.size()) { |
| 602 | return {}; | 602 | return {}; |
| 603 | } | 603 | } |
| 604 | for (const auto& surface : overlaps) { | 604 | for (const auto& surface : overlaps) { |
| @@ -668,7 +668,7 @@ private: | |||
| 668 | for (const auto& surface : overlaps) { | 668 | for (const auto& surface : overlaps) { |
| 669 | if (!surface->MatchTarget(params.target)) { | 669 | if (!surface->MatchTarget(params.target)) { |
| 670 | if (overlaps.size() == 1 && surface->GetCpuAddr() == cpu_addr) { | 670 | if (overlaps.size() == 1 && surface->GetCpuAddr() == cpu_addr) { |
| 671 | if (Settings::values.use_accurate_gpu_emulation) { | 671 | if (Settings::IsGPULevelExtreme()) { |
| 672 | return std::nullopt; | 672 | return std::nullopt; |
| 673 | } | 673 | } |
| 674 | Unregister(surface); | 674 | Unregister(surface); |
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 7f6dfac84..da1fa4e02 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp | |||
| @@ -639,8 +639,8 @@ void Config::ReadRendererValues() { | |||
| 639 | Settings::values.frame_limit = ReadSetting(QStringLiteral("frame_limit"), 100).toInt(); | 639 | Settings::values.frame_limit = ReadSetting(QStringLiteral("frame_limit"), 100).toInt(); |
| 640 | Settings::values.use_disk_shader_cache = | 640 | Settings::values.use_disk_shader_cache = |
| 641 | ReadSetting(QStringLiteral("use_disk_shader_cache"), true).toBool(); | 641 | ReadSetting(QStringLiteral("use_disk_shader_cache"), true).toBool(); |
| 642 | Settings::values.use_accurate_gpu_emulation = | 642 | const int gpu_accuracy_level = ReadSetting(QStringLiteral("gpu_accuracy"), 0).toInt(); |
| 643 | ReadSetting(QStringLiteral("use_accurate_gpu_emulation"), false).toBool(); | 643 | Settings::values.gpu_accuracy = static_cast<Settings::GPUAccuracy>(gpu_accuracy_level); |
| 644 | Settings::values.use_asynchronous_gpu_emulation = | 644 | Settings::values.use_asynchronous_gpu_emulation = |
| 645 | ReadSetting(QStringLiteral("use_asynchronous_gpu_emulation"), false).toBool(); | 645 | ReadSetting(QStringLiteral("use_asynchronous_gpu_emulation"), false).toBool(); |
| 646 | Settings::values.use_vsync = ReadSetting(QStringLiteral("use_vsync"), true).toBool(); | 646 | Settings::values.use_vsync = ReadSetting(QStringLiteral("use_vsync"), true).toBool(); |
| @@ -1080,8 +1080,7 @@ void Config::SaveRendererValues() { | |||
| 1080 | WriteSetting(QStringLiteral("frame_limit"), Settings::values.frame_limit, 100); | 1080 | WriteSetting(QStringLiteral("frame_limit"), Settings::values.frame_limit, 100); |
| 1081 | WriteSetting(QStringLiteral("use_disk_shader_cache"), Settings::values.use_disk_shader_cache, | 1081 | WriteSetting(QStringLiteral("use_disk_shader_cache"), Settings::values.use_disk_shader_cache, |
| 1082 | true); | 1082 | true); |
| 1083 | WriteSetting(QStringLiteral("use_accurate_gpu_emulation"), | 1083 | WriteSetting(QStringLiteral("gpu_accuracy"), static_cast<int>(Settings::values.gpu_accuracy), 0); |
| 1084 | Settings::values.use_accurate_gpu_emulation, false); | ||
| 1085 | WriteSetting(QStringLiteral("use_asynchronous_gpu_emulation"), | 1084 | WriteSetting(QStringLiteral("use_asynchronous_gpu_emulation"), |
| 1086 | Settings::values.use_asynchronous_gpu_emulation, false); | 1085 | Settings::values.use_asynchronous_gpu_emulation, false); |
| 1087 | WriteSetting(QStringLiteral("use_vsync"), Settings::values.use_vsync, true); | 1086 | WriteSetting(QStringLiteral("use_vsync"), Settings::values.use_vsync, true); |
diff --git a/src/yuzu/configuration/configure_graphics_advanced.cpp b/src/yuzu/configuration/configure_graphics_advanced.cpp index b9f429f84..0a3f47339 100644 --- a/src/yuzu/configuration/configure_graphics_advanced.cpp +++ b/src/yuzu/configuration/configure_graphics_advanced.cpp | |||
| @@ -19,7 +19,7 @@ ConfigureGraphicsAdvanced::~ConfigureGraphicsAdvanced() = default; | |||
| 19 | 19 | ||
| 20 | void ConfigureGraphicsAdvanced::SetConfiguration() { | 20 | void ConfigureGraphicsAdvanced::SetConfiguration() { |
| 21 | const bool runtime_lock = !Core::System::GetInstance().IsPoweredOn(); | 21 | const bool runtime_lock = !Core::System::GetInstance().IsPoweredOn(); |
| 22 | ui->use_accurate_gpu_emulation->setChecked(Settings::values.use_accurate_gpu_emulation); | 22 | ui->gpu_accuracy->setCurrentIndex(static_cast<int>(Settings::values.gpu_accuracy)); |
| 23 | ui->use_vsync->setEnabled(runtime_lock); | 23 | ui->use_vsync->setEnabled(runtime_lock); |
| 24 | ui->use_vsync->setChecked(Settings::values.use_vsync); | 24 | ui->use_vsync->setChecked(Settings::values.use_vsync); |
| 25 | ui->force_30fps_mode->setEnabled(runtime_lock); | 25 | ui->force_30fps_mode->setEnabled(runtime_lock); |
| @@ -29,7 +29,8 @@ void ConfigureGraphicsAdvanced::SetConfiguration() { | |||
| 29 | } | 29 | } |
| 30 | 30 | ||
| 31 | void ConfigureGraphicsAdvanced::ApplyConfiguration() { | 31 | void ConfigureGraphicsAdvanced::ApplyConfiguration() { |
| 32 | Settings::values.use_accurate_gpu_emulation = ui->use_accurate_gpu_emulation->isChecked(); | 32 | auto gpu_accuracy = static_cast<Settings::GPUAccuracy>(ui->gpu_accuracy->currentIndex()); |
| 33 | Settings::values.gpu_accuracy = gpu_accuracy; | ||
| 33 | Settings::values.use_vsync = ui->use_vsync->isChecked(); | 34 | Settings::values.use_vsync = ui->use_vsync->isChecked(); |
| 34 | Settings::values.force_30fps_mode = ui->force_30fps_mode->isChecked(); | 35 | Settings::values.force_30fps_mode = ui->force_30fps_mode->isChecked(); |
| 35 | Settings::values.max_anisotropy = ui->anisotropic_filtering_combobox->currentIndex(); | 36 | Settings::values.max_anisotropy = ui->anisotropic_filtering_combobox->currentIndex(); |
diff --git a/src/yuzu/configuration/configure_graphics_advanced.ui b/src/yuzu/configuration/configure_graphics_advanced.ui index 42eec278e..0c7b383e0 100644 --- a/src/yuzu/configuration/configure_graphics_advanced.ui +++ b/src/yuzu/configuration/configure_graphics_advanced.ui | |||
| @@ -23,11 +23,34 @@ | |||
| 23 | </property> | 23 | </property> |
| 24 | <layout class="QVBoxLayout" name="verticalLayout_3"> | 24 | <layout class="QVBoxLayout" name="verticalLayout_3"> |
| 25 | <item> | 25 | <item> |
| 26 | <widget class="QCheckBox" name="use_accurate_gpu_emulation"> | 26 | <layout class="QHBoxLayout" name="horizontalLayout_2"> |
| 27 | <property name="text"> | 27 | <item> |
| 28 | <string>Use accurate GPU emulation (slow)</string> | 28 | <widget class="QLabel" name="label_gpu_accuracy"> |
| 29 | </property> | 29 | <property name="text"> |
| 30 | </widget> | 30 | <string>Accuracy Level:</string> |
| 31 | </property> | ||
| 32 | </widget> | ||
| 33 | </item> | ||
| 34 | <item> | ||
| 35 | <widget class="QComboBox" name="gpu_accuracy"> | ||
| 36 | <item> | ||
| 37 | <property name="text"> | ||
| 38 | <string notr="true">Normal</string> | ||
| 39 | </property> | ||
| 40 | </item> | ||
| 41 | <item> | ||
| 42 | <property name="text"> | ||
| 43 | <string notr="true">High</string> | ||
| 44 | </property> | ||
| 45 | </item> | ||
| 46 | <item> | ||
| 47 | <property name="text"> | ||
| 48 | <string notr="true">Extreme(very slow)</string> | ||
| 49 | </property> | ||
| 50 | </item> | ||
| 51 | </widget> | ||
| 52 | </item> | ||
| 53 | </layout> | ||
| 31 | </item> | 54 | </item> |
| 32 | <item> | 55 | <item> |
| 33 | <widget class="QCheckBox" name="use_vsync"> | 56 | <widget class="QCheckBox" name="use_vsync"> |
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp index 80341747f..d1ac354bf 100644 --- a/src/yuzu_cmd/config.cpp +++ b/src/yuzu_cmd/config.cpp | |||
| @@ -388,8 +388,8 @@ void Config::ReadValues() { | |||
| 388 | static_cast<u16>(sdl2_config->GetInteger("Renderer", "frame_limit", 100)); | 388 | static_cast<u16>(sdl2_config->GetInteger("Renderer", "frame_limit", 100)); |
| 389 | Settings::values.use_disk_shader_cache = | 389 | Settings::values.use_disk_shader_cache = |
| 390 | sdl2_config->GetBoolean("Renderer", "use_disk_shader_cache", false); | 390 | sdl2_config->GetBoolean("Renderer", "use_disk_shader_cache", false); |
| 391 | Settings::values.use_accurate_gpu_emulation = | 391 | const int gpu_accuracy_level = sdl2_config->GetInteger("Renderer", "gpu_accuracy", 0); |
| 392 | sdl2_config->GetBoolean("Renderer", "use_accurate_gpu_emulation", false); | 392 | Settings::values.gpu_accuracy = static_cast<Settings::GPUAccuracy>(gpu_accuracy_level); |
| 393 | Settings::values.use_asynchronous_gpu_emulation = | 393 | Settings::values.use_asynchronous_gpu_emulation = |
| 394 | sdl2_config->GetBoolean("Renderer", "use_asynchronous_gpu_emulation", false); | 394 | sdl2_config->GetBoolean("Renderer", "use_asynchronous_gpu_emulation", false); |
| 395 | Settings::values.use_vsync = | 395 | Settings::values.use_vsync = |
diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h index 171d16fa0..60b1a62fa 100644 --- a/src/yuzu_cmd/default_ini.h +++ b/src/yuzu_cmd/default_ini.h | |||
| @@ -146,9 +146,9 @@ frame_limit = | |||
| 146 | # 0 (default): Off, 1 : On | 146 | # 0 (default): Off, 1 : On |
| 147 | use_disk_shader_cache = | 147 | use_disk_shader_cache = |
| 148 | 148 | ||
| 149 | # Whether to use accurate GPU emulation | 149 | # Which gpu accuracy level to use |
| 150 | # 0 (default): Off (fast), 1 : On (slow) | 150 | # 0 (Normal), 1 (High), 2 (Extreme) |
| 151 | use_accurate_gpu_emulation = | 151 | gpu_accuracy = |
| 152 | 152 | ||
| 153 | # Whether to use asynchronous GPU emulation | 153 | # Whether to use asynchronous GPU emulation |
| 154 | # 0 : Off (slow), 1 (default): On (fast) | 154 | # 0 : Off (slow), 1 (default): On (fast) |
diff --git a/src/yuzu_tester/config.cpp b/src/yuzu_tester/config.cpp index ee2591c8f..c0325cc3c 100644 --- a/src/yuzu_tester/config.cpp +++ b/src/yuzu_tester/config.cpp | |||
| @@ -126,8 +126,8 @@ void Config::ReadValues() { | |||
| 126 | Settings::values.frame_limit = 100; | 126 | Settings::values.frame_limit = 100; |
| 127 | Settings::values.use_disk_shader_cache = | 127 | Settings::values.use_disk_shader_cache = |
| 128 | sdl2_config->GetBoolean("Renderer", "use_disk_shader_cache", false); | 128 | sdl2_config->GetBoolean("Renderer", "use_disk_shader_cache", false); |
| 129 | Settings::values.use_accurate_gpu_emulation = | 129 | const int gpu_accuracy_level = sdl2_config->GetInteger("Renderer", "gpu_accuracy", 0); |
| 130 | sdl2_config->GetBoolean("Renderer", "use_accurate_gpu_emulation", false); | 130 | Settings::values.gpu_accuracy = static_cast<Settings::GPUAccuracy>(gpu_accuracy_level); |
| 131 | Settings::values.use_asynchronous_gpu_emulation = | 131 | Settings::values.use_asynchronous_gpu_emulation = |
| 132 | sdl2_config->GetBoolean("Renderer", "use_asynchronous_gpu_emulation", false); | 132 | sdl2_config->GetBoolean("Renderer", "use_asynchronous_gpu_emulation", false); |
| 133 | 133 | ||