From 5681e91cf74d2c092a9ec205503e83d004676066 Mon Sep 17 00:00:00 2001 From: SachinVin Date: Tue, 5 Apr 2022 00:10:53 +0530 Subject: [PATCH] Android: remove async GPU until it is fixed on desktop --- .../ui/SettingsFragmentPresenter.java | 2 -- src/android/app/src/main/jni/config.cpp | 2 -- .../app/src/main/jni/game_settings.cpp | 36 ------------------- src/android/app/src/main/jni/native.cpp | 10 ------ 4 files changed, 50 deletions(-) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.java b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.java index f845e9ce8..ef4623914 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.java @@ -353,7 +353,6 @@ public final class SettingsFragmentPresenter { SettingSection rendererSection = mSettings.getSection(Settings.SECTION_RENDERER); Setting resolutionFactor = rendererSection.getSetting(SettingsFile.KEY_RESOLUTION_FACTOR); Setting filterMode = rendererSection.getSetting(SettingsFile.KEY_FILTER_MODE); - Setting useAsynchronousGpuEmulation = rendererSection.getSetting(SettingsFile.KEY_USE_ASYNCHRONOUS_GPU_EMULATION); Setting shadersAccurateMul = rendererSection.getSetting(SettingsFile.KEY_SHADERS_ACCURATE_MUL); Setting render3dMode = rendererSection.getSetting(SettingsFile.KEY_RENDER_3D); Setting factor3d = rendererSection.getSetting(SettingsFile.KEY_FACTOR_3D); @@ -367,7 +366,6 @@ public final class SettingsFragmentPresenter { sl.add(new HeaderSetting(null, null, R.string.renderer, 0)); sl.add(new SliderSetting(SettingsFile.KEY_RESOLUTION_FACTOR, Settings.SECTION_RENDERER, R.string.internal_resolution, R.string.internal_resolution_description, 1, 4, "x", 1, resolutionFactor)); sl.add(new CheckBoxSetting(SettingsFile.KEY_FILTER_MODE, Settings.SECTION_RENDERER, R.string.linear_filtering, R.string.linear_filtering_description, true, filterMode)); - sl.add(new CheckBoxSetting(SettingsFile.KEY_USE_ASYNCHRONOUS_GPU_EMULATION, Settings.SECTION_RENDERER, R.string.asynchronous_gpu, R.string.asynchronous_gpu_description, true, useAsynchronousGpuEmulation)); sl.add(new CheckBoxSetting(SettingsFile.KEY_SHADERS_ACCURATE_MUL, Settings.SECTION_RENDERER, R.string.shaders_accurate_mul, R.string.shaders_accurate_mul_description, false, shadersAccurateMul)); sl.add(new CheckBoxSetting(SettingsFile.KEY_USE_DISK_SHADER_CACHE, Settings.SECTION_RENDERER, R.string.use_disk_shader_cache, R.string.use_disk_shader_cache_description, true, useDiskShaderCache)); diff --git a/src/android/app/src/main/jni/config.cpp b/src/android/app/src/main/jni/config.cpp index e8653da23..1c9aa7cc9 100644 --- a/src/android/app/src/main/jni/config.cpp +++ b/src/android/app/src/main/jni/config.cpp @@ -118,8 +118,6 @@ void Config::ReadValues() { Settings::values.use_hw_shader = sdl2_config->GetBoolean("Renderer", "use_hw_shader", true); Settings::values.shaders_accurate_mul = sdl2_config->GetBoolean("Renderer", "shaders_accurate_mul", false); - Settings::values.use_asynchronous_gpu_emulation = - sdl2_config->GetBoolean("Renderer", "use_asynchronous_gpu_emulation", true); Settings::values.use_shader_jit = sdl2_config->GetBoolean("Renderer", "use_shader_jit", true); Settings::values.resolution_factor = static_cast(sdl2_config->GetInteger("Renderer", "resolution_factor", 1)); diff --git a/src/android/app/src/main/jni/game_settings.cpp b/src/android/app/src/main/jni/game_settings.cpp index 06cefc91f..3feb42704 100644 --- a/src/android/app/src/main/jni/game_settings.cpp +++ b/src/android/app/src/main/jni/game_settings.cpp @@ -7,25 +7,7 @@ namespace GameSettings { void LoadOverrides(u64 program_id) { - Settings::values.gpu_timing_mode_submit_list = Settings::GpuTimingMode::Asynch_1ms; - Settings::values.gpu_timing_mode_swap_buffers = Settings::GpuTimingMode::Asynch_8ms; - Settings::values.gpu_timing_mode_memory_fill = Settings::GpuTimingMode::Asynch_2ms; - Settings::values.gpu_timing_mode_display_transfer = Settings::GpuTimingMode::Synch; - Settings::values.gpu_timing_mode_flush = Settings::GpuTimingMode::Skip; - Settings::values.gpu_timing_mode_flush_and_invalidate = Settings::GpuTimingMode::Asynch; - Settings::values.gpu_timing_mode_invalidate = Settings::GpuTimingMode::Synch; - switch (program_id) { - // JAP / Dragon Quest VII: Fragments of the Forgotten Past - case 0x0004000000065E00: - // USA / Dragon Quest VII: Fragments of the Forgotten Past - case 0x000400000018EF00: - // EUR / Dragon Quest VII: Fragments of the Forgotten Past - case 0x000400000018F000: - // This game is currently broken with asynchronous GPU - Settings::values.use_asynchronous_gpu_emulation = false; - break; - // JAP / The Legend of Zelda: Ocarina of Time 3D case 0x0004000000033400: // USA / The Legend of Zelda: Ocarina of Time 3D @@ -38,24 +20,6 @@ void LoadOverrides(u64 program_id) { case 0x000400000008F900: // This game requires accurate multiplication to render properly Settings::values.shaders_accurate_mul = true; - Settings::values.gpu_timing_mode_submit_list = Settings::GpuTimingMode::Asynch_1ms; - Settings::values.gpu_timing_mode_swap_buffers = Settings::GpuTimingMode::Asynch_4ms; - Settings::values.gpu_timing_mode_memory_fill = Settings::GpuTimingMode::Asynch; - Settings::values.gpu_timing_mode_display_transfer = Settings::GpuTimingMode::Asynch; - Settings::values.gpu_timing_mode_flush = Settings::GpuTimingMode::Skip; - Settings::values.gpu_timing_mode_flush_and_invalidate = Settings::GpuTimingMode::Skip; - break; - - // JAP / Super Mario 3D Land - case 0x0004000000054100: - // USA / Super Mario 3D Land - case 0x0004000000054000: - // EUR / Super Mario 3D Land - case 0x0004000000053F00: - // KOR / Super Mario 3D Land - case 0x0004000000089D00: - // This game has very sensitive timings with asynchronous GPU - Settings::values.gpu_timing_mode_submit_list = Settings::GpuTimingMode::Synch; break; // USA / Mario & Luigi: Superstar Saga + Bowsers Minions diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp index b6a2e6ed8..6dffc1225 100644 --- a/src/android/app/src/main/jni/native.cpp +++ b/src/android/app/src/main/jni/native.cpp @@ -204,18 +204,8 @@ static Core::System::ResultStatus RunCitra(const std::string& filepath) { LoadDiskCacheProgress(VideoCore::LoadCallbackStage::Prepare, 0, 0); std::unique_ptr cpu_context; - if (Settings::values.use_asynchronous_gpu_emulation) { - cpu_context = window->CreateSharedContext(); - cpu_context->MakeCurrent(); - } - system.Renderer().Rasterizer()->LoadDiskResources(stop_run, &LoadDiskCacheProgress); - if (Settings::values.use_asynchronous_gpu_emulation) { - cpu_context->DoneCurrent(); - cpu_context.reset(); - } - LoadDiskCacheProgress(VideoCore::LoadCallbackStage::Complete, 0, 0); SCOPE_EXIT({ TryShutdown(); });