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
Megamouse
4051988403
Qt/patches: improve value validation
2024-08-14 20:21:55 +02:00
Darkhost1999
3970b7b754
Class "llvm:StringRef" has no member 'Startswith' ( #15898 )
2024-08-08 21:40:52 +02:00
kd-11
0be1c41e63
Improve AMD CPU detection
2024-08-03 21:35:10 +03:00
kd-11
c8e81a2dad
Return zen4 for zen5+ until LLVM upgrade
2024-08-03 21:35:10 +03:00
kd-11
dd708166aa
Improve intel and apple detection
2024-08-03 21:35:10 +03:00
kd-11
3e7c1e207d
Add fallback CPU detection when llvm is not aware of the CPU model
2024-08-03 21:35:10 +03:00
Elad Ashkenazi
c5c51ec0c1
types.hpp: Add argument formatter to assert errors
2024-08-01 16:32:09 +03:00
Megamouse
7ebfe5ce69
Remove unused variable
2024-08-01 02:44:01 +02:00
Megamouse
08168c39c8
Fix std::move warning
2024-08-01 02:44:01 +02:00
Megamouse
319c533196
Silence deprecation warnings on MacOs
2024-08-01 02:44:01 +02:00
Elad Ashkenazi
faabb9e111
Add SPU usage for program dump
2024-07-28 12:36:42 +03:00
Elad Ashkenazi
b639599ade
reduce logging
2024-07-28 12:36:42 +03:00
Elad Ashkenazi
26b21ed031
LLVM: Prevent crash on disk space shortage
2024-05-30 11:41:24 +03:00
Elad Ashkenazi
c556322fc5
LLVM: Fix nullptr deref when accessing broken cache files
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
Elad Ashkenazi
7b3c9bea58
StrFmt.h: Fix throw_exception log message
2024-05-21 14:19:12 +03:00
Megamouse
25ce3880c4
Replace get_thread_class with static cast for performance reasons
2024-05-18 16:16:08 +02:00
Megamouse
ab923bc2c3
Add comment for thread_scheduler_mode::old to get_affinity_mask
2024-05-18 16:16:08 +02:00
Megamouse
dfee5b9a6c
threads: replace magic number id_type with thread_class
2024-05-18 16:16:08 +02:00
Elad Ashkenazi
302fe53704
Log SPU access violation in always-level
2024-05-14 19:36:48 +03:00
Elad Ashkenazi
7c313703a2
Savestates: Fix SPU pause from access violation handler
2024-05-14 19:36:48 +03:00
Elad Ashkenazi
91a54c11eb
Savestates: Fixup file write
2024-05-05 06:57:11 +03:00
Eladash
b83e39a540
Fix some warnings
2024-05-04 14:15:51 +03:00
Eladash
4905cd425f
Thread.cpp: Prevent repeatedly halting the debugger
2024-05-04 14:15:51 +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
b4d5b44e00
Don't create perf map files in linux unless enabled
2024-04-20 19:46:05 +02:00
oltolm
c40826c140
llvm: update to 18
2024-03-28 08:45:20 +01:00
Eladash
316b3a8851
Thread.cpp: Reduce logging
2024-03-27 19:59:22 +02:00
Eladash
213a19c9f3
Add logging for CallFromMainThread
2024-03-24 16:19:06 +02:00
Eladash
d39361705a
report_fatal_error: Minor cleanup and improvement
2024-03-06 20:32:22 +02:00
Elad.Ash
75ef154c12
SPU LLVM: Improve runtime SPU compilation preferences ( #15250 )
2024-02-28 08:28:49 +02:00
Eladash
88ba3c47c2
ELF.h: Avoid using seek operations
2024-02-16 10:42:57 +02:00
Eladash
77ba2b40e7
Thread.cpp: Explicitly state difference type in thread_ctrl::wait_for_accurate
2024-02-11 23:01:40 +02:00
Megamouse
cdfe3ee7c8
Name some threads
2024-01-31 16:33:29 +01:00
Megamouse
0d1fbfb755
VFS: Fix some potential .back() segfaults
2024-01-25 17:03:58 +01:00
pastalian
e8ad6ec673
Add missing headers ( #15075 )
...
Some systems must explicitly include these headers.
2024-01-24 17:22:37 +01:00
Steveice10
3ef48cbdd5
rpcs3qt: Add macOS support to the updater.
2024-01-24 09:44:56 +01:00
Megamouse
50fcec63e0
fs: fix get_executable_dir
2024-01-21 00:11:16 +01:00
Megamouse
8edd7d54cf
fs: fix warning. fix size argument in report_fatal_error
2024-01-20 21:59:02 +01:00
Steveice10
9c354ee269
Utilities: Add support for portable user directory. ( #15064 )
2024-01-20 10:04:25 +02:00
Megamouse
fd540f1820
Mac: silence deprecation warning
2024-01-16 22:52:57 +01:00
oltolm
0ae1578dce
split JIT.cpp and SPURecompiler.cpp
2024-01-14 17:21:39 +01:00
oltolm
2039b85be3
prepare split
2024-01-14 17:21:39 +01:00
oltolm
8eae73dd02
add comments where to split
2024-01-14 17:21:39 +01:00
Megamouse
3d974eed03
fs: move buf from stack to heap to silence VS warning
2024-01-14 06:40:35 +01:00
Megamouse
329b58c8cd
fs: remove duplicate to_utf8 function
2024-01-14 06:40:35 +01:00
RipleyTom
b6e9746198
RPCN 0.9 ( #15002 )
2024-01-05 09:43:26 +01:00
Megamouse
d03393ffe9
sys: fix games.yml hdd paths
2024-01-02 10:18:23 +01: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
59c58aa3cf
fix some warnings
2023-12-30 19:07:35 +01:00
Eladash
f696107c90
Add savestate data validity asserts
2023-12-29 11:11:53 +02:00
kd-11
6a7fb4c10c
Do not include profiling headers
2023-12-23 14:24:34 +02:00
Megamouse
b17b6e07ea
Fix warning
2023-12-20 23:33:43 +01:00
Eladash
0c410f8a14
Postpone thread launching on g_fxo->init
2023-12-19 15:34:07 +02:00
oltolm
fdcb481f07
fix Clang warnings
2023-11-29 19:02:34 +01:00
Eladash
ac19a50f5f
Rewrite global zipping buffer function
...
Take advantage of the new method, remove a method that is not recommended for use.
2023-11-28 16:46:44 +02:00
Eladash
f60bdbaece
Savestates: Compressed state files
2023-11-27 12:36:17 +02:00
Eladash
66d01b688c
Savestates: Implement initial RAM ventilation system
2023-11-10 08:45:49 +02:00
Eladash
f9d213650c
Utilities/Thread.cpp: Fix threads memory leak
2023-10-24 22:14:12 +03:00
oltolm
50df01d00e
llvm: add support for LLVM 17
2023-10-13 14:27:48 +02:00
Megamouse
76629e1b52
Qt: Allow to use .gz files in Log viewer
...
Log viewer can open .gz files
Log viewer can save log as .gz
Refactored most instances of zip and unzip code to seperate functions
2023-10-13 07:45:16 +02:00
Eladash
e79fc867c5
Patches: Add savable breakpoints patch type
2023-09-26 11:06:01 +03:00
Eladash
7a4ee286be
Rewrite Utilitis/sema.cpp
2023-09-11 15:44:33 +03:00
Eladash
b4fc43d787
PPU LLVM: Re-add multi-threaded overlay module compilation
2023-09-10 18:58:34 +03:00
Megamouse
0bb5974ab6
input: try to add tony hawk RIDE Skateboard
2023-09-05 20:41:39 +02:00
Eladash
53ba38e98d
Thread.cpp: Flush log and make thread context dump on exception
2023-09-05 06:20:57 +03:00
Megamouse
6bc7d7c698
fs::utime: fallback to 01/01/1980 00:00:00 if the date is too low
2023-09-04 10:07:23 +03:00
Eladash
66b6bae596
Win32/File.cpp: Avoid potential race in concurrent writes
...
Uninitialized data is better than overwritten data. Affects SPU Cache (unprotected writes).
2023-09-02 12:31:11 +03:00
Eladash
a9810ccb72
SPU LLVM: Another fix for Game Collection's precompilation
2023-09-02 12:31:11 +03:00
Megamouse
105c694903
Windows: update some comments and echos in git-version-gen.cmd
2023-09-02 10:39:25 +02:00
Zion Nimchuk
d4b1d5c938
Actually fix build id issue
2023-09-02 09:58:01 +02:00
oltolm
373e502501
Workaround for Clang: move bless to its own header file
2023-08-19 13:30:46 +03:00
Eladash
cd98e84ca5
Debugger/RSX: Add FP/VP hash of current shader
2023-08-19 04:21:37 +03:00
Megamouse
f199ad7a42
patches: Improve location logging for invalid note sequence
2023-08-12 14:43:47 +02:00
Megamouse
d760e66fdb
VS: Fix compilation on Visual Studio 17.7.0
2023-08-12 13:53:40 +02:00
Ivan Chikish
804665df69
Fixup futex_waitv redefinition
2023-08-03 14:32:46 +03:00
Ivan Chikish
39a0ff99b2
Fix lf_queue regression
2023-08-03 06:56:50 +03:00
Ivan Chikish
d34287b2cc
Linux: use futex_waitv syscall for atomic waiting
...
In order to make this possible, some unnecessary features were removed.
2023-08-02 21:46:06 +03:00
Ivan Chikish
831a9fe012
Remove thread pool
...
Prevents implementing thread priority on Linux.
2023-08-02 21:46:06 +03:00
Megamouse
d119cf6e96
Qt6 port
2023-07-31 20:03:24 +03:00
Eladash
1184d6aecb
Thread.cpp: Fixup SPU access violation log message
2023-07-31 11:55:31 +03:00
oltolm
bc40b61ef1
rename fs::stat to fs::get_stat
2023-07-25 12:15:08 +03:00
Eladash
95fb7859d2
Fixup patches
2023-07-24 17:07:15 +03:00
Eladash
12fe55a258
Thread.cpp: Always print SPU thread name in access violation
...
Suppress GUI log window prefix removal.
2023-07-23 17:58:54 +03:00
Eladash
9291e2777d
File.h: Implement fs::error::xdev
2023-07-21 12:27:35 +03:00
Eladash
eecadab387
Implement fs::file::get_id()
...
File descripor ID with 2 provided ways to compare between them:
1. is_mirror_of():
Test if identical:
For example: when LHS writes one byte to a file at X offset, RHS file be able to read that exact byte at X offset)
2. is_coherent_with():
Test if both files point to the same file:
For example: if a file descriptor pointing to the complete file exists and is being truncated to 0 bytes from non-
-zero size state: this has to affect both RHS and LHS files.
2023-07-17 08:09:09 +03:00
Megamouse
3381144d2e
Patches: improve location logging of some invalid nodes
2023-07-13 08:40:19 +02:00
Megamouse
a19883f875
Patches: do not allow empty patch names
2023-07-13 08:40:19 +02:00
Megamouse
02bac61c9c
Patches: validate yml patch offset values
2023-07-13 08:40:19 +02:00
Eladash
083b4f0d3b
Patches: Fix potential RPCS3 crashes due to invalid patches
2023-07-13 07:38:46 +03:00
oltolm
0c94606fcf
Make compile with msvc, clang and gcc on Windows
2023-07-11 21:40:30 +03:00
Eladash
17d8f2884e
Debug fixes
2023-07-09 13:33:03 +03:00
Eladash
554b27a82a
PPU LLVM: Implement SELF precompilation
...
Do not use PS3 memory for precompilation.
2023-06-28 18:34:33 +03:00
brian218
cf4ae38699
sys_fs: Implemented get_normalized_path()
2023-06-25 09:08:20 +02:00
Eladash
09f83e48ff
fs: Add get_parent_dir_view
...
string view version of the argument path, use with care.
2023-06-24 12:00:04 +03:00
Eladash
bcbce5dd48
File.cpp: revert get_parent_dir change
2023-06-24 12:00:04 +03:00
unknown
37bc73865d
jit: fix assertion in GDBJITRegistrationListener
2023-06-18 13:06:53 +03:00
Megamouse
a90858193e
Qt/logging: add format function for QString
2023-06-15 19:48:15 +02:00
Megamouse
635fed0427
fs/linux: fix potential copy_file issue
...
sendfile is meant to be run in a loop, since there is no guarantee that a single call copies all the data.
The current implementation may lead to corrupt files on linux.
2023-06-12 15:59:32 +03:00
Eladash
d5eebd6ab4
debugger: Fix trailing spaces in PPU register dump
2023-06-06 09:48:27 +02:00
brian218
a131a41874
Fixed a bug in fs::get_parent_dir()
2023-06-05 20:15:43 +02:00
brian218
c85775922e
sys_usbd: Implemented sys_usbd_unregister_extra_ldd()
2023-06-05 13:51:54 +03:00
brian218
6a570ae57e
sys_fs: Implemented sys_fs_mount(prot=1) read-only mounting & fixed up some operation and permission checks
2023-06-05 13:51:54 +03:00