Elad
cfeb022340
shared_ptr.hpp: Rewrite shared_ptr to single_ptr conversion
...
Logic felt non-intuitive and this method should be very explicit.
2024-12-27 22:08:28 +02:00
Elad
0cc655074d
serialzation.hpp: Fix add_padding
2024-12-27 22:08:28 +02:00
Elad
4d0c835df3
util/shared_ptr.hpp: STX pointers library fixes
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
Megamouse
cf0b4d4ed4
cellGem: split status_flags into calibration flags and runtime flags
2024-12-20 17:30:25 +01:00
capriots
9d4ff13c2b
cellAdec implementation part 2: LPCM decoder ( #16381 )
...
* cellAdec: savestate fixup
* simd.hpp: add some intrinsics
* cellAdec implementation part 2: LPCM decoder
* cellAdec: set to HLE by default
* cellAdec: review fixes
---------
Co-authored-by: Elad <18193363+elad335@users.noreply.github.com>
2024-12-18 20:21:56 +02:00
Megamouse
657ab4261c
Fix some static analysis warnings
2024-12-17 20:46:07 +01:00
Elad
191e132c6c
util/types.hpp: Rewrite narrow<>
2024-11-27 16:00:40 +02:00
Elad
05096854bc
Update vm_native.cpp
2024-11-16 13:53:25 +02:00
Elad
1475625705
Implement lf_array::for_each
2024-11-16 12:22:23 +02:00
Elad
e7faec6b0e
util/vm_native.cpp: Fix memory leak
2024-11-15 14:00:30 +02:00
oltolm
2b0f786b2d
Fix std::basic_string warnings ( #16261 )
2024-11-11 21:54:44 +02:00
Elad
85d1649696
utils/atomic.hpp: Make atomic_op reject non-non-const lvalue
2024-11-02 21:43:35 +02:00
Elad
1417f9b7de
utils/atomic.cpp: Fixup utils::get_unique_tsc()
...
It was reading s_min_tsc again inside the atomic operation.
Also optimize it a bit.
2024-11-02 21:43:35 +02:00
Elad
edfe940543
utils/sysinfo.cpp: Yield CPU time when measuring TSC freq
2024-10-30 10:06:49 +02:00
elad335
97f2b6b701
Fix get_system_time()
2024-10-29 19:26:33 +02:00
elad335
a325eb52bd
Compilation hotfix
2024-10-25 13:21:49 +03:00
elad335
84217917d5
utils/sysinfo.cpp: New TSC calibration technique
2024-10-25 10:00:21 +03:00
elad335
c70c08bb07
utils: Make get_tsc_freq() inlined and non-blocking
2024-10-24 21:03:06 +03:00
elad335
a9a454faf7
asm: Fix utils::rational_mul optimization
2024-10-24 21:03:06 +03:00
elad335
8d9911e383
Implement u64_x_u64_=_u128 optimization
2024-10-24 21:03:06 +03:00
Megamouse
d4ce5b86ec
Improve log file creation error message
...
Early out in file_writer ctor instead of large if else
2024-10-14 21:29:51 +02:00
kd-11
92c1a8c45d
sysinfo/arm64: Improve code around registry access and document the fields
2024-09-08 17:41:29 +03:00
kd-11
d19d0cb70d
windows/arm64: Implement fallback OS version detection
2024-09-08 17:41:29 +03:00
kd-11
a60eab6e36
aarch64: Fix compilation for windows-on-arm
2024-09-04 07:49:49 +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
f5173ca9bf
aarch64 - Decode CPU brand information
2024-08-24 02:07:00 +03:00
Elad Ashkenazi
d6acdc77e0
Debugger/SPU: Implement SPU Disassembler
2024-08-21 13:32:45 +03:00
kd-11
c2f5de1c55
Fix compiler warnings about unused args for aarch64
2024-08-20 05:18:53 +03:00
Megamouse
db102a5237
Qt/patches: uze const ref for YAML::Node params
2024-08-14 20:21:55 +02:00
kd-11
52c8b1ecbb
Silence compiler noise on non-x86 architectures
2024-08-08 13:40:07 +03:00
Elad Ashkenazi
70502a698e
types.hpp: Format C arrays too for assert errors
2024-08-02 14:11:05 +03:00
Megamouse
e58ce626d5
Video Encode: do not set the frame_number
...
Fixes a deprecation warning, and it is supposed to be set by ffmpeg anyway.
2024-08-01 18:04:47 +02:00
Elad Ashkenazi
c5c51ec0c1
types.hpp: Add argument formatter to assert errors
2024-08-01 16:32:09 +03:00
Elad Ashkenazi
c71edc0719
Remove check_state() inside thread notifiatios
...
This was a flawed concept due to risk of deadlocks.
Worst case some we will focus o performanc regressins indvidually as we should and not accept this bug.
2024-06-29 14:02:12 +03:00
Elad Ashkenazi
26b21ed031
LLVM: Prevent crash on disk space shortage
2024-05-30 11:41:24 +03:00
Elad Ashkenazi
a2dcbb9c13
Replace src_loc with std::soource_location
2024-05-21 14:19:12 +03:00
Megamouse
99eb84c104
Fix some warnings
2024-05-18 16:16:08 +02:00
Elad Ashkenazi
6bceebbb1a
CMake fixes
...
Thanks to @RipleyTom
Co-Authored-By: RipleyTom <RipleyTom@users.noreply.github.com>
2024-05-14 19:36:48 +03:00
Elad Ashkenazi
66008d5ca4
Savestates: Multi-threaded compression, use ZSTD
2024-05-14 19:36:48 +03:00
RipleyTom
a50683d6ca
sys_net improvements ( #15584 )
...
Also remove redundant ensures
2024-05-13 05:35:08 +03:00
Eladash
b55f38290b
Win32: Fix deadlock on std::cerr usage
2024-05-04 14:15:51 +03:00
Elad Ashkenazi
90b6912daa
Compile AUDIT on release builds
...
In Release, compile the code in constexpr-disabled context. this way it does not risk generating actual code but still compiles.
2024-04-23 17:24:22 +03:00
oltolm
862727e9bf
simplify template code like std::invoke_result<T>::type
2024-04-21 18:15:17 +03:00
oltolm
9e9a3262eb
simplify template code like std::is_same<T>::value
2024-04-21 18:15:17 +03:00
Megamouse
16f006362e
Move freopen to console.h
2024-04-20 17:23:10 +03:00
Eladash
fba1db29b3
Savestates: Fixup
2024-04-13 20:14:49 +03:00
oltolm
ac034040ce
workaround Clang 18.1 crash
2024-03-28 08:45:20 +01:00
oltolm
c40826c140
llvm: update to 18
2024-03-28 08:45:20 +01:00