From 4cb260c5553c05eab6ef9ea481687bc0fcde7399 Mon Sep 17 00:00:00 2001 From: Megamouse Date: Thu, 3 Sep 2026 02:09:30 +0200 Subject: [PATCH] Add lock to handle_button_press We don't want to change UI elements while we are compiling. --- .../Overlays/BigPicture/overlay_big_picture_game_grid.cpp | 6 ++++-- .../RSX/Overlays/BigPicture/overlay_big_picture_game_grid.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/rpcs3/Emu/RSX/Overlays/BigPicture/overlay_big_picture_game_grid.cpp b/rpcs3/Emu/RSX/Overlays/BigPicture/overlay_big_picture_game_grid.cpp index cf8c8193d4..e491272527 100644 --- a/rpcs3/Emu/RSX/Overlays/BigPicture/overlay_big_picture_game_grid.cpp +++ b/rpcs3/Emu/RSX/Overlays/BigPicture/overlay_big_picture_game_grid.cpp @@ -161,7 +161,7 @@ namespace rsx void big_picture_game_grid::finish_reload(std::vector>&& tiles) { - std::lock_guard lock(m_reload_mutex); + std::lock_guard lock(m_mutex); if (thread_ctrl::state() == thread_state::aborting) { @@ -280,6 +280,8 @@ namespace rsx page_navigation big_picture_game_grid::handle_button_press(pad_button button_press, bool is_auto_repeat, u64 auto_repeat_interval_ms) { + std::lock_guard lock(m_mutex); + if (m_loading) return page_navigation::stay; const bool do_play_sound = !is_auto_repeat || auto_repeat_interval_ms >= user_interface::m_auto_repeat_ms_interval_default; @@ -384,7 +386,7 @@ namespace rsx compiled_resource& big_picture_game_grid::get_compiled() { - std::lock_guard lock(m_reload_mutex); + std::lock_guard lock(m_mutex); if (!m_highlight->is_compiled() || (!m_tiles.empty() && m_grid && !m_grid->is_compiled()) || diff --git a/rpcs3/Emu/RSX/Overlays/BigPicture/overlay_big_picture_game_grid.h b/rpcs3/Emu/RSX/Overlays/BigPicture/overlay_big_picture_game_grid.h index 6a95965a6d..40f6a1a243 100644 --- a/rpcs3/Emu/RSX/Overlays/BigPicture/overlay_big_picture_game_grid.h +++ b/rpcs3/Emu/RSX/Overlays/BigPicture/overlay_big_picture_game_grid.h @@ -52,7 +52,7 @@ namespace rsx static constexpr u16 m_columns = 5; static constexpr u16 m_tile_size = 200; - std::mutex m_reload_mutex; + std::mutex m_mutex; std::unique_ptr>> m_game_enumeration_thread; game_enumeration m_game_enumeration;