citra-emu
/
citra
Archived
1
0
Fork 0

Android: remove async GPU until it is fixed on desktop

This commit is contained in:
SachinVin 2022-04-05 00:10:53 +05:30
parent 3adc278965
commit 5681e91cf7
4 changed files with 0 additions and 50 deletions

View File

@ -353,7 +353,6 @@ public final class SettingsFragmentPresenter {
SettingSection rendererSection = mSettings.getSection(Settings.SECTION_RENDERER); SettingSection rendererSection = mSettings.getSection(Settings.SECTION_RENDERER);
Setting resolutionFactor = rendererSection.getSetting(SettingsFile.KEY_RESOLUTION_FACTOR); Setting resolutionFactor = rendererSection.getSetting(SettingsFile.KEY_RESOLUTION_FACTOR);
Setting filterMode = rendererSection.getSetting(SettingsFile.KEY_FILTER_MODE); 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 shadersAccurateMul = rendererSection.getSetting(SettingsFile.KEY_SHADERS_ACCURATE_MUL);
Setting render3dMode = rendererSection.getSetting(SettingsFile.KEY_RENDER_3D); Setting render3dMode = rendererSection.getSetting(SettingsFile.KEY_RENDER_3D);
Setting factor3d = rendererSection.getSetting(SettingsFile.KEY_FACTOR_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 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 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_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_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)); 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));

View File

@ -118,8 +118,6 @@ void Config::ReadValues() {
Settings::values.use_hw_shader = sdl2_config->GetBoolean("Renderer", "use_hw_shader", true); Settings::values.use_hw_shader = sdl2_config->GetBoolean("Renderer", "use_hw_shader", true);
Settings::values.shaders_accurate_mul = Settings::values.shaders_accurate_mul =
sdl2_config->GetBoolean("Renderer", "shaders_accurate_mul", false); 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.use_shader_jit = sdl2_config->GetBoolean("Renderer", "use_shader_jit", true);
Settings::values.resolution_factor = Settings::values.resolution_factor =
static_cast<u16>(sdl2_config->GetInteger("Renderer", "resolution_factor", 1)); static_cast<u16>(sdl2_config->GetInteger("Renderer", "resolution_factor", 1));

View File

@ -7,25 +7,7 @@
namespace GameSettings { namespace GameSettings {
void LoadOverrides(u64 program_id) { 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) { 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 // JAP / The Legend of Zelda: Ocarina of Time 3D
case 0x0004000000033400: case 0x0004000000033400:
// USA / The Legend of Zelda: Ocarina of Time 3D // USA / The Legend of Zelda: Ocarina of Time 3D
@ -38,24 +20,6 @@ void LoadOverrides(u64 program_id) {
case 0x000400000008F900: case 0x000400000008F900:
// This game requires accurate multiplication to render properly // This game requires accurate multiplication to render properly
Settings::values.shaders_accurate_mul = true; 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; break;
// USA / Mario & Luigi: Superstar Saga + Bowsers Minions // USA / Mario & Luigi: Superstar Saga + Bowsers Minions

View File

@ -204,18 +204,8 @@ static Core::System::ResultStatus RunCitra(const std::string& filepath) {
LoadDiskCacheProgress(VideoCore::LoadCallbackStage::Prepare, 0, 0); LoadDiskCacheProgress(VideoCore::LoadCallbackStage::Prepare, 0, 0);
std::unique_ptr<Frontend::GraphicsContext> cpu_context; std::unique_ptr<Frontend::GraphicsContext> cpu_context;
if (Settings::values.use_asynchronous_gpu_emulation) {
cpu_context = window->CreateSharedContext();
cpu_context->MakeCurrent();
}
system.Renderer().Rasterizer()->LoadDiskResources(stop_run, &LoadDiskCacheProgress); 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); LoadDiskCacheProgress(VideoCore::LoadCallbackStage::Complete, 0, 0);
SCOPE_EXIT({ TryShutdown(); }); SCOPE_EXIT({ TryShutdown(); });