1725 Commits

Author SHA1 Message Date
Elad
c6f3737c2a PPU LLVM: Fixup patches enlisting in analyzer 2025-01-07 20:42:45 +02:00
Elad
0b784ff2c1 PPU LLVM: Function table dependent resolver hashing 2025-01-07 15:43:41 +02:00
Megamouse
99f1f4c22a cheats: add float32 gui support 2025-01-06 10:48:00 +01:00
Elad
6165c2d8b3 Thread.h: Fix a bug by adding thread_state::destroying_context 2025-01-05 10:01:35 +02:00
Elad
0cc655074d serialzation.hpp: Fix add_padding 2024-12-27 22:08:28 +02:00
Elad
98a0c76a08 StrFmt.cpp: Make function printing shorter 2024-12-24 21:31:57 +02:00
Elad
6a4b9430c0 Thread.h: Add a few noexcept 2024-12-24 21:31:57 +02:00
Elad
3bf735161f sys_config: Move cleanup to IDM abort 2024-12-24 21:31:57 +02:00
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
926de68a79 Debugger: Dump related thread information on crash 2024-11-28 13:32:52 +02:00
Elad
2b9f076024 fs: Minor fix of fs::dir::open
Did not close previous handle on fs::dir::open like on fs::file
2024-11-28 05:47:40 +02:00
Elad
378a69ea85 Qt: Deprecate processEvents() part 2 2024-11-27 16:00:40 +02:00
Elad
cc86e01df9 lockless.h: Fox 2024-11-18 18:45:34 +02:00
Elad
1dfee5fbfa lockless.h: Fixup addressing 2024-11-18 18:45:34 +02:00
Elad
21f65f087d lockless.h: Fixup lf_array assert 2024-11-18 18:45:34 +02:00
Megamouse
29901d65ed More constexpr 2024-11-16 15:10:20 +01:00
Megamouse
0bb83ed5e9 Fix warning 2024-11-16 15:10:20 +01:00
Elad
68d74bc28a Progress Dialog: Fix recursion and concurrency use of text updates 2024-11-16 12:22:23 +02:00
Elad
1475625705 Implement lf_array::for_each 2024-11-16 12:22:23 +02:00
Elad
935e83a490 Utilities\lockless.h: Flatten recusrion in lf_array
Add assert for sane index access.
2024-11-16 12:22:23 +02:00
Megamouse
070add461f overlays: get localized values in home menu settings 2024-11-15 09:48:12 +01:00
oltolm
2b0f786b2d
Fix std::basic_string warnings (#16261) 2024-11-11 21:54:44 +02:00
Megamouse
2262ac1684 Qt: Replace QMap with std::map
This should reduce the amount of string conversions during list refreshes
2024-11-06 09:34:32 +01:00
Elad
b053b1e200 Another attempt to fix fs::pending_file for hardlinks 2024-11-02 21:43:35 +02:00
Elad
d3c0ec5651 Print last system error on fs::error::unknown 2024-11-02 21:43:35 +02:00
Elad
4206b022b6 Win32/File.cpp: Use ReplaceFile for hardlink overwrite 2024-11-01 07:37:57 +02:00
elad335
8b8396b945 Filesystem/Win32: Recreate hardlinks on fs::pending_file 2024-10-29 19:26:33 +02:00
RipleyTom
36da83592a Improve AMD cpu detection 2024-10-07 05:36:19 +02:00
kd-11
82f97d33d1 aarch64: Correctly implement the null function trap 2024-09-25 15:48:36 +03:00
kd-11
31ce32709e build: Disble fixed base for windows-on-arm 2024-09-08 17:41:29 +03:00
kd-11
4f27af9949 Fix compilation warning 2024-09-08 17:41:29 +03:00
kd-11
7e3b8b5cdb c++-ify empty return 2024-09-04 07:49:49 +03:00
kd-11
a60eab6e36 aarch64: Fix compilation for windows-on-arm 2024-09-04 07:49:49 +03:00
kd-11
c80342e8d4 aarch64: Support calloc patch blocks 2024-08-31 13:55:58 +03:00
kd-11
4d193ecb6a Block parallel JIT allocation on macos 2024-08-29 13:08:23 +03:00
kd-11
ce9024efc5 Fix overlapping addresses returned by mmap 2024-08-29 13:08:23 +03:00
kd-11
23788b04c6 Restore comment 2024-08-29 13:08:23 +03:00
kd-11
c0e577c4dc Allow overcommit on macos 2024-08-29 13:08:23 +03:00
kd-11
56d35bf409 Fix crash in JIT when compiling LLVM blocks 2024-08-25 22:04:45 +03:00
kd-11
4f97ea8da7 macos - Fix crash when running native arm64 LLVM 2024-08-25 22:04:45 +03:00
kd-11
470f8674df aarch64 - Support for apple exceptions 2024-08-24 14:13:14 +03:00
kd-11
4bb79b6c31 Rework aarch64 signal handling 2024-08-21 16:16:28 +03:00
kd-11
3ea24183b9 Improve "write" instruction detection. 2024-08-20 05:18:53 +03:00
kd-11
c2f5de1c55 Fix compiler warnings about unused args for aarch64 2024-08-20 05:18:53 +03:00
Elad Ashkenazi
1bd4565186 Implement thread_ctrl::wait_until() 2024-08-17 06:38:49 +03:00
Megamouse
456ff10f02 Qt/patches: don't allow duplicate app versions 2024-08-15 09:35:58 +02:00
Megamouse
8371c445ce Qt/patches: check if app version is 5 characters long and like 01.00 2024-08-15 09:35:58 +02:00
Megamouse
93424d1adc Qt/patches: check if serial is 9 characters long and alphanumeric 2024-08-15 09:35:58 +02:00
Megamouse
d05d803f5e patches: use more std::move 2024-08-15 09:35:58 +02:00
Megamouse
76c0df849a patches: improve error logging: add file paths to all errors 2024-08-14 20:21:55 +02:00