From 8a1eb34c38f38f2df71f128d92dfe7c9408e0022 Mon Sep 17 00:00:00 2001 From: zackhow Date: Fri, 25 Jan 2019 17:32:54 -0500 Subject: [PATCH 1/2] Android: Default backendMultithreading to false on android --- Source/Core/Core/Config/GraphicsSettings.cpp | 7 +++++++ Source/Core/VideoCommon/VideoConfig.cpp | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/Source/Core/Core/Config/GraphicsSettings.cpp b/Source/Core/Core/Config/GraphicsSettings.cpp index 61904b8a70..a59b646618 100644 --- a/Source/Core/Core/Config/GraphicsSettings.cpp +++ b/Source/Core/Core/Config/GraphicsSettings.cpp @@ -71,8 +71,15 @@ const ConfigInfo GFX_BORDERLESS_FULLSCREEN{{System::GFX, "Settings", "Bord false}; const ConfigInfo GFX_ENABLE_VALIDATION_LAYER{ {System::GFX, "Settings", "EnableValidationLayer"}, false}; + +#if defined(ANDROID) +const ConfigInfo GFX_BACKEND_MULTITHREADING{ + {System::GFX, "Settings", "BackendMultithreading"}, false}; +#else const ConfigInfo GFX_BACKEND_MULTITHREADING{ {System::GFX, "Settings", "BackendMultithreading"}, true}; +#endif + const ConfigInfo GFX_COMMAND_BUFFER_EXECUTE_INTERVAL{ {System::GFX, "Settings", "CommandBufferExecuteInterval"}, 100}; const ConfigInfo GFX_SHADER_CACHE{{System::GFX, "Settings", "ShaderCache"}, true}; diff --git a/Source/Core/VideoCommon/VideoConfig.cpp b/Source/Core/VideoCommon/VideoConfig.cpp index cc14b191fd..8e794c193a 100644 --- a/Source/Core/VideoCommon/VideoConfig.cpp +++ b/Source/Core/VideoCommon/VideoConfig.cpp @@ -41,7 +41,12 @@ VideoConfig::VideoConfig() backend_info.bSupportsBPTCTextures = false; bEnableValidationLayer = false; + +#if defined(ANDROID) + bBackendMultithreading = false; +#else bBackendMultithreading = true; +#endif } void VideoConfig::Refresh() From 369a5d9963558d0fa5a6707658996b2a2baa4c30 Mon Sep 17 00:00:00 2001 From: zackhow Date: Fri, 25 Jan 2019 17:35:15 -0500 Subject: [PATCH 2/2] Android: Add backend multithreading option to gfx menu --- .../features/settings/ui/SettingsFragmentPresenter.java | 5 +++++ .../dolphinemu/features/settings/utils/SettingsFile.java | 1 + Source/Android/app/src/main/res/values/strings.xml | 2 ++ 3 files changed, 8 insertions(+) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java index b8e74f6c21..5aab54c95d 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java @@ -452,6 +452,7 @@ public final class SettingsFragmentPresenter enhancementSection.getSetting(SettingsFile.KEY_ARBITRARY_MIPMAP_DETECTION); Setting wideScreenHack = gfxSection.getSetting(SettingsFile.KEY_WIDE_SCREEN_HACK); Setting force24BitColor = enhancementSection.getSetting(SettingsFile.KEY_FORCE_24_BIT_COLOR); + Setting backendMultithreading = gfxSection.getSetting(SettingsFile.KEY_BACKEND_MULTITHREADING); sl.add(new SingleChoiceSetting(SettingsFile.KEY_INTERNAL_RES, Settings.SECTION_GFX_SETTINGS, R.string.internal_resolution, R.string.internal_resolution_description, @@ -501,6 +502,10 @@ public final class SettingsFragmentPresenter sl.add(new CheckBoxSetting(SettingsFile.KEY_WIDE_SCREEN_HACK, Settings.SECTION_GFX_SETTINGS, R.string.wide_screen_hack, R.string.wide_screen_hack_description, false, wideScreenHack)); + sl.add(new CheckBoxSetting(SettingsFile.KEY_BACKEND_MULTITHREADING, + Settings.SECTION_GFX_SETTINGS, + R.string.backend_multithreading, R.string.backend_multithreading_description, false, + backendMultithreading)); /* Check if we support stereo diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java index df51a38e04..fd4734cd89 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java @@ -72,6 +72,7 @@ public final class SettingsFile public static final String KEY_ARBITRARY_MIPMAP_DETECTION = "ArbitraryMipmapDetection"; public static final String KEY_WIDE_SCREEN_HACK = "wideScreenHack"; public static final String KEY_FORCE_24_BIT_COLOR = "ForceTrueColor"; + public static final String KEY_BACKEND_MULTITHREADING = "BackendMultithreading"; public static final String KEY_STEREO_MODE = "StereoMode"; public static final String KEY_STEREO_DEPTH = "StereoDepth"; diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index 0e13855779..6ec508dab5 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -199,6 +199,8 @@ Control the distance of the convergence plane, this is the distance at which objects will appear to be in front of the screen.\nA higher value creates stronger out-of-screen effects while a lower value is more comfortable. Swap Eyes Swap the left and right eye, mostly useful if you want to view side-by-side cross-eyed. + Backend Multithreading + Enables CPU multithreading(Vulkan only). May affect performance. If unsure, leave unchecked Hacks Embedded Frame Buffer