rpcsx/rpcs3/Emu/RSX/Overlays
Elad 575a245f8d
IDM: Implement lock-free smart pointers (#16403)
Replaces `std::shared_pointer` with `stx::atomic_ptr` and `stx::shared_ptr`.

Notes to programmers:

* This pr kills the use of `dynamic_cast`, `std::dynamic_pointer_cast` and `std::weak_ptr` on IDM objects, possible replacement is to save the object ID on the base object, then use idm::check/get_unlocked to the destination type via the saved ID which may be null. Null pointer check is how you can tell type mismatch (as dynamic cast) or object destruction (as weak_ptr locking).
* Double-inheritance on IDM objects should be used with care, `stx::shared_ptr` does not support constant-evaluated pointer offsetting to parent/child type.
* `idm::check/get_unlocked` can now be used anywhere.

Misc fixes:
* Fixes some segfaults with RPCN with interaction with IDM.
* Fix deadlocks in access violation handler due locking recursion.
* Fixes race condition in process exit-spawn on memory containers read.
* Fix bug that theoretically can prevent RPCS3 from booting - fix `id_manager::typeinfo` comparison to compare members instead of `memcmp` which can fail spuriously on padding bytes.
* Ensure all IDM inherited types of base, either has `id_base` or `id_type` defined locally, this allows to make getters such as `idm::get_unlocked<lv2_socket, lv2_socket_raw>()` which were broken before. (requires save-states invalidation)
* Removes broken operator[] overload of `stx::shared_ptr` and `stx::single_ptr` for non-array types.
2024-12-22 20:59:48 +02:00
..
FriendsList overlays: add friends list to home menu 2024-10-06 09:57:20 +02:00
HomeMenu cellGem: Split horizontal and vertical mouse rotation cone setting 2024-12-19 16:55:39 +01:00
Network IDM: Implement lock-free smart pointers (#16403) 2024-12-22 20:59:48 +02:00
Shaders cellMsgDialog: only abort dialogs that were actually spawned by cellMsgDialog 2024-09-20 20:43:57 +02:00
overlay_animated_icon.cpp Replace rsx::uclock with get_system_time() 2024-10-29 19:26:33 +02:00
overlay_animated_icon.h rsx/overlays: Make animation caching possible 2023-02-03 09:13:27 +03:00
overlay_animation.cpp overlays: use timestamp for fade animations 2024-01-31 16:33:29 +01:00
overlay_animation.h overlays: use timestamp for fade animations 2024-01-31 16:33:29 +01:00
overlay_compile_notification.cpp cellSaveData: Add autosave indicator (#15720) 2024-11-04 21:53:34 +01:00
overlay_compile_notification.h PPU Progress Hint: Show it as long as it needs 2024-05-30 11:41:24 +03:00
overlay_controls.cpp overlays: add friends list to home menu 2024-10-06 09:57:20 +02:00
overlay_controls.h overlays: use signed short for position to allow negative positions 2024-02-14 00:12:55 +01:00
overlay_cursor.cpp overlays: use signed short for position to allow negative positions 2024-02-14 00:12:55 +01:00
overlay_cursor.h overlays: use signed short for position to allow negative positions 2024-02-14 00:12:55 +01:00
overlay_debug_overlay.cpp cellPad: draw debug overlay for basic input debugging of port 0 2024-09-06 08:33:55 +02:00
overlay_debug_overlay.h overlays: move debug overlay to native overlay 2023-12-20 23:33:43 +01:00
overlay_edit_text.cpp overlays: implement osk delete action 2022-10-29 22:56:08 +02:00
overlay_edit_text.hpp overlays: implement native recvmessage dialog 2024-01-31 16:33:29 +01:00
overlay_fonts.cpp Get the font directory from Windows (#13825) 2023-05-13 20:58:59 +02:00
overlay_fonts.h Get the font directory from Windows (#13825) 2023-05-13 20:58:59 +02:00
overlay_list_view.cpp overlays: implement native sendmessage dialog 2024-01-31 16:33:29 +01:00
overlay_list_view.hpp overlays: implement native sendmessage dialog 2024-01-31 16:33:29 +01:00
overlay_loading_icon.hpp rsx/overlays: Make animation caching possible 2023-02-03 09:13:27 +03:00
overlay_manager.cpp rsx: Make overlay manager default lock-state exclusive 2024-03-28 08:08:21 +01:00
overlay_manager.h IDM: Implement lock-free smart pointers (#16403) 2024-12-22 20:59:48 +02:00
overlay_media_list_dialog.cpp overlays: decrease log level 2024-01-10 22:34:13 +01:00
overlay_media_list_dialog.h overlays: do not play sounds on fast auto repeat 2023-05-20 18:27:26 +02:00
overlay_message.cpp Qt: Replace QMap with std::map 2024-11-06 09:34:32 +01:00
overlay_message.h Qt: Replace QMap with std::map 2024-11-06 09:34:32 +01:00
overlay_message_dialog.cpp cellMsgDialog: only abort dialogs that were actually spawned by cellMsgDialog 2024-09-20 20:43:57 +02:00
overlay_message_dialog.h cellMsgDialog: only abort dialogs that were actually spawned by cellMsgDialog 2024-09-20 20:43:57 +02:00
overlay_osk.cpp osk: use cell key code in CellOskDialogKeyMessage (🤦 we don't need the Qt code) 2024-05-26 08:32:32 +02:00
overlay_osk.h overlays: use signed short for position to allow negative positions 2024-02-14 00:12:55 +01:00
overlay_osk_panel.cpp Random stuff (#9589) 2021-01-12 12:59:50 +03:00
overlay_osk_panel.h overlays/osk: implement scaling 2023-01-20 23:41:56 +01:00
overlay_perf_metrics.cpp overlays: use signed short for position to allow negative positions 2024-02-14 00:12:55 +01:00
overlay_perf_metrics.h overlays: use timestamp for fade animations 2024-01-31 16:33:29 +01:00
overlay_progress_bar.cpp overlays: use signed short for position to allow negative positions 2024-02-14 00:12:55 +01:00
overlay_progress_bar.hpp overlays: use signed short for position to allow negative positions 2024-02-14 00:12:55 +01:00
overlay_save_dialog.cpp cellSaveData: improve logging for overlays 2024-09-20 20:43:57 +02:00
overlay_save_dialog.h overlays: use timestamp for fade animations 2024-01-31 16:33:29 +01:00
overlay_trophy_notification.cpp overlays: use signed short for position to allow negative positions 2024-02-14 00:12:55 +01:00
overlay_trophy_notification.h overlays: use timestamp for fade animations 2024-01-31 16:33:29 +01:00
overlay_user_list_dialog.cpp overlays: clean up includes 2024-01-31 16:33:29 +01:00
overlay_user_list_dialog.h overlays: use timestamp for fade animations 2024-01-31 16:33:29 +01:00
overlay_utils.cpp overlays: fix some warnings, simplify code, use move and references 2023-08-23 21:42:59 +02:00
overlay_utils.h overlays: properly calculate offsets for wrapped text 2022-07-14 23:32:20 +02:00
overlays.cpp Replace rsx::uclock with get_system_time() 2024-10-29 19:26:33 +02:00
overlays.h overlays: use timestamp for fade animations 2024-01-31 16:33:29 +01:00