diff options
Diffstat (limited to '')
| -rw-r--r-- | src/core/settings.h | 9 | ||||
| -rw-r--r-- | src/core/telemetry_session.cpp | 12 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_device.cpp | 6 | ||||
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 7 | ||||
| -rw-r--r-- | src/yuzu_cmd/config.cpp | 6 | ||||
| -rw-r--r-- | src/yuzu_cmd/default_ini.h | 11 |
6 files changed, 48 insertions, 3 deletions
diff --git a/src/core/settings.h b/src/core/settings.h index 421e76f5f..e1a9a0ffa 100644 --- a/src/core/settings.h +++ b/src/core/settings.h | |||
| @@ -371,6 +371,11 @@ enum class SDMCSize : u64 { | |||
| 371 | S1TB = 0x10000000000ULL, | 371 | S1TB = 0x10000000000ULL, |
| 372 | }; | 372 | }; |
| 373 | 373 | ||
| 374 | enum class RendererBackend { | ||
| 375 | OpenGL = 0, | ||
| 376 | Vulkan = 1, | ||
| 377 | }; | ||
| 378 | |||
| 374 | struct Values { | 379 | struct Values { |
| 375 | // System | 380 | // System |
| 376 | bool use_docked_mode; | 381 | bool use_docked_mode; |
| @@ -419,6 +424,10 @@ struct Values { | |||
| 419 | SDMCSize sdmc_size; | 424 | SDMCSize sdmc_size; |
| 420 | 425 | ||
| 421 | // Renderer | 426 | // Renderer |
| 427 | RendererBackend renderer_backend; | ||
| 428 | bool renderer_debug; | ||
| 429 | int vulkan_device; | ||
| 430 | |||
| 422 | float resolution_factor; | 431 | float resolution_factor; |
| 423 | bool use_frame_limit; | 432 | bool use_frame_limit; |
| 424 | u16 frame_limit; | 433 | u16 frame_limit; |
diff --git a/src/core/telemetry_session.cpp b/src/core/telemetry_session.cpp index 320e8ad73..0e72d31cd 100644 --- a/src/core/telemetry_session.cpp +++ b/src/core/telemetry_session.cpp | |||
| @@ -46,6 +46,16 @@ static u64 GenerateTelemetryId() { | |||
| 46 | return telemetry_id; | 46 | return telemetry_id; |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | static const char* TranslateRenderer(Settings::RendererBackend backend) { | ||
| 50 | switch (backend) { | ||
| 51 | case Settings::RendererBackend::OpenGL: | ||
| 52 | return "OpenGL"; | ||
| 53 | case Settings::RendererBackend::Vulkan: | ||
| 54 | return "Vulkan"; | ||
| 55 | } | ||
| 56 | return "Unknown"; | ||
| 57 | } | ||
| 58 | |||
| 49 | u64 GetTelemetryId() { | 59 | u64 GetTelemetryId() { |
| 50 | u64 telemetry_id{}; | 60 | u64 telemetry_id{}; |
| 51 | const std::string filename{FileUtil::GetUserPath(FileUtil::UserPath::ConfigDir) + | 61 | const std::string filename{FileUtil::GetUserPath(FileUtil::UserPath::ConfigDir) + |
| @@ -169,7 +179,7 @@ void TelemetrySession::AddInitialInfo(Loader::AppLoader& app_loader) { | |||
| 169 | AddField(field_type, "Audio_SinkId", Settings::values.sink_id); | 179 | AddField(field_type, "Audio_SinkId", Settings::values.sink_id); |
| 170 | AddField(field_type, "Audio_EnableAudioStretching", Settings::values.enable_audio_stretching); | 180 | AddField(field_type, "Audio_EnableAudioStretching", Settings::values.enable_audio_stretching); |
| 171 | AddField(field_type, "Core_UseMultiCore", Settings::values.use_multi_core); | 181 | AddField(field_type, "Core_UseMultiCore", Settings::values.use_multi_core); |
| 172 | AddField(field_type, "Renderer_Backend", "OpenGL"); | 182 | AddField(field_type, "Renderer_Backend", TranslateRenderer(Settings::values.renderer_backend)); |
| 173 | AddField(field_type, "Renderer_ResolutionFactor", Settings::values.resolution_factor); | 183 | AddField(field_type, "Renderer_ResolutionFactor", Settings::values.resolution_factor); |
| 174 | AddField(field_type, "Renderer_UseFrameLimit", Settings::values.use_frame_limit); | 184 | AddField(field_type, "Renderer_UseFrameLimit", Settings::values.use_frame_limit); |
| 175 | AddField(field_type, "Renderer_FrameLimit", Settings::values.frame_limit); | 185 | AddField(field_type, "Renderer_FrameLimit", Settings::values.frame_limit); |
diff --git a/src/video_core/renderer_vulkan/vk_device.cpp b/src/video_core/renderer_vulkan/vk_device.cpp index 939eebe83..9840f26e5 100644 --- a/src/video_core/renderer_vulkan/vk_device.cpp +++ b/src/video_core/renderer_vulkan/vk_device.cpp | |||
| @@ -400,8 +400,10 @@ std::vector<const char*> VKDevice::LoadExtensions(const vk::DispatchLoaderDynami | |||
| 400 | VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME, true); | 400 | VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME, true); |
| 401 | Test(extension, ext_subgroup_size_control, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, | 401 | Test(extension, ext_subgroup_size_control, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, |
| 402 | false); | 402 | false); |
| 403 | Test(extension, nv_device_diagnostic_checkpoints, | 403 | if (Settings::values.renderer_debug) { |
| 404 | VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME, true); | 404 | Test(extension, nv_device_diagnostic_checkpoints, |
| 405 | VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME, true); | ||
| 406 | } | ||
| 405 | } | 407 | } |
| 406 | 408 | ||
| 407 | if (khr_shader_float16_int8) { | 409 | if (khr_shader_float16_int8) { |
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 59918847a..280d81ba9 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp | |||
| @@ -624,6 +624,10 @@ void Config::ReadPathValues() { | |||
| 624 | void Config::ReadRendererValues() { | 624 | void Config::ReadRendererValues() { |
| 625 | qt_config->beginGroup(QStringLiteral("Renderer")); | 625 | qt_config->beginGroup(QStringLiteral("Renderer")); |
| 626 | 626 | ||
| 627 | Settings::values.renderer_backend = | ||
| 628 | static_cast<Settings::RendererBackend>(ReadSetting(QStringLiteral("backend"), 0).toInt()); | ||
| 629 | Settings::values.renderer_debug = ReadSetting(QStringLiteral("debug"), false).toBool(); | ||
| 630 | Settings::values.vulkan_device = ReadSetting(QStringLiteral("vulkan_device"), 0).toInt(); | ||
| 627 | Settings::values.resolution_factor = | 631 | Settings::values.resolution_factor = |
| 628 | ReadSetting(QStringLiteral("resolution_factor"), 1.0).toFloat(); | 632 | ReadSetting(QStringLiteral("resolution_factor"), 1.0).toFloat(); |
| 629 | Settings::values.use_frame_limit = | 633 | Settings::values.use_frame_limit = |
| @@ -1056,6 +1060,9 @@ void Config::SavePathValues() { | |||
| 1056 | void Config::SaveRendererValues() { | 1060 | void Config::SaveRendererValues() { |
| 1057 | qt_config->beginGroup(QStringLiteral("Renderer")); | 1061 | qt_config->beginGroup(QStringLiteral("Renderer")); |
| 1058 | 1062 | ||
| 1063 | WriteSetting(QStringLiteral("backend"), static_cast<int>(Settings::values.renderer_backend), 0); | ||
| 1064 | WriteSetting(QStringLiteral("debug"), Settings::values.renderer_debug, false); | ||
| 1065 | WriteSetting(QStringLiteral("vulkan_device"), Settings::values.vulkan_device, 0); | ||
| 1059 | WriteSetting(QStringLiteral("resolution_factor"), | 1066 | WriteSetting(QStringLiteral("resolution_factor"), |
| 1060 | static_cast<double>(Settings::values.resolution_factor), 1.0); | 1067 | static_cast<double>(Settings::values.resolution_factor), 1.0); |
| 1061 | WriteSetting(QStringLiteral("use_frame_limit"), Settings::values.use_frame_limit, true); | 1068 | WriteSetting(QStringLiteral("use_frame_limit"), Settings::values.use_frame_limit, true); |
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp index 161583b54..b01a36023 100644 --- a/src/yuzu_cmd/config.cpp +++ b/src/yuzu_cmd/config.cpp | |||
| @@ -371,6 +371,12 @@ void Config::ReadValues() { | |||
| 371 | Settings::values.use_multi_core = sdl2_config->GetBoolean("Core", "use_multi_core", false); | 371 | Settings::values.use_multi_core = sdl2_config->GetBoolean("Core", "use_multi_core", false); |
| 372 | 372 | ||
| 373 | // Renderer | 373 | // Renderer |
| 374 | const int renderer_backend = sdl2_config->GetInteger( | ||
| 375 | "Renderer", "backend", static_cast<int>(Settings::RendererBackend::OpenGL)); | ||
| 376 | Settings::values.renderer_backend = static_cast<Settings::RendererBackend>(renderer_backend); | ||
| 377 | Settings::values.renderer_debug = sdl2_config->GetBoolean("Renderer", "debug", false); | ||
| 378 | Settings::values.vulkan_device = sdl2_config->GetInteger("Renderer", "vulkan_device", 0); | ||
| 379 | |||
| 374 | Settings::values.resolution_factor = | 380 | Settings::values.resolution_factor = |
| 375 | static_cast<float>(sdl2_config->GetReal("Renderer", "resolution_factor", 1.0)); | 381 | static_cast<float>(sdl2_config->GetReal("Renderer", "resolution_factor", 1.0)); |
| 376 | Settings::values.use_frame_limit = sdl2_config->GetBoolean("Renderer", "use_frame_limit", true); | 382 | Settings::values.use_frame_limit = sdl2_config->GetBoolean("Renderer", "use_frame_limit", true); |
diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h index e829f8695..00fd88279 100644 --- a/src/yuzu_cmd/default_ini.h +++ b/src/yuzu_cmd/default_ini.h | |||
| @@ -98,6 +98,17 @@ udp_pad_index= | |||
| 98 | use_multi_core= | 98 | use_multi_core= |
| 99 | 99 | ||
| 100 | [Renderer] | 100 | [Renderer] |
| 101 | # Which backend API to use. | ||
| 102 | # 0 (default): OpenGL, 1: Vulkan | ||
| 103 | backend = | ||
| 104 | |||
| 105 | # Enable graphics API debugging mode. | ||
| 106 | # 0 (default): Disabled, 1: Enabled | ||
| 107 | debug = | ||
| 108 | |||
| 109 | # Which Vulkan physical device to use (defaults to 0) | ||
| 110 | vulkan_device = | ||
| 111 | |||
| 101 | # Whether to use software or hardware rendering. | 112 | # Whether to use software or hardware rendering. |
| 102 | # 0: Software, 1 (default): Hardware | 113 | # 0: Software, 1 (default): Hardware |
| 103 | use_hw_renderer = | 114 | use_hw_renderer = |