GPUDevice: Purge threaded presentation
Worse frame pacing, and GPU thread (when I finish it) will give significantly faster performance on mobile anyway.
This commit is contained in:
@@ -924,8 +924,8 @@ void FullscreenUI::DestroyResources()
|
||||
|
||||
ImGuiFullscreen::FileSelectorFilters FullscreenUI::GetDiscImageFilters()
|
||||
{
|
||||
return {"*.bin", "*.cue", "*.iso", "*.img", "*.chd", "*.ecm", "*.mds",
|
||||
"*.psexe", "*.ps-exe", "*.exe", "*.psx", "*.psf", "*.minipsf", "*.m3u", "*.pbp"};
|
||||
return {"*.bin", "*.cue", "*.iso", "*.img", "*.chd", "*.ecm", "*.mds", "*.psexe",
|
||||
"*.ps-exe", "*.exe", "*.psx", "*.psf", "*.minipsf", "*.m3u", "*.pbp"};
|
||||
}
|
||||
|
||||
void FullscreenUI::DoStartPath(std::string path, std::string state, std::optional<bool> fast_boot)
|
||||
@@ -4450,16 +4450,6 @@ void FullscreenUI::DrawDisplaySettingsPage()
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_VULKAN
|
||||
case GPURenderer::HardwareVulkan:
|
||||
{
|
||||
DrawToggleSetting(bsi, FSUI_CSTR("Threaded Presentation"),
|
||||
FSUI_CSTR("Presents frames on a background thread when fast forwarding or vsync is disabled."),
|
||||
"GPU", "ThreadedPresentation", true);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case GPURenderer::Software:
|
||||
{
|
||||
DrawToggleSetting(bsi, FSUI_CSTR("Threaded Rendering"),
|
||||
@@ -7015,9 +7005,8 @@ void FullscreenUI::DrawAboutWindow()
|
||||
if (ImGui::BeginPopupModal(FSUI_CSTR("About DuckStation"), &s_about_window_open,
|
||||
ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize))
|
||||
{
|
||||
ImGui::TextWrapped("%s",
|
||||
FSUI_CSTR("DuckStation is a free simulator/emulator of the Sony PlayStation(TM) "
|
||||
"console, focusing on playability, speed, and long-term maintainability."));
|
||||
ImGui::TextWrapped("%s", FSUI_CSTR("DuckStation is a free simulator/emulator of the Sony PlayStation(TM) "
|
||||
"console, focusing on playability, speed, and long-term maintainability."));
|
||||
ImGui::NewLine();
|
||||
ImGui::TextWrapped(FSUI_CSTR("Version: %s"), g_scm_tag_str);
|
||||
ImGui::NewLine();
|
||||
@@ -7571,7 +7560,6 @@ TRANSLATE_NOOP("FullscreenUI", "Post-processing chain cleared.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Post-processing shaders reloaded.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Preload Images to RAM");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Preload Replacement Textures");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Presents frames on a background thread when fast forwarding or vsync is disabled.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Preserve Projection Precision");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Prevents the emulator from producing any audible sound.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Prevents the screen saver from activating and the host from sleeping while emulation is running.");
|
||||
@@ -7749,7 +7737,6 @@ TRANSLATE_NOOP("FullscreenUI", "The audio backend determines how frames produced
|
||||
TRANSLATE_NOOP("FullscreenUI", "The selected memory card image will be used in shared mode for this slot.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "This game has no achievements.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "This game has no leaderboards.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Threaded Presentation");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Threaded Rendering");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Time Played");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Time Played: %s");
|
||||
|
||||
+6
-7
@@ -295,13 +295,12 @@ bool Host::CreateGPUDevice(RenderAPI api, Error* error)
|
||||
disabled_features |= GPUDevice::FEATURE_MASK_RASTER_ORDER_VIEWS;
|
||||
|
||||
Error create_error;
|
||||
if (!g_gpu_device || !g_gpu_device->Create(g_settings.gpu_adapter,
|
||||
g_settings.gpu_disable_shader_cache ? std::string_view() :
|
||||
std::string_view(EmuFolders::Cache),
|
||||
SHADER_CACHE_VERSION, g_settings.gpu_use_debug_device,
|
||||
System::GetEffectiveVSyncMode(), System::ShouldAllowPresentThrottle(),
|
||||
g_settings.gpu_threaded_presentation, exclusive_fullscreen_control,
|
||||
static_cast<GPUDevice::FeatureMask>(disabled_features), &create_error))
|
||||
if (!g_gpu_device || !g_gpu_device->Create(
|
||||
g_settings.gpu_adapter,
|
||||
g_settings.gpu_disable_shader_cache ? std::string_view() : std::string_view(EmuFolders::Cache),
|
||||
SHADER_CACHE_VERSION, g_settings.gpu_use_debug_device, System::GetEffectiveVSyncMode(),
|
||||
System::ShouldAllowPresentThrottle(), exclusive_fullscreen_control,
|
||||
static_cast<GPUDevice::FeatureMask>(disabled_features), &create_error))
|
||||
{
|
||||
ERROR_LOG("Failed to create GPU device: {}", create_error.GetDescription());
|
||||
if (g_gpu_device)
|
||||
|
||||
@@ -203,7 +203,6 @@ void Settings::Load(SettingsInterface& si, SettingsInterface& controller_si)
|
||||
gpu_per_sample_shading = si.GetBoolValue("GPU", "PerSampleShading", false);
|
||||
gpu_use_thread = si.GetBoolValue("GPU", "UseThread", true);
|
||||
gpu_use_software_renderer_for_readbacks = si.GetBoolValue("GPU", "UseSoftwareRendererForReadbacks", false);
|
||||
gpu_threaded_presentation = si.GetBoolValue("GPU", "ThreadedPresentation", DEFAULT_THREADED_PRESENTATION);
|
||||
gpu_true_color = si.GetBoolValue("GPU", "TrueColor", true);
|
||||
gpu_scaled_dithering = si.GetBoolValue("GPU", "ScaledDithering", true);
|
||||
gpu_force_round_texcoords = si.GetBoolValue("GPU", "ForceRoundTextureCoordinates", false);
|
||||
@@ -522,7 +521,6 @@ void Settings::Save(SettingsInterface& si, bool ignore_base) const
|
||||
|
||||
si.SetBoolValue("GPU", "PerSampleShading", gpu_per_sample_shading);
|
||||
si.SetBoolValue("GPU", "UseThread", gpu_use_thread);
|
||||
si.SetBoolValue("GPU", "ThreadedPresentation", gpu_threaded_presentation);
|
||||
si.SetBoolValue("GPU", "UseSoftwareRendererForReadbacks", gpu_use_software_renderer_for_readbacks);
|
||||
si.SetBoolValue("GPU", "TrueColor", gpu_true_color);
|
||||
si.SetBoolValue("GPU", "ScaledDithering", gpu_scaled_dithering);
|
||||
|
||||
@@ -106,7 +106,6 @@ struct Settings
|
||||
u8 gpu_multisamples = 1;
|
||||
bool gpu_use_thread : 1 = true;
|
||||
bool gpu_use_software_renderer_for_readbacks : 1 = false;
|
||||
bool gpu_threaded_presentation : 1 = DEFAULT_THREADED_PRESENTATION;
|
||||
bool gpu_use_debug_device : 1 = false;
|
||||
bool gpu_disable_shader_cache : 1 = false;
|
||||
bool gpu_disable_dual_source_blend : 1 = false;
|
||||
@@ -539,11 +538,9 @@ struct Settings
|
||||
#ifndef __ANDROID__
|
||||
static constexpr bool DEFAULT_SAVE_STATE_BACKUPS = true;
|
||||
static constexpr bool DEFAULT_FAST_BOOT_VALUE = false;
|
||||
static constexpr bool DEFAULT_THREADED_PRESENTATION = false;
|
||||
#else
|
||||
static constexpr bool DEFAULT_SAVE_STATE_BACKUPS = false;
|
||||
static constexpr bool DEFAULT_FAST_BOOT_VALUE = true;
|
||||
static constexpr bool DEFAULT_THREADED_PRESENTATION = true;
|
||||
#endif
|
||||
|
||||
// PINE uses a concept of "slot" to be able to communicate with multiple
|
||||
|
||||
@@ -4173,7 +4173,6 @@ void System::CheckForSettingsChanges(const Settings& old_settings)
|
||||
if (IsValid() &&
|
||||
(g_settings.gpu_renderer != old_settings.gpu_renderer ||
|
||||
g_settings.gpu_use_debug_device != old_settings.gpu_use_debug_device ||
|
||||
g_settings.gpu_threaded_presentation != old_settings.gpu_threaded_presentation ||
|
||||
g_settings.gpu_disable_shader_cache != old_settings.gpu_disable_shader_cache ||
|
||||
g_settings.gpu_disable_dual_source_blend != old_settings.gpu_disable_dual_source_blend ||
|
||||
g_settings.gpu_disable_framebuffer_fetch != old_settings.gpu_disable_framebuffer_fetch ||
|
||||
@@ -4186,7 +4185,6 @@ void System::CheckForSettingsChanges(const Settings& old_settings)
|
||||
// if debug device/threaded presentation change, we need to recreate the whole display
|
||||
const bool recreate_device =
|
||||
(g_settings.gpu_use_debug_device != old_settings.gpu_use_debug_device ||
|
||||
g_settings.gpu_threaded_presentation != old_settings.gpu_threaded_presentation ||
|
||||
g_settings.gpu_disable_shader_cache != old_settings.gpu_disable_shader_cache ||
|
||||
g_settings.gpu_disable_dual_source_blend != old_settings.gpu_disable_dual_source_blend ||
|
||||
g_settings.gpu_disable_framebuffer_fetch != old_settings.gpu_disable_framebuffer_fetch ||
|
||||
|
||||
Reference in New Issue
Block a user