Elad
0cc655074d
serialzation.hpp: Fix add_padding
2024-12-27 22:08:28 +02:00
Elad
b4505600c7
PPU: Notify SPUs while waiting for its own state
2024-11-30 18:06:34 +02:00
Megamouse
c3729d06d0
Qt: Replace some instances of QMap, QPair and QList
2024-11-14 20:50:33 +01:00
Elad
2222807624
RSX/GCM: Fix memory unmapping for HLE GCM
2024-11-01 10:43:46 +02:00
Elad
488814bb2d
rsx/vm: Exclude events from VM mutex
...
Fixes a deadlock from a recent pull request, perhaps also some deadlocks with locking both IDM and VM mutex.
2024-11-01 07:37:57 +02:00
Elad Ashkenazi
d0ebba6c5e
CELL: New reservation notifications mechanism
2024-08-14 11:53:00 +03:00
Elad Ashkenazi
6535d461be
Fix vm::reservation_update
2024-08-13 10:56:33 +03:00
Megamouse
dfee5b9a6c
threads: replace magic number id_type with thread_class
2024-05-18 16:16:08 +02:00
Eladash
8588b2b11a
vm: Fix writer lock leak
2024-03-27 19:59:22 +02:00
RipleyTom
7d55a85fa6
Replaces page fault triggers with assembly
2024-01-16 12:04:47 +02:00
Eladash
858e493b52
Savestates/vm: Improve saving performance
2024-01-01 11:58:00 +02:00
Eladash
c2076373e8
Utilities\BitField.h: Try to fix some warnings
...
Cleanup and make bitfield extraction u32 if possible
2024-01-01 11:58:00 +02:00
Megamouse
f45cbdd0f7
fixes
2023-12-30 21:14:26 +01:00
Megamouse
7a02787bee
fix some more warnings
2023-12-30 21:14:26 +01:00
Eladash
e14cc69441
Savestates/vm: rewrite memory saving for better compression
2023-12-29 11:11:53 +02:00
Eladash
60baa49007
sceNp/vm: Fix strings read, implement safe string reader
2023-12-12 21:23:33 +02:00
Eladash
f8ca5cdf56
vm: Minor optimization for memory serialization
2023-11-28 16:46:44 +02:00
Eladash
a0b521ba8e
Savestates: Add TAR and VM assert
2023-11-27 12:36:17 +02:00
Eladash
f60bdbaece
Savestates: Compressed state files
2023-11-27 12:36:17 +02:00
Eladash
1843a27c2a
LV2/Loader: Fix kernel regions addresses
2023-08-21 14:36:54 +03:00
Eladash
e6009794ee
vm.cpp: Fixup race in range_lock_internal
2023-08-06 08:26:17 +03:00
Eladash
9f625de51a
vm.cpp/Non-TSX: Fixup potential deadlock
2023-08-03 15:04:37 +03:00
Eladash
75ad56338b
SPU/Non-TSX: Implement cuncurrent reservations
2023-07-27 02:50:01 +03:00
oltolm
0c94606fcf
Make compile with msvc, clang and gcc on Windows
2023-07-11 21:40:30 +03:00
Megamouse
58140e1d3a
Fix some warnings
2023-05-09 07:55:46 +02:00
Nekotekina
fa74d3e88c
vm: implement lock-free try_access with range locking
2022-11-26 09:30:11 +03:00
Eladash
6a36967e6f
SPU: Inline and batch MFC list transfers
2022-10-09 19:27:46 +03:00
kd-11
0dd9c386ee
Fix running the emulator with AUDIT enabled
2022-10-03 12:57:16 +03:00
Nekotekina
b49a1f27eb
Warning fixes
2022-09-17 16:35:02 +03:00
Elad Ashkenazi
5a0a5d9ff1
vm.cpp: Fix emulation stopping on SPU access violation ( #12586 )
2022-09-01 18:23:18 +03:00
Eladash
ddba30988b
vm: Attempt to not remove cpu_flag::wait flag during access violation
2022-08-21 15:02:01 +03:00
Nekotekina
7bb2d94e53
vm: use sparse files to emulate overcommit memory
...
Fix shm::map_critical page flags.
2022-08-12 13:59:03 +03:00
Eladash
34bae90820
LV2: Move nearly all notifications out of all mutex scopes including IDM
2022-08-07 20:23:54 +03:00
Eladash
cf77bb7cfc
Savestates/MSVC: Replace bugged std::unique (compiler bug)
2022-08-03 15:35:41 +03:00
Eladash
2b3ae8b638
Revert another change
2022-07-20 18:11:52 +03:00
Eladash
314d481dcd
Savestates: Fix typo in page size setting
2022-07-08 12:57:43 +03:00
Eladash
f546e5a8ef
VM/Savestates: Replace bugged read-only block optimization
2022-07-06 19:43:25 +03:00
Eladash
b692108f1e
Savestates: HLE state saving POC in sys_lwmutex
2022-07-06 19:43:25 +03:00
Elad Ashkenazi
fcd297ffb2
Savestates Support For PS3 Emulation ( #10478 )
2022-07-04 16:02:17 +03:00
Eladash
64399d45c1
vm: Make falloc return value bool
...
Allow to check properly for the success of 0 address allocation.
2022-06-22 21:01:37 +03:00
Elad Ashkenazi
1738b38536
vm_native.cpp: Use Windows 10 memory mapping API (the correct API)
2022-06-10 14:27:02 +03:00
Nekotekina
422246825b
vm: workaround bigger native page size for 4k pages
...
Always allocate full memory block if native page size > 4k
2022-06-02 12:56:49 +03:00
Eladash
fcbeb2fa22
Remove slow vm::writer_lock usage from SPUThread.cpp
2022-05-04 23:36:57 +03:00
Nekotekina
5c1f79ab26
vm: remove g_mutex, use g_range_lock instead
...
Simplification and performance improvements.
2022-05-02 10:29:28 +03:00
Nekotekina
12c83b340d
Remove built_function
...
With today's branch prediction techniques, it's hardly useful.
2022-01-24 22:21:41 +03:00
Nekotekina
580bd2b25e
Initial Linux Aarch64 support
...
* Update asmjit dependency (aarch64 branch)
* Disable USE_DISCORD_RPC by default
* Dump some JIT objects in rpcs3 cache dir
* Add SIGILL handler for all platforms
* Fix resetting zeroing denormals in thread pool
* Refactor most v128:: utils into global gv_** functions
* Refactor PPU interpreter (incomplete), remove "precise"
* - Instruction specializations with multiple accuracy flags
* - Adjust calling convention for speed
* - Removed precise/fast setting, replaced with static
* - Started refactoring interpreters for building at runtime JIT
* (I got tired of poor compiler optimizations)
* - Expose some accuracy settings (SAT, NJ, VNAN, FPCC)
* - Add exec_bytes PPU thread variable (akin to cycle count)
* PPU LLVM: fix VCTUXS+VCTSXS instruction NaN results
* SPU interpreter: remove "precise" for now (extremely non-portable)
* - As with PPU, settings changed to static/dynamic for interpreters.
* - Precise options will be implemented later
* Fix termination after fatal error dialog
2022-01-15 06:48:04 +03:00
Eladash
50ad7ba1f6
vm: Fix vm::unmap
...
* Make vm::unmap atomic, squash the memory unmapping process inside this function while still using the same VM mutex ownership.
* Make vm::unmap not fail due to random vm::get calls, shared_ptr reference count is no longer a condition.
* Fix sys_mmapper_free_address spuriously failing with EBUSY due to random vm::get calls.
* Fix sys_vm_unmap race condition due to non-atomic vm::unmap.
* Add an optional verification block ptr arg to vm::unmap, used by patches.
2021-09-13 20:53:34 +03:00
Eladash
91fefd4671
Fix vm::try_alloc regression
2021-09-12 19:05:26 +03:00
Eladash
fafefb2cf5
Fixup No.3 after #10779
2021-09-10 11:46:39 +03:00
Eladash
b40ed5bdb7
Patches/PPU: Extend and improve patching capabilities (code allocations, jumps to any address) ( #10779 )
...
* Patches/PPU: Implement dynamic code allocation + Any-Address jump patches
Also fix deallocation path of fixed allocation patches.
2021-09-01 13:38:17 +03:00