diff --git a/rpcs3/Json/tooltips.json b/rpcs3/Json/tooltips.json index ce008ac2f9..8139a031d8 100644 --- a/rpcs3/Json/tooltips.json +++ b/rpcs3/Json/tooltips.json @@ -45,7 +45,8 @@ "debugOverlay": "Provides a graphical overlay of various debugging information.\nIf unsure, don't use this option.", "logProg": "Dump game shaders to file. Only useful to developers.\nIf unsure, don't use this option.", "disableOcclusionQueries": "Disables running occlusion queries. Minor to moderate performance boost.\nMight introduce issues with broken occlusion e.g missing geometry and extreme pop-in.", - "disableVertexCache": "Disables the vertex cache.\nMight resolve missing or flickering graphics output.\nMay degrade performance." + "disableVertexCache": "Disables the vertex cache.\nMight resolve missing or flickering graphics output.\nMay degrade performance.", + "forceCpuBlitEmulation": "Forces emulation of all blit and image manipulation operations on the cpu.\nRequires 'Write Color Buffers' option to also be enabled in most cases to avoid missing graphics.\nSignificatly degrades performance but is more accurate in some cases.\nThis setting overrides the 'GPU texture scaling' option." }, "emulator": { "gui": { diff --git a/rpcs3/rpcs3qt/emu_settings.h b/rpcs3/rpcs3qt/emu_settings.h index 0fb93507cb..942b2e14b6 100644 --- a/rpcs3/rpcs3qt/emu_settings.h +++ b/rpcs3/rpcs3qt/emu_settings.h @@ -63,6 +63,7 @@ public: AnisotropicFilterOverride, ResolutionScale, MinimumScalableDimension, + ForceCPUBlitEmulation, // Audio AudioRenderer, @@ -212,6 +213,7 @@ private: { StrictRenderingMode, { "Video", "Strict Rendering Mode"}}, { DisableVertexCache, { "Video", "Disable Vertex Cache"}}, { DisableOcclusionQueries, { "Video", "Disable ZCull Occlusion Queries" }}, + { ForceCPUBlitEmulation, { "Video", "Force CPU Blit" }}, { AnisotropicFilterOverride,{ "Video", "Anisotropic Filter Override" }}, { ResolutionScale, { "Video", "Resolution Scale" }}, { MinimumScalableDimension, { "Video", "Minimum Scalable Dimension" }}, diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index fcdbdcbd8d..88a850c286 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -937,6 +937,9 @@ settings_dialog::settings_dialog(std::shared_ptr guiSettings, std: xemu_settings->EnhanceCheckBox(ui->disableHwOcclusionQueries, emu_settings::DisableOcclusionQueries); ui->disableHwOcclusionQueries->setToolTip(json_debug["disableOcclusionQueries"].toString()); + xemu_settings->EnhanceCheckBox(ui->forceCpuBlitEmulation, emu_settings::ForceCPUBlitEmulation); + ui->forceCpuBlitEmulation->setToolTip(json_debug["forceCpuBlitEmulation"].toString()); + // Checkboxes: core debug options xemu_settings->EnhanceCheckBox(ui->ppuDebug, emu_settings::PPUDebug); ui->ppuDebug->setToolTip(json_debug["ppuDebug"].toString()); diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 1e0e7101b0..55757ec95b 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -1554,6 +1554,13 @@ + + + + Force CPU blit emulation + + +