From 046923d9f7f8c62d50279a7920e749785aa331dc Mon Sep 17 00:00:00 2001 From: Megamouse Date: Tue, 29 Sep 2020 09:25:12 +0200 Subject: [PATCH] Add Accurate PPU 128 Reservations to Debug tab --- rpcs3/rpcs3qt/emu_settings_type.h | 2 ++ rpcs3/rpcs3qt/patch_manager_dialog.ui | 2 +- rpcs3/rpcs3qt/settings_dialog.cpp | 7 ++++ rpcs3/rpcs3qt/settings_dialog.ui | 47 +++++++++++++++++++++++++-- rpcs3/rpcs3qt/tooltips.h | 1 + 5 files changed, 56 insertions(+), 3 deletions(-) diff --git a/rpcs3/rpcs3qt/emu_settings_type.h b/rpcs3/rpcs3qt/emu_settings_type.h index ea6ff93c2a..9a0b80c341 100644 --- a/rpcs3/rpcs3qt/emu_settings_type.h +++ b/rpcs3/rpcs3qt/emu_settings_type.h @@ -27,6 +27,7 @@ enum class emu_settings_type AccurateVectorNaN, AccurateRSXAccess, AccurateXFloat, + AccuratePPU128Loop, SetDAZandFTZ, SPUBlockSize, SPUCache, @@ -176,6 +177,7 @@ static const QMap settings_location = { emu_settings_type::MaxSPURSThreads, { "Core", "Max SPURS Threads"}}, { emu_settings_type::SleepTimersAccuracy, { "Core", "Sleep Timers Accuracy"}}, { emu_settings_type::ClocksScale, { "Core", "Clocks scale"}}, + { emu_settings_type::AccuratePPU128Loop, { "Core", "Accurate PPU 128-byte Reservation Op Max Length"}}, // Graphics Tab { emu_settings_type::Renderer, { "Video", "Renderer"}}, diff --git a/rpcs3/rpcs3qt/patch_manager_dialog.ui b/rpcs3/rpcs3qt/patch_manager_dialog.ui index 7f8d538a9e..ed170edd67 100644 --- a/rpcs3/rpcs3qt/patch_manager_dialog.ui +++ b/rpcs3/rpcs3qt/patch_manager_dialog.ui @@ -239,7 +239,7 @@ 85 - + 0 diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index 468f7f7142..573c97eced 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -1744,6 +1744,13 @@ settings_dialog::settings_dialog(std::shared_ptr gui_settings, std m_emu_settings->EnhanceCheckBox(ui->hookStFunc, emu_settings_type::HookStaticFuncs); SubscribeTooltip(ui->hookStFunc, tooltips.settings.hook_static_functions); + // Comboboxes + + m_emu_settings->EnhanceComboBox(ui->combo_accurate_ppu_128, emu_settings_type::AccuratePPU128Loop, true); + SubscribeTooltip(ui->gb_accurate_ppu_128, tooltips.settings.accurate_ppu_128_loop); + ui->combo_accurate_ppu_128->setItemText(ui->combo_accurate_ppu_128->findData(-1), tr("Always Enabled", "Accurate PPU 128 Reservations")); + ui->combo_accurate_ppu_128->setItemText(ui->combo_accurate_ppu_128->findData(0), tr("Disabled", "Accurate PPU 128 Reservations")); + // Layout fix for High Dpi layout()->setSizeConstraint(QLayout::SetFixedSize); } diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index a8605316a1..689c8e8671 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -3521,7 +3521,7 @@ - + Qt::Vertical @@ -3537,7 +3537,50 @@ - + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Accurate PPU 128 Reservations + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 0 + 0 + + + + + + diff --git a/rpcs3/rpcs3qt/tooltips.h b/rpcs3/rpcs3qt/tooltips.h index bb8eda9f78..b54209d9d6 100644 --- a/rpcs3/rpcs3qt/tooltips.h +++ b/rpcs3/rpcs3qt/tooltips.h @@ -96,6 +96,7 @@ public: const QString strict_texture_flushing = tr("Forces texture flushing even in situations where it is not necessary/correct. Known to cause visual artifacts, but useful for debugging certain texture cache issues."); const QString disable_native_fp16 = tr("Disables hardware half-float support which is known to cause problems in some rare cases on some GPUs."); const QString enable_3d = tr("Enables 3D stereo rendering.\nNote that only anaglyph viewing is supported at the moment."); + const QString accurate_ppu_128_loop = tr("When enabled, PPU atomic operations will operate on entire cache line data, as opposed to a single 64bit block of memory when disabled.\nNumerical values control whether or not to enable the accurate version based on the atomic operation's length."); // emulator