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 f27596228f..42a6bb4911 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 @@ -559,6 +559,7 @@ public final class SettingsFragmentPresenter new BooleanSetting(SettingsFile.KEY_IGNORE_FORMAT, Settings.SECTION_GFX_HACKS, ignoreFormatValue); Setting efbToTexture = hacksSection.getSetting(SettingsFile.KEY_EFB_TEXTURE); + Setting deferEfbCopies = hacksSection.getSetting(SettingsFile.KEY_DEFER_EFB_COPIES); Setting texCacheAccuracy = gfxSection.getSetting(SettingsFile.KEY_TEXCACHE_ACCURACY); Setting gpuTextureDecoding = gfxSection.getSetting(SettingsFile.KEY_GPU_TEXTURE_DECODING); Setting xfbToTexture = hacksSection.getSetting(SettingsFile.KEY_XFB_TEXTURE); @@ -573,6 +574,9 @@ public final class SettingsFragmentPresenter ignoreFormat)); sl.add(new CheckBoxSetting(SettingsFile.KEY_EFB_TEXTURE, Settings.SECTION_GFX_HACKS, R.string.efb_copy_method, R.string.efb_copy_method_description, true, efbToTexture)); + sl.add(new CheckBoxSetting(SettingsFile.KEY_DEFER_EFB_COPIES, Settings.SECTION_GFX_HACKS, + R.string.defer_efb_copies, R.string.defer_efb_copies_description, true, + deferEfbCopies)); sl.add(new HeaderSetting(null, null, R.string.texture_cache, 0)); sl.add(new SingleChoiceSetting(SettingsFile.KEY_TEXCACHE_ACCURACY, 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 79315dbe90..322e2f0ae8 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 @@ -80,6 +80,7 @@ public final class SettingsFile public static final String KEY_SKIP_EFB = "EFBAccessEnable"; public static final String KEY_IGNORE_FORMAT = "EFBEmulateFormatChanges"; public static final String KEY_EFB_TEXTURE = "EFBToTextureEnable"; + public static final String KEY_DEFER_EFB_COPIES = "DeferEFBCopies"; public static final String KEY_TEXCACHE_ACCURACY = "SafeTextureCacheColorSamples"; public static final String KEY_GPU_TEXTURE_DECODING = "EnableGPUTextureDecoding"; public static final String KEY_XFB_TEXTURE = "XFBToTextureEnable"; diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index e1ad38d38f..ed70092646 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -207,6 +207,8 @@ Ignore any changes to the EFB format. Store EFB Copies to Texture Only Stores EFB Copies exclusively on the GPU, bypassing system memory. Causes graphical defects in a small number of games. If unsure, leave this checked. + Defer EFB Copies to RAM + Waits until the game synchronizes with the emulated GPU before writing the contents of EFB copies to RAM. May result in faster performance. If unsure, leave this unchecked. Texture Cache Texture Cache Accuracy The safer the selection, the less likely the emulator will be missing any texture updates from RAM.