diff --git a/rpcs3/Emu/system_config.h b/rpcs3/Emu/system_config.h index 3dc94c6275..73b833a226 100644 --- a/rpcs3/Emu/system_config.h +++ b/rpcs3/Emu/system_config.h @@ -139,7 +139,7 @@ struct cfg_root : cfg::node cfg::_bool write_depth_buffer{ this, "Write Depth Buffer" }; cfg::_bool read_color_buffers{ this, "Read Color Buffers" }; cfg::_bool read_depth_buffer{ this, "Read Depth Buffer" }; - cfg::_bool handle_tiled_memory{ this, "Handle Tiled Memory", false, true }; + cfg::_bool handle_tiled_memory{ this, "Handle RSX Memory Tiling", false, true }; cfg::_bool log_programs{ this, "Log shader programs" }; cfg::_bool vsync{ this, "VSync" }; cfg::_bool debug_output{ this, "Debug output" }; diff --git a/rpcs3/rpcs3qt/emu_settings_type.h b/rpcs3/rpcs3qt/emu_settings_type.h index edf9d6cc8e..eb7779d2e6 100644 --- a/rpcs3/rpcs3qt/emu_settings_type.h +++ b/rpcs3/rpcs3qt/emu_settings_type.h @@ -62,6 +62,7 @@ enum class emu_settings_type WriteColorBuffers, ReadColorBuffers, ReadDepthBuffer, + HandleRSXTiledMemory, VSync, DebugOutput, DebugOverlay, @@ -245,6 +246,7 @@ inline static const QMap settings_location = { emu_settings_type::WriteColorBuffers, { "Video", "Write Color Buffers"}}, { emu_settings_type::ReadColorBuffers, { "Video", "Read Color Buffers"}}, { emu_settings_type::ReadDepthBuffer, { "Video", "Read Depth Buffer"}}, + { emu_settings_type::HandleRSXTiledMemory, { "Video", "Handle RSX Memory Tiling"}}, { emu_settings_type::VSync, { "Video", "VSync"}}, { emu_settings_type::DebugOutput, { "Video", "Debug output"}}, { emu_settings_type::DebugOverlay, { "Video", "Debug overlay"}}, diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index 6936211946..9e8eced686 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -1477,6 +1477,9 @@ settings_dialog::settings_dialog(std::shared_ptr gui_settings, std m_emu_settings->EnhanceCheckBox(ui->dumpDepth, emu_settings_type::WriteDepthBuffer); SubscribeTooltip(ui->dumpDepth, tooltips.settings.dump_depth); + m_emu_settings->EnhanceCheckBox(ui->handleTiledMemory, emu_settings_type::HandleRSXTiledMemory); + SubscribeTooltip(ui->handleTiledMemory, tooltips.settings.handle_tiled_memory); + m_emu_settings->EnhanceCheckBox(ui->disableOnDiskShaderCache, emu_settings_type::DisableOnDiskShaderCache); SubscribeTooltip(ui->disableOnDiskShaderCache, tooltips.settings.disable_on_disk_shader_cache); diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 152cfda615..d4a73b8d90 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -2622,6 +2622,13 @@ + + + + Handle RSX memory tiling + + + diff --git a/rpcs3/rpcs3qt/tooltips.h b/rpcs3/rpcs3qt/tooltips.h index 378c088436..e4cc5da04a 100644 --- a/rpcs3/rpcs3qt/tooltips.h +++ b/rpcs3/rpcs3qt/tooltips.h @@ -36,6 +36,7 @@ public: const QString read_color = tr("Initializes render target memory using vm memory."); const QString read_depth = tr("Initializes render target memory using vm memory."); const QString dump_depth = tr("Writes depth buffer values to vm memory."); + const QString handle_tiled_memory = tr("Obey RSX memory tiling configuration when writing GPU data to vm memory.\nThis can fix graphics corruption observed when Read Color or Read Depth options are enabled."); const QString disable_on_disk_shader_cache = tr("Disables the loading and saving of shaders from and to the shader cache in the data directory."); const QString allow_host_labels = tr("Allows the host GPU to synchronize with CELL directly. This incurs a performance penalty, but exposes the true state of GPU objects to the guest CPU. Can help eliminate visual noise and glitching at the cost of performance. Use with caution."); const QString disable_vertex_cache = tr("Disables the vertex cache.\nMight resolve missing or flickering graphics output.\nMay degrade performance.");