diff --git a/rpcs3/rpcs3qt/emu_settings_type.h b/rpcs3/rpcs3qt/emu_settings_type.h index 56f8e4f7aa..4848f5e74b 100644 --- a/rpcs3/rpcs3qt/emu_settings_type.h +++ b/rpcs3/rpcs3qt/emu_settings_type.h @@ -29,6 +29,7 @@ enum class emu_settings_type AccurateRSXAccess, AccurateXFloat, AccuratePPU128Loop, + NumPPUThreads, SetDAZandFTZ, SPUBlockSize, SPUCache, @@ -193,6 +194,7 @@ inline static const QMap settings_location = { emu_settings_type::AccuratePPU128Loop, { "Core", "Accurate PPU 128-byte Reservation Op Max Length"}}, { emu_settings_type::PerformanceReport, { "Core", "Enable Performance Report"}}, { emu_settings_type::FullWidthAVX512, { "Core", "Full Width AVX-512"}}, + { emu_settings_type::NumPPUThreads, { "Core", "PPU Threads"}}, // Graphics Tab { emu_settings_type::Renderer, { "Video", "Renderer"}}, diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index af30836e89..b385f23522 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -1818,6 +1818,9 @@ settings_dialog::settings_dialog(std::shared_ptr gui_settings, std 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")); + m_emu_settings->EnhanceComboBox(ui->combo_num_ppu_threads, emu_settings_type::NumPPUThreads, true); + SubscribeTooltip(ui->gb_num_ppu_threads, tooltips.settings.num_ppu_threads); + // Layout fix for High Dpi layout()->setSizeConstraint(QLayout::SetFixedSize); } diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index e7dee045db..be6621d262 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -3684,6 +3684,18 @@ + + + + PPU Thread Count + + + + + + + + diff --git a/rpcs3/rpcs3qt/tooltips.h b/rpcs3/rpcs3qt/tooltips.h index ed6ae40b80..393650b027 100644 --- a/rpcs3/rpcs3qt/tooltips.h +++ b/rpcs3/rpcs3qt/tooltips.h @@ -101,6 +101,7 @@ public: 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."); const QString enable_performance_report = tr("Measure certain events and print a chart after the emulator is stopped. Don't enable if not asked to."); + const QString num_ppu_threads = tr("Affects maximum amount of PPU threads running concurrently, the value of 1 has very low compatibility with games.\n2 is the default, if unsure do not modify this setting."); // emulator