diff --git a/rpcs3/Json/tooltips.json b/rpcs3/Json/tooltips.json index c75e063c4f..2250c4d707 100644 --- a/rpcs3/Json/tooltips.json +++ b/rpcs3/Json/tooltips.json @@ -65,7 +65,8 @@ "disableVulkanMemAllocator": "Disables the custom Vulkan memory allocator and reverts to direct calls to VkAllocateMemory/VkFreeMemory.", "disableFIFOReordering": "Disables RSX FIFO optimizations completely. Draws are processed as they are received by the DMA puller.", "gpuTextureScaling": "Force all texture transfer, scaling and conversion operations on the GPU.\nMay cause texture corruption in some cases.", - "strictTextureFlushing": "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." + "strictTextureFlushing": "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.", + "maxSPURSThreads": "Limits the maximum number of SPURS threads in each thread group.\nMay improve performance in some cases, especially on systems with limited number of hardware threads.\nLimiting the number of threads is likely to cause crashes; it's recommended to keep this at default value." }, "emulator": { "misc": { diff --git a/rpcs3/rpcs3qt/emu_settings.h b/rpcs3/rpcs3qt/emu_settings.h index b7b5e1d2d1..5cbd7682b7 100644 --- a/rpcs3/rpcs3qt/emu_settings.h +++ b/rpcs3/rpcs3qt/emu_settings.h @@ -47,6 +47,7 @@ public: SPUCache, SPUVerification, DebugConsoleMode, + MaxSPURSThreads, // Graphics Renderer, @@ -256,6 +257,7 @@ private: { SPUCache, { "Core", "SPU Cache"}}, { SPUVerification, { "Core", "SPU Verification"}}, { DebugConsoleMode, { "Core", "Debug Console Mode"}}, + { MaxSPURSThreads, { "Core", "Max SPURS Threads"}}, // Graphics Tab { Renderer, { "Video", "Renderer"}}, diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index ef6b020e56..8eea1a9f7b 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -1364,6 +1364,11 @@ settings_dialog::settings_dialog(std::shared_ptr guiSettings, std: xemu_settings->EnhanceCheckBox(ui->debugConsoleMode, emu_settings::DebugConsoleMode); SubscribeTooltip(ui->debugConsoleMode, json_debug["debugConsoleMode"].toString()); + // Comboboxes + xemu_settings->EnhanceComboBox(ui->maxSPURSThreads, emu_settings::MaxSPURSThreads, true); + ui->maxSPURSThreads->setItemText(ui->maxSPURSThreads->findData("6"), tr("Unlimited (Default)")); + SubscribeTooltip(ui->maxSPURSThreads, json_debug["maxSPURSThreads"].toString()); + // Layout fix for High Dpi layout()->setSizeConstraint(QLayout::SetFixedSize); } diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 44cf9122cb..4e3dc5f259 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -2336,6 +2336,24 @@ + + + + + 0 + 0 + + + + Maximum Number of SPURS Threads + + + + + + + +