diff --git a/rpcs3/Emu/RSX/Overlays/overlay_tabs.cpp b/rpcs3/Emu/RSX/Overlays/overlay_tabs.cpp index 28de380b80..95ecf1d816 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_tabs.cpp +++ b/rpcs3/Emu/RSX/Overlays/overlay_tabs.cpp @@ -82,6 +82,8 @@ namespace rsx::overlays void tabbed_container::reflow_layout() { + std::lock_guard lock(m_mutex); + if (m_headers_width > w) { // Invalid config @@ -140,6 +142,8 @@ namespace rsx::overlays compiled_resource& tabbed_container::get_compiled() { + std::lock_guard lock(m_mutex); + // NOTE: Caching is difficult as the subviews are themselves dynamic. // Doable but not worth the effort compiled_resources.clear(); diff --git a/rpcs3/Emu/RSX/Overlays/overlay_tabs.h b/rpcs3/Emu/RSX/Overlays/overlay_tabs.h index 4386fd3d99..94529f08b7 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_tabs.h +++ b/rpcs3/Emu/RSX/Overlays/overlay_tabs.h @@ -49,6 +49,8 @@ namespace rsx::overlays u16 m_headers_width = 0; u32 m_selected_idx = umax; bool m_is_in_tab_selection_mode = true; + + std::mutex m_mutex; }; }