diff --git a/rpcs3/Emu/RSX/GL/GLGSRender.cpp b/rpcs3/Emu/RSX/GL/GLGSRender.cpp index fb3f3d4137..0c2367450d 100644 --- a/rpcs3/Emu/RSX/GL/GLGSRender.cpp +++ b/rpcs3/Emu/RSX/GL/GLGSRender.cpp @@ -1061,15 +1061,18 @@ void GLGSRender::load_program(const gl::vertex_upload_info& upload_info) m_shaders_cache->store(pipeline_properties, vertex_program, fragment_program); //Notify the user with HUD notification - if (!m_custom_ui) + if (g_cfg.misc.show_shader_compilation_hint) { - //Create notification but do not draw it at this time. No need to spam flip requests - m_custom_ui = std::make_unique(); - } - else if (auto casted = dynamic_cast(m_custom_ui.get())) - { - //Probe the notification - casted->touch(); + if (!m_custom_ui) + { + //Create notification but do not draw it at this time. No need to spam flip requests + m_custom_ui = std::make_unique(); + } + else if (auto casted = dynamic_cast(m_custom_ui.get())) + { + //Probe the notification + casted->touch(); + } } } diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp index bbf5a96259..da41ae1ff4 100644 --- a/rpcs3/Emu/RSX/VK/VKGSRender.cpp +++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp @@ -2303,15 +2303,18 @@ void VKGSRender::load_program(const vk::vertex_upload_info& vertex_info) m_shaders_cache->store(properties, vertex_program, fragment_program); //Notify the user with HUD notification - if (!m_custom_ui) + if (g_cfg.misc.show_shader_compilation_hint) { - //Create notification but do not draw it at this time. No need to spam flip requests - m_custom_ui = std::make_unique(); - } - else if (auto casted = dynamic_cast(m_custom_ui.get())) - { - //Probe the notification - casted->touch(); + if (!m_custom_ui) + { + //Create notification but do not draw it at this time. No need to spam flip requests + m_custom_ui = std::make_unique(); + } + else if (auto casted = dynamic_cast(m_custom_ui.get())) + { + //Probe the notification + casted->touch(); + } } } diff --git a/rpcs3/Emu/System.h b/rpcs3/Emu/System.h index a2ff06e195..10c5c02a35 100644 --- a/rpcs3/Emu/System.h +++ b/rpcs3/Emu/System.h @@ -433,6 +433,7 @@ struct cfg_root : cfg::node cfg::_bool start_fullscreen{ this, "Start games in fullscreen mode" }; cfg::_bool show_fps_in_title{ this, "Show FPS counter in window title", true}; cfg::_bool show_trophy_popups{ this, "Show trophy popups", true}; + cfg::_bool show_shader_compilation_hint{ this, "Show shader compilation hint", true }; cfg::_bool use_native_interface{ this, "Use native user interface", true }; cfg::_int<1, 65535> gdb_server_port{this, "Port", 2345}; diff --git a/rpcs3/Json/tooltips.json b/rpcs3/Json/tooltips.json index 3eb3bb9c76..4bb9844db1 100644 --- a/rpcs3/Json/tooltips.json +++ b/rpcs3/Json/tooltips.json @@ -65,6 +65,7 @@ "showTrophyPopups": "Show trophy popups when a trophy is unlocked.", "gs_disableMouse": "Disables the activation of fullscreen mode per doubleclick while the game screen is active.\nCheck this if you want to play with mouse and keyboard (for example with UCR).", "maxLLVMThreads": "Limits the maximum number of threads used for PPU Module compilation.\nLower this in order to increase performance of other open applications.\nThe default uses all available threads.", + "showShaderCompilationHint": "Show shader compilation hints using the native overlay.", "useNativeInterface": "Enables use of native HUD within the game window that can interact with game controllers.\nWhen disabled, regular Qt dialogs are used instead.\nCurrently, only the English language is supported." } }, diff --git a/rpcs3/rpcs3qt/emu_settings.h b/rpcs3/rpcs3qt/emu_settings.h index abd72e15ea..f6212aacd0 100644 --- a/rpcs3/rpcs3qt/emu_settings.h +++ b/rpcs3/rpcs3qt/emu_settings.h @@ -88,6 +88,7 @@ public: ShowTrophyPopups, ShowWelcomeScreen, UseNativeInterface, + ShowShaderCompilationHint, // Network ConnectionStatus, @@ -240,20 +241,21 @@ private: { Move, { "Input/Output", "Move" }}, // Misc - {ExitRPCS3OnFinish, { "Miscellaneous", "Exit RPCS3 when process finishes" }}, - {StartOnBoot, { "Miscellaneous", "Automatically start games after boot" }}, - {StartGameFullscreen, { "Miscellaneous", "Start games in fullscreen mode"}}, - {ShowFPSInTitle, { "Miscellaneous", "Show FPS counter in window title"}}, - {ShowTrophyPopups, { "Miscellaneous", "Show trophy popups"}}, - {ShowWelcomeScreen, { "Miscellaneous", "Show Welcome Screen"}}, - {UseNativeInterface, { "Miscellaneous", "Use native user interface"}}, + { ExitRPCS3OnFinish, { "Miscellaneous", "Exit RPCS3 when process finishes" }}, + { StartOnBoot, { "Miscellaneous", "Automatically start games after boot" }}, + { StartGameFullscreen, { "Miscellaneous", "Start games in fullscreen mode"}}, + { ShowFPSInTitle, { "Miscellaneous", "Show FPS counter in window title"}}, + { ShowTrophyPopups, { "Miscellaneous", "Show trophy popups"}}, + { ShowWelcomeScreen, { "Miscellaneous", "Show Welcome Screen"}}, + { UseNativeInterface, { "Miscellaneous", "Use native user interface"}}, + { ShowShaderCompilationHint, { "Miscellaneous", "Show shader compilation hint"}}, // Networking - {ConnectionStatus, { "Net", "Connection status"}}, + { ConnectionStatus, { "Net", "Connection status"}}, // System - {Language, { "System", "Language"}}, - {EnableHostRoot, { "VFS", "Enable /host_root/"}}, + { Language, { "System", "Language"}}, + { EnableHostRoot, { "VFS", "Enable /host_root/"}}, // Virtual File System { emulatorLocation, { "VFS", "$(EmulatorDir)"}}, diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index d8b81f2499..f20675a466 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -730,6 +730,9 @@ settings_dialog::settings_dialog(std::shared_ptr guiSettings, std: xemu_settings->EnhanceCheckBox(ui->useNativeInterface, emu_settings::UseNativeInterface); SubscribeTooltip(ui->useNativeInterface, json_emu_misc["useNativeInterface"].toString()); + xemu_settings->EnhanceCheckBox(ui->showShaderCompilationHint, emu_settings::ShowShaderCompilationHint); + SubscribeTooltip(ui->showShaderCompilationHint, json_emu_misc["showShaderCompilationHint"].toString()); + if (game) { ui->gb_stylesheets->setEnabled(false); diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 48b081b932..051788c45a 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -6,8 +6,8 @@ 0 0 - 1011 - 775 + 816 + 570 @@ -1226,11 +1226,18 @@ - + Emulator Settings + + + + Show Welcome Screen + + + @@ -1273,9 +1280,48 @@ + + + + Show shader compilation hint + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 0 + 0 + + + + + + + + Max LLVM Compile Threads + + + + + + + + + + + + @@ -1368,108 +1414,6 @@ - - - - - - - - Max LLVM Compile Threads - - - - - - - - - - - - UI Settings - - - - - - Show Welcome Screen - - - - - - - Restore default settings - - - - - - - Save current settings - - - - - - - Open configuration folder - - - - - - - Qt::Vertical - - - QSizePolicy::MinimumExpanding - - - - 20 - 0 - - - - - - - - - - - Apply - - - - - - - - - - - - - - UI Stylesheets - - - - - - - - - Apply - - - - - - @@ -1525,6 +1469,85 @@ + + + + + + UI Stylesheets + + + + + + + + + Apply + + + + + + + + + + UI Settings + + + + + + Restore default settings + + + + + + + Save current settings + + + + + + + Open configuration folder + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 0 + 0 + + + + + + + + + + + Apply + + + + + + + +