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
Elad
b4505600c7
PPU: Notify SPUs while waiting for its own state
2024-11-30 18:06:34 +02:00
Elad
a4ea71d18f
CELL: Rewrite reservation notification postponing
2024-11-30 18:06:34 +02:00
Elad
68d74bc28a
Progress Dialog: Fix recursion and concurrency use of text updates
2024-11-16 12:22:23 +02:00
Megamouse
7866dc2e34
overlays: localize RPCS3 progress dialog
2024-11-15 09:48:12 +01:00
kd-11
be0ef0cc28
macos - Fix crash executing resolver
2024-08-24 14:13:14 +03:00
kd-11
c2f5de1c55
Fix compiler warnings about unused args for aarch64
2024-08-20 05:18:53 +03:00
Elad Ashkenazi
46ceeed10d
Debugger/PPU: Minor bugfix in CR register dump
2024-08-15 14:05:25 +03:00
Elad Ashkenazi
d0ebba6c5e
CELL: New reservation notifications mechanism
2024-08-14 11:53:00 +03:00
kd-11
1200bbe7cc
Address review comments
2024-08-08 13:40:07 +03:00
kd-11
839a25e129
Bump scratch to 8k
2024-08-08 13:40:07 +03:00
kd-11
cba658baba
Complete PPU support
2024-08-08 13:40:07 +03:00
kd-11
34549445a8
Migrate PPU to post-process execution model
2024-08-08 13:40:07 +03:00
kd-11
56cc5d9355
Initial PPU LLVM implementation for aarch64
2024-08-08 13:40:07 +03:00
Elad Ashkenazi
33851d51ab
Fixup and Improve CELL reservation notifications
2024-07-01 18:59:26 +03:00
Elad Ashkenazi
f948a80242
CELL: More efficient reservation notificatins
2024-06-30 07:46:14 +03:00
Elad Ashkenazi
87f5368d3c
PPU: Fix access violation on logging
2024-06-23 19:29:13 +03:00
Elad Ashkenazi
0b22423ab8
Minor fs::file usage fixes
...
Do not crash on file creation failure. Make some config writes atomic.
2024-06-10 13:45:23 +03:00
Elad Ashkenazi
6fff22391c
PPU Analyzer: Utilize exported functions
2024-06-08 14:09:37 +03:00
Elad Ashkenazi
26b21ed031
LLVM: Prevent crash on disk space shortage
2024-05-30 11:41:24 +03:00
Eladash
f9345c7699
SPU LLVM: PUTLLC 16 Optimization
...
Also, do not check LR event if already raised in PUTLLC
2024-05-21 16:37:54 +03:00
Megamouse
04d6ff274b
Move cache dir code to utils
2024-05-07 08:47:29 +02:00
Megamouse
c11c286206
Adust vsh cache dir criteria
2024-05-07 08:47:29 +02:00
Megamouse
f418ad74f5
VSH: move cache to /cache/vsh/
2024-05-07 08:47:29 +02:00
Megamouse
dff7352e2e
llvm: silence warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
2024-04-20 01:38:11 +02:00
Eladash
7bf8917c08
PPU LLVM: Fix crash in Unity games
2024-04-19 20:51:37 +03:00
Eladash
103b2fe5fd
PPU/reservations: send thread notification only if data changed
2024-04-12 09:58:30 +03:00
Eladash
597a9f6dd6
PPU Loader: Fix unload of HLEd PRX modules
2024-04-01 12:20:38 +03:00
Eladash
e90b399329
PPU LLVM: Fix leak of modules outside dev_flash/sys/internal
...
Cache path was not matching on removal
2024-03-30 21:58:26 +03:00
Eladash
e38b005a8b
PPU LLVM: Unify memory limit for PRX and Overlay files
2024-03-30 21:58:26 +03:00
Eladash
f0abb4473e
PPU LLVM: Fix memory leak on precompilation
2024-03-30 21:58:26 +03:00
oltolm
d62e90f5b4
use the pass manager instead of the legacy one
2024-03-30 05:06:29 +03:00
Eladash
cc2fa94fa1
PPU: Fix logging of sys_interrupt syscalls
2024-03-28 16:24:47 +02:00
Eladash
6a1fa88e15
PPU: Fixup savestate prio bit usage
2024-03-27 19:59:22 +02:00
Eladash
7468d96c51
Savestates: safe saving while cellSaveData is active
2024-03-27 19:59:22 +02:00
Eladash
750359d780
Fixup emulation stopping
2024-03-27 19:59:22 +02:00
Eladash
8588b2b11a
vm: Fix writer lock leak
2024-03-27 19:59:22 +02:00
Eladash
68349e48cd
Savestates: Save PPU running order
2024-03-26 21:35:53 +02:00
Elad Ashkenazi
29ad568791
Fix ppu_thread::serialize_common
2024-03-25 12:05:24 +02:00
Elad.Ash
e32ed90d21
PPU LLVM: Remove one external symbol resolve for BLR
2024-03-21 15:56:31 +02:00
Eladash
2f822abb47
PPU LLVM: Use symbol resolver function to resolve functions
2024-03-20 12:48:31 +02:00
Eladash
f47c7e0ef1
PPU LLVM: Relax MSELF entry name constraints
...
These names are a hint
2024-02-16 10:42:57 +02:00
Eladash
f943deb2c3
PPU LLVM: Do not use possible duplicates in MSELF
2024-02-16 10:42:57 +02:00
Eladash
85884d14cd
PPU LLVM: Add more MSELF file checks
...
Do not crash on invalid files.
2024-02-16 10:42:57 +02:00
Megamouse
7a02787bee
fix some more warnings
2023-12-30 21:14:26 +01:00
Megamouse
59c58aa3cf
fix some warnings
2023-12-30 19:07:35 +01:00
Eladash
69ef9c8a6a
PPU/sys_dbg: Implement self-modifying code
2023-12-03 12:57:21 +02:00
Eladash
d449420a45
PPU Progress Dialog: Add "Applying PPU Code" stage
2023-11-28 21:18:18 +02:00
Eladash
0416f6361c
Fix file_view::read_at and file_view::get_stat
2023-11-28 16:46:44 +02:00
Eladash
5dbeb68ed2
Savestates: Fix optional_savestate_state use
2023-11-27 12:36:17 +02:00