1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-22 02:32:36 +01:00
Commit Graph

1451 Commits

Author SHA1 Message Date
Megamouse
0aa1aff6ba StrFmt: fix comma placement in format_byte_array 2021-07-27 11:37:07 +02:00
Eladash
98e40d12ef sys_ppu: Implement sys_ppu_thread_rename 2021-07-19 12:37:33 +02:00
Eladash
70a3c5d440 Fixup byte array formatter 2021-07-17 20:02:21 +02:00
Eladash
1e9afdc289 Formatting Library: Implement byte arrays formatting 2021-07-17 18:10:43 +02:00
Eladash
66368debf8 Win32 FS: Implement support for large reads/writes 2021-07-16 18:48:20 +03:00
Nekotekina
5dfa908835 fmt: add support for std::u8string 2021-07-15 17:07:41 +03:00
Nekotekina
ea0c559bc3 fmt: implement char8_t string support 2021-07-15 17:07:41 +03:00
Eladash
0aed00a758
Improve thread aborting mechanism (#10490)
Call pseudo-virtual operator=(thread_state) of thread context.
2021-06-27 11:43:48 +03:00
Megamouse
2c2003aa5b move try_to_int64 to StrUtil 2021-06-25 09:41:32 +03:00
Nekotekina
3c614d95b8 fs: alternative fs::pending_file implementation (Win32)
Use MOVEFILE_WRITE_THROUGH instead of sync() on commit().
2021-06-20 22:08:24 +03:00
Nekotekina
696be6aacd Implement fmt::ensure (assert-like with formatted message) + fmt::tie
Arguments should be provided via fmt::tie() due to some limitations.
Allow to specify simple message (non-formatting) for plain ::ensure().
Remove redundant function for narrow error.
2021-06-10 21:16:57 +03:00
Eladash
4f76211551 Hotfix #10411 2021-06-08 20:12:32 +03:00
Eladash
76bf720adf Improve emulation stopping speed
Split phases of signalling threads and joining them.
2021-06-08 18:26:14 +03:00
Ani
a49446c9e9
Replace gsl::span for std::span (c++20) (#7531)
* Replace gsl::span for std::span (c++20)
* Replace gsl::byte with std::byte

Co-authored-by: Bevan Weiss <bevan.weiss@gmail.com>
2021-05-30 17:10:46 +03:00
Nekotekina
160b131de3 types.hpp: implement smin, smax, amin, amax
Rewritten the following global utility constants:
`umax` returns max number, restricted to unsigned.
`smax` returns max signed number, restricted to integrals.
`smin` returns min signed number, restricted to signed.
`amin` returns smin or zero, less restricted.
`amax` returns smax or umax, less restricted.

Fix operators == and <=> for synthesized rel-ops.
2021-05-22 12:10:57 +03:00
Eladash
638f20c80f Improve get_current_cpu_thread() 2021-05-20 09:25:51 +03:00
Nekotekina
1d0f6eebdc Improve error_code (new formatting constructor)
Minor cleanup in formatting utilities.
2021-05-19 22:41:16 +03:00
Nekotekina
d3b0a3dc46 bs_t<>: add all_of() and none_of()
Convenience functions.
2021-05-18 21:40:59 +03:00
Paul
4e12e70929
Add Intel's Rocket Lake 11th gen cpu. (#10205)
This does nothing but may be required later.
2021-05-13 11:34:37 +03:00
Eladash
f7b845d49c fs: Optimize filesystem handle reconstruction 2021-05-12 12:12:34 +03:00
David Carlier
b09970f159 couple of warning build fixes 2021-05-09 09:25:40 +02:00
Nekotekina
e24ada37bf fs: implement fs::get_temp_dir() (Win32)
Trying to workaround issues with sparse files (#10231)
2021-05-05 19:38:36 +03:00
Eladash
daa53b77cf Simplify named_thread construction 2021-05-01 18:08:03 +03:00
Megamouse
5720a32bc5 save-overlays: change list entry contents.
There's no need to tell the user that the entry is for game xy, they are already playing that game.
On a real PS3 only the subtitle and the date are displayed.
2021-04-30 00:30:26 +02:00
Nekotekina
f8e05f8e3c Remove redundant operators != 2021-04-29 22:57:40 +03:00
Nekotekina
5724d2d4c7 Simplify umax
Add operator less and conversion operator.
2021-04-29 12:21:12 +03:00
Nekotekina
b5e9f09972 fmt: support numeric u128 formatting 2021-04-25 18:17:38 +03:00
Nekotekina
61450335a5 named_thread: use concepts, improve constructors
Better default thread name detection.
2021-04-21 17:19:53 +03:00
Nekotekina
0c9c481cee Use requires syntax in more places
Change style in some places.
2021-04-19 16:51:40 +03:00
David Carlier
b6732fbae9 MacOs build fix proposal.
Made on Big Sur, removing few unnecessary old specifics.
Build with LLVM homebrew.
2021-04-18 17:18:09 +03:00
Nekotekina
fb26da1cb0 bs_t<>: create BitSetEnum concept
Try concepts instead of SFINAE.
2021-04-17 19:23:19 +03:00
Nekotekina
9d4fcbf946 bs_t<>: fix/cleanup some operators 2021-04-17 15:54:33 +03:00
Eladash
67e2e154fa Replace simple_type with std::common_type 2021-04-17 10:27:55 +03:00
Nekotekina
a211895e28 shared_ptr.hpp: use for fs::virtual_device
Add new constructors for single_ptr and shared_ptr.
Change virtual device prefix format.
2021-04-15 17:26:47 +03:00
p01arst0rm
c9d2aed286 small collection of fixes 2021-04-15 11:05:15 +03:00
p01arst0rm
1de7ac3c67 added inline suggestion to patch_engine_version to prevent duplicate includes 2021-04-13 09:14:53 +03:00
Megamouse
a16d8ba3ea More random changes 2021-04-11 14:01:51 +03:00
Eladash
56d34e0e80 Enforce backslash at the end of emulated drives paths 2021-04-10 23:51:49 +03:00
Eladash
11824b3916 Win32 FS: Improve fs::create_dir 2021-04-10 23:51:49 +03:00
Eladash
49c5ce30cc Emulation: Fix boot path resolving
* Fix /dev_flash executables path arg. (/host_root is wrong for it)
* Fix usage of /host_root for homebrew applications when it is not mounted, use /app_home.
* Fix path source detection. (don't get fooled by path slashes repetitions, symlinks, '.', ".." and ('\' on Windows))
* Unescape tail of /dev_hdd0 paths.
2021-04-08 23:57:00 +03:00
Nekotekina
95725bf7fc Add -Werror=missing-noreturn (GCC, clang)
May be useful to diagnose functions which fail assertions unconditionally.
2021-04-08 10:29:47 +03:00
Nekotekina
963d150e93 Fix some -Weffc++ warnings (part 2) 2021-04-03 21:54:15 +03:00
Eladash
73320d4180 Output all fatal log messages to Console/debugger as well 2021-04-03 08:47:58 +02:00
Nekotekina
2212a131ef Fix some -Weffc++ warnings (part 1) 2021-03-31 11:27:09 +03:00
Eladash
5a3c218239 thread-pool: Fix default rounding mode 2021-03-30 11:13:47 +03:00
xddxd
9d895e6b15 Scheduler overhaul 2021-03-26 00:29:44 +03:00
Nekotekina
b3fb6d7d18 Add and fix -Wredundant-decls (GCC) 2021-03-23 22:48:57 +03:00
Eladash
2f333424a6 Improve ELF/Trophy loader's error checking 2021-03-23 16:05:23 +03:00
Eladash
a67b347966
debugger: Fix SPU memory viewing (#10007)
* debugger: Fix SPU memory viewing

* Fix terminal recovery from page faults (hack allocation)
2021-03-23 13:33:07 +03:00
Megamouse
2c05e9719d cfg: simplify get_nodes 2021-03-20 20:54:26 +03:00
Megamouse
ae01e1d2c3 cfg: move get_name to _base 2021-03-20 20:54:26 +03:00
Eladash
4c7fc8a70a
Improve fs::container_stream::write (#9976)
Add overflow condition.
2021-03-16 14:03:58 +03:00
Eladash
a5bb925a3d Thread.cpp: Add missing newline 2021-03-15 20:41:33 +03:00
Nekotekina
ccdea1c4ad Enable -Wduplicated-branches (GCC) 2021-03-13 18:03:08 +03:00
Eladash
cd6ef2958b Add information about unnamed/main threads in logs and fatal dialog
* If thread is unnamed, keep log name empty for main thread, otherwise print thread id. In fatal dialog, main thread can be handled differently (with special remark that it's main thread).
* Always print thread id in fatal dialog, regardless of thread type.

Co-authored-by: Nekotekina <nekotekina@gmail.com>
2021-03-11 22:55:06 +03:00
Nekotekina
a6350d5dd1 Fixup write_gather (Linux, BSD)
Split iovec into small portions (256 for now)
2021-03-09 15:54:04 +03:00
Nekotekina
a4fdbf0a88 Enable -Wstrict-aliasing=1 (GCC)
Fixed partially.
2021-03-09 03:10:15 +03:00
Nekotekina
5bdd1cf837 Remove some redundant code
Potential fix for future warnings.
2021-03-09 03:09:50 +03:00
Nekotekina
3609eb25c9 Implement thread_ctrl::is_main() 2021-03-06 23:10:31 +03:00
Nekotekina
55c75d2c87 Implement thread_ctrl::get_tid() 2021-03-06 23:10:31 +03:00
Nekotekina
c69c70cf5f Another minor fix for fmt::split
Doesn't affect existing code.
If there are 2 or more separator, choose closest.
2021-03-06 19:30:09 +03:00
Nekotekina
7cd79714fa Minor fix for fmt::split with empty string
Doesn't affect existing code, I believe.
Return at least 1 empty string if is_skip_empty=false.
2021-03-06 19:26:41 +03:00
Nekotekina
87af905018 Enable -Wunused-parameter 2021-03-06 18:07:08 +03:00
Nekotekina
52fe86b56c fixed_typemap.hpp: make it a bit fool-proof
Require objects to be non-copyable (move is still allowed).
2021-03-02 21:58:49 +03:00
Nekotekina
ea5e837bd6 fixed_typemap.hpp: return reference 2021-03-02 16:08:14 +03:00
Nekotekina
bbf52f3cea named_thread: fix bugs in std::forward usage
Fix few misused threads and other bugs.
2021-03-02 16:08:14 +03:00
Eladash
ff211a9508 LLVM: Do not crash on failure to create cache file 2021-03-02 16:07:51 +03:00
Eladash
48cd56acc2
Report deadlocked thread names in failures to stop emulation (#9865)
* Report deadlocked thread names in failures to stop emulation

Co-authored-by: Nekotekina <nekotekina@gmail.com>
2021-03-01 01:06:48 +03:00
Nekotekina
de9d859f4a named_thread: implement task queue
atomic_ptr: implement push_head()

thread_ctrl::state() triggers task queue execution.
2021-02-28 20:20:17 +03:00
Nekotekina
3aaa0172d5 named_thread: implement "default" event loop
Fixup "sleepy" thread at startup on Windows.
Permit threads which lack operator()() overload.
2021-02-28 20:16:13 +03:00
Nekotekina
29e7eda887 named_thread: rewrite result_storage
Use SFINAE as permitted by std::invoke_result_t<>
2021-02-28 20:16:13 +03:00
Nekotekina
cd01a1eb09 Move CPUStats.h -> util/cpu_stats.cpp 2021-02-23 18:24:50 +03:00
Nekotekina
090a769bf6 Implement fs::sync (Linux/POSIX) 2021-02-23 18:24:50 +03:00
Nekotekina
014846cf31 cellSaveData: fix minor issues 2021-02-23 18:24:50 +03:00
Megamouse
663b2c9c5e overlays: Fix frametime graph spikes
The frametime_timer was restarted at the end of the update method, instead of immediately after reading its value.
This means that the frametime was lower than expected when an expensive task was executed in-between.
2021-02-23 13:27:54 +03:00
Eladash
d4af8dd89a Fix atomicity of savedata/trophy data writes 2021-02-23 11:29:23 +03:00
Eladash
932f31e37b Atomic PARAM.SFO writes 2021-02-23 11:29:23 +03:00
Nekotekina
980be9e0e8 JIT.cpp: fix overcommit bug (should have been Linux-specific)
Closes #9820

Co-authored-by: Eladash <elad3356p@gmail.com>
2021-02-22 13:35:01 +03:00
Nekotekina
038148bf06 Fix almost all GCC warnings 2021-02-17 22:59:04 +03:00
Nekotekina
1446254a03 Add error on missing 'override'
For consistency.
2021-02-15 20:21:30 +03:00
Eladash
f43260bd58
Atomic waiting refactoring (#9208)
* Use atomic waitables instead instead of global thread wait as often as possible.
* Add ::is_stopped() and and ::is_paued() which can be used in atomic loops and with atomic wait. (constexpr cpu flags test functions)
* Fix notification bug of sys_spu_thread_group_exit/terminate. (old bug, enhanced by #9117)
* Function time statistics at Emu.Stop() restored. (instead of current "X syscall failed with 0x00000000 : 0")
2021-02-13 17:50:07 +03:00
Nekotekina
0a23a5ef50 Rewrite fs::get_parent_dir
Don't analyse full path if possible.
2021-02-12 21:43:30 +03:00
Nekotekina
629d608d4f Patch engine: add bd32, bd64 and utf8 patch types
bd32 is the same as be32 with a hint it's not executable.
utf8 is NOT null-terminated string, null can be added manually.
2021-02-12 21:43:30 +03:00
Eladash
e26ae9899c Reimplement/fix PRX patches 2021-02-12 15:27:59 +03:00
kd-11
1bad9a939f rsx: Refactor texture cache utils
- Also lays groundwork for optional hashed sections
2021-02-10 11:37:14 +03:00
Nekotekina
4f8cac731b Fix SAFE_BUFFERS attribute for GCC 2021-02-09 12:33:50 +03:00
Nekotekina
b7ff2ecffb Patch system: export some info for future use
For now it's just a list of addresses.
For now it's not used (just a stub).
2021-02-07 11:02:31 +03:00
Nekotekina
78bad361ab Fix fs::unread (Linux)
Detach from fs::lock
Handle existing file case (unlink it).
2021-02-02 01:05:53 +03:00
Nekotekina
d0126f0fa0 Fix freezes in HLE Vdec and SPU LLVM precompilation.
Freezes could accidentally occur on close or ingame.
Deprecate range-for loop on lf_queue.
This is a part of PR #9208

Co-authored-by: Eladash <elad3356p@gmail.com>
2021-02-01 19:14:01 +03:00
Nekotekina
aeeceb7d0b Minor fixups 2021-02-01 11:30:50 +03:00
Nekotekina
f9ee8978ff PPU LLVM: improve analyser
Compile possibly executable holes between detected functions.
Add unused "PPU LLVM Greedy Mode" option (for future updates).
Add "nounwind" attribute to compiled functions (reduces size).
2021-02-01 11:30:50 +03:00
Eladash
d3bc96a201 Fix minor issue with usage of STL thread::hardware_concurrency() 2021-01-29 18:23:29 +03:00
Eladash
a742501a4f Do not account RSX for TSX pauses 2021-01-29 10:31:15 +03:00
Eladash
0652870204 New RSX Debugger 2021-01-28 17:40:26 +03:00
Nekotekina
34274ec391 Purge unused typeid() invocations 2021-01-28 10:23:29 +03:00
Eladash
28feea0447 Unfatal Segfaults 2021-01-27 21:54:29 +03:00
Nekotekina
c652d0b183 Detect execution access violation
Don't try to handle it, treat as fatal.
2021-01-27 11:53:10 +03:00
Nekotekina
22c55cbcfa Add trace logging to thread_ctrl::set_thread_affinity_mask 2021-01-26 19:59:48 +03:00
Nekotekina
c24d89dd34 Threads: fix typo in emergency_exit (dump useful info) 2021-01-26 19:58:47 +03:00
Nekotekina
f10ea1fb9b Thread pool: try to fix resetting affinity mask
Attempt to address #9657
2021-01-26 16:45:36 +03:00