Commit graph

372 commits

Author SHA1 Message Date
Nekotekina 0a5ea859ea atomic.cpp: fix race in cond_id_lock() 2022-05-07 21:25:38 +03:00
Nekotekina cd6aa0774f Reduce stack usage in atomic_wait_engine::notify_all 2022-04-24 13:26:28 +03:00
Nekotekina 6d3052c5dd Optimization: disable atomic_wait_engine notify callback for SPU
Disable placebo callback calls in notify_all.
Don't use callback at all if TSX.
Based on kd-11 findings.
2022-04-24 13:15:54 +03:00
Megamouse f42e647430 cellVdec: use av_error_to_string 2022-04-21 22:22:33 +02:00
Megamouse d8bbec9594 libav: log more error codes as string 2022-04-21 08:10:01 +02:00
sguo35 e761b3235c macos: fix build for arm64
Adds arm64 branches to some x86 specific code and modifies some casting
logic to make Clang happy
2022-04-18 17:53:54 +03:00
Timo654 afae58b231 Interpret negative values in game patches 2022-04-18 17:01:19 +03:00
Megamouse 499fe3e218 Patch manager: add node location to patch errors 2022-04-09 21:26:06 +02:00
RipleyTom a4d715e25d Warning Fixes 2022-03-23 19:35:10 +01:00
Megamouse 539ac32806 Decrease log spam in case that per core cpu usage cannot be queried 2022-03-18 01:47:23 +01:00
Megamouse e58906cb4d cpu_stats: fmt::win_error_to_string 2022-03-16 22:20:23 +01:00
Megamouse 04df392866 Log cpu usage periodically 2022-03-16 19:42:06 +01:00
nastys ce7b1576e0 Low Power Mode detection
Change low to reduced

Low Power Mode detection

Fix namespace space

Low Power Mode detection

Fix namespace space

Low Power Mode detection
2022-03-14 08:28:02 +01:00
Megamouse aafd74f9ea cellMusicDecode: initial implementation
Implements the basic functionality of cellMusicDecode.
Works with Space Invaders (if you add the list selection from the other PR).
Probably fixes SSX custom music.
2022-03-05 18:34:27 +01:00
Megamouse 15e74357cf cellMusic: implement qt music handler 2022-03-03 08:25:46 +01:00
Megamouse b1a9e87ecf cellSearch: fix cellSearchStartListSearch
Fixes listing BGM in Gundam.
The returned content was always empty.
Playback of the tracks will still require a MusicSelectionContext and cellMusic playback, which isn't implemented yet.
2022-02-20 21:06:46 +01:00
Nekotekina dba2baba9c Implement utils::memory_map_fd (partial)
Improve JIT profiling dump format (data + name, mmap)
Improve objdump interception util (better speed, fix bugs)
Rename spu_ubertrampoline to __ub+number
2022-01-26 15:46:16 +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 a4d94a83b9 PPU/simd.hpp: minor changes in DP instructions 2022-01-21 13:57:46 +03:00
Nekotekina 628354ba92 Use global variable in gv_zeroupper 2022-01-20 21:16:00 +03:00
Nekotekina 8c3fb3998c PPU: fix crash on SSE41 CPU in internal builder 2022-01-20 14:42:58 +03:00
Nekotekina d572d90bb7 PPU: fixup for old CPU
Abort building interpreter function when out of registers.
2022-01-20 08:31:08 +03:00
Nekotekina b42fae0989 PPU: refactor shift and splat instructions
Fix utils::rol32/64 functions.
Fix immediate clamping in splat instructions.
Other fixes.
2022-01-19 23:01:31 +03:00
Nekotekina 08b02efc6c ARM: don't calibrate TSC, use cntfrq_el0 info 2022-01-18 04:21:42 +03:00
Nekotekina 4728478247 PPU: improve interpreter codegen
Implement more sensible check for EVEX prefix and SSE
2022-01-18 04:20:06 +03:00
Nekotekina 14cca55b50 PPU: refactor vector rounding instructions
Fix: nearbyint -> roundeven
2022-01-18 00:10:32 +03:00
Nekotekina 248f9424ac PPU: refactor VPack instructions 2022-01-18 00:10:19 +03:00
Nekotekina b404d37eb0 PPU: more interpreter refactoring (VPERM)
Notably, runtime-built SSSE3 version of VPERM.
Some other instructions are refactored and vectorized.
Aarch64 impl of multiple instructions including VPERM.
2022-01-18 00:10:19 +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
Malik Idrees Hasan Khan 949e93bec7
Fix typos (#11361) 2022-01-12 23:21:02 +01:00
Eladash 108846055b shared_ptr.cpp: Remove std::swap specialization 2022-01-12 03:37:39 +03:00
nastys ef66b002e0
Implement proper macOS version check (#11352) 2022-01-11 23:17:26 +01:00
nastys 37f24d8c1c Log maxfiles to file and stderr on *NIX 2022-01-11 08:05:17 +03:00
Malcolm Jestadt 31a5a77ae5 SPU: Use REP MOVSB in do_dma_transfer
- Try to use REP MOVSB when the size of the transfer is above a certain threshold
- This threshold is determined by the ERMS and FSRM cpuid flags
- The threshold values are (roughly) taken from GLIBC
- A threshold of 0xFFFFFFFF indicates that the cpu has neither flag
2022-01-02 21:35:46 +03:00
Nekotekina 262ff01619 Use aligned stores in write_index_array_data_to_buffer
Ensure that target buffer is cache line aligned.
Improve stx::make_single to support alignment.
2021-12-21 23:28:09 +03:00
Nekotekina 6b40d69a8f Introduce coroutine support (util/coro.hpp)
Implement coroutine types `lazy` and `generator` in stx namespace.
Implement fs::list_dir_recursively.
2021-12-07 13:04:10 +03:00
DH cccfb89aa0 [Config] Use std::less<> for std::map<...>
Reduces amount of string copies
[Utilities] fmt::replace_all: avoid creation of temporary strings
2021-12-02 21:36:57 +03:00
DH 56d922999f Fixed debug build compilation errors
const_str_t constructor without arguments shoud be constexpr for usage as default initializer in constexpr functions
2021-12-02 21:36:57 +03:00
Eladash 48ad959697
sys_event: Fix PPU queue forced uproot of waiters (#11147) 2021-11-13 20:22:54 +03:00
Whatcookie bf6044fced
SPU/SYSINFO: Disable TSX by default for TSX-FA cpus (#11105)
- Also detect the new RTM_ALWAYS_ABORT bit in cpuid
- This new bit indicates that RTM is disabled in the microcode
- On cpus with RTM_ALWAYS_ABORT TSX can be renabled by writing 0x4 to the msr 0x0000010F
2021-11-04 16:44:25 +00:00
Eladash c6641748ce
vm_native.cpp: Fix DeviceIoControl usage (#11029) 2021-10-19 12:53:08 +03:00
Jan Beich 7a24642c56 vm_native: simplify vm.overcommit sysctl
dragonfly$ sysctl vm.overcommit
sysctl: unknown oid 'vm.overcommit'

freebsd$ rg VM_OVERCOMMIT /usr/include
/usr/include/vm/vm_param.h
89:#define VM_OVERCOMMIT                12      /* vm.overcommit */
2021-10-12 02:11:58 +03:00
Jan Beich 1a90adfb5e vm_native: unbreak runtime on FreeBSD after 63104af8e9
shm_open() returns a file descriptor on success, not zero. As SHM_ANON
only exists on FreeBSD which also has memfd_create use the same code
as on Linux.

$ rpcs3
[...]
Verification failed (in file rpcs3/util/vm_native.cpp:478[:4], in function shm) (errno=2)
Segmentation fault
2021-10-12 02:11:58 +03:00
Megamouse 269c4604aa VFS: move VFS settings to seperate file 2021-09-25 19:21:59 +03:00
Megamouse 0debcfed0a Silence some warnings 2021-09-02 19:39:42 +02:00
RipleyTom 1e108d97b2 Removes need for sys/sysctl.h on linux 2021-08-31 12:30:22 +03:00
Nekotekina 63104af8e9 vm_native: detect overcommit support on FreeBSD and other OS
Used in sparse memory initialization code.
2021-08-30 14:42:16 +03:00
Nekotekina 064fc81697 Fix warnings 2021-08-06 10:41:40 +03:00
kd-11 8aec943093 Use c++20 has_single_bit for POT test 2021-08-03 00:36:04 +03:00
kd-11 0ec526c5f1 rsx: Do not use VTC tiling on NPOT textures
- Seems to be ignored for 'normal' textures. Mostly verified through games.
2021-08-03 00:36:04 +03:00