Megamouse
b929c13c45
implement get_firmware_version
...
add firmware version to the first line in the log
2019-04-16 22:13:28 +02:00
Nekotekina
e064b92058
mutex.h: fix warning (unary minus unsigned)
2019-04-13 22:56:11 +03:00
Nekotekina
d52df9352c
fs::rename, use renameat2 on Linux
2019-04-13 22:56:11 +03:00
Nekotekina
0736fc8b28
Add fs::file::set_delete
2019-04-10 13:58:12 +03:00
Nekotekina
a54d9c527f
Simplify fs::file::get_handle
...
Via fs::file_base::get_native_handle method
2019-04-10 13:58:12 +03:00
eladash
a3f65084df
Fix sys_process_exit2 when SPUs are at av handler
2019-03-31 14:57:21 +03:00
eladash
16f86b2458
Fix page fault area range check
...
Range end check was bugged (always true), also rewrite it so vm::get would be called only once
2019-03-31 14:57:21 +03:00
Nekotekina
d873802b9c
Use LLVM 9
...
Use new add/sub with saturation intrinsics
2019-03-30 01:36:48 +03:00
Nekotekina
4b381fbbb1
Implement spu_runtime::reset
...
To handle JIT: Out Of Memory error.
2019-03-23 02:43:41 +03:00
Nekotekina
849411693a
PPU LLVM: add MemoryManager3
...
For temporary allocations.
Add flags in jit_compiler constructor.
2019-03-23 02:43:41 +03:00
Jan Beich
1a13d3ae4e
OpenBSD doesn't have mcontext_t
...
`<signal.h>` provides `typedef struct sigcontext ucontext_t`
2019-03-19 22:24:49 +03:00
kd-11
bb65e45614
rsx: Implement GPU acceleration for rotated images
2019-03-17 21:50:11 +03:00
RipleyTom
980c3d6fe8
Fix lf_queue destructor
2019-03-13 15:59:13 +03:00
Nekotekina
eae5b9e049
Rewrite mulh64/umulh64
...
Use __int128_t/__uint128_t idioms on GCC/Clang.
May result in better codegen by avoiding inline asm.
2019-03-13 00:16:43 +03:00
eladash
4a28319edf
Implement SPU page faults notifications
...
* Implement both RawSPU and threaded SPU page fault recovery
* Guard page_fault_notification_entries access with a mutex
* Add missing lock in sys_ppu_thread_recover_page_fault/get_page_fault_context
* Fix EINVAL check in sys_ppu_thread_recover_page_fault, previously when the event was not found begin() was erased and
CELL_OK was returned.
* Fixed page fault recovery waiting logic:
- Do not rely on a single thread_ctrl notification (unsafe)
- Avoided a race where ::awake(ppu) can be called before ::sleep(ppu) therefore nop-ing out the notification
* Avoid inconsistencies with vm flags on page fault cause detection
* Fix sys_mmapper_enable_page_fault_notification EBUSY check
from RE it's allowed to register the same queue twice (on a different area) but not to enable page fault notifications twice
2019-03-12 13:28:31 +03:00
Nekotekina
efe067bfa0
LLVM: handle cascadelake CPU name
2019-03-05 21:47:34 +03:00
Nekotekina
ebb24375d1
LLVM: handle icelake-client and icelake-server CPU names
...
Correct AVX / AVX-512 disabling logic
2019-03-01 00:20:04 +03:00
Nekotekina
7f6a410770
Add dummy __has_builtin macro, use rotate builtins if possible
2019-03-01 00:08:19 +03:00
Nekotekina
9ee2867247
Improve count leading/trailing zeros implementation
...
Use x86 intrinsics if compiled with appropriate instruction support
2019-03-01 00:08:19 +03:00
Nekotekina
7b344b7654
Implement utils::refptr for typemap (with && syntax)
...
Ref-counted pointer, object is always allocated on heap.
Rvalue reference && in typemap is converted to refptr for convenience.
2019-03-01 00:08:19 +03:00
Nekotekina
6c5d9fffaa
typemap: improve pointer support
...
If stored object is a pointer, access dereferenced object directly via ->
2019-03-01 00:08:19 +03:00
eladash
25aa5f80a6
Fix access violations reporting on RSX
...
and on other threads that do not have cpu_thread handler
2019-01-30 18:44:29 +03:00
eladash
b61492ca30
Dont call std::terminate() after normal access violation handling
2019-01-30 18:44:29 +03:00
Nekotekina
f50d9cc136
Initial support for HLE in internal API
...
atomic_storage<>: add compare_exchange_hle_acq and fetch_add_hle_rel
shared_mutex: add methods (un)lock_hle and (un)lock_shared_hle
Clang: 👅
2019-01-29 04:33:59 +03:00
Nekotekina
58358e85dd
spu_runtime::add minor optimization
...
Use preallocated vectors in trampoline generation subroutine
2019-01-29 03:32:16 +03:00
Nekotekina
2b66abaf10
Implement atomic_t<>::release
...
More relaxed store with release memory order
2019-01-29 03:32:16 +03:00
Nekotekina
4292997a01
Added jit_runtime class
...
Is a memory manager for ASMJIT, replaces asmjit::JitRuntime
Unified memory manager for ASMJIT and LLVM
Unified SPU trampoline generation
Remove previous workarounds
2019-01-29 03:32:16 +03:00
Nekotekina
d5eda98e49
Fix le_t<> compilation error
...
Use memcpy for copying
2019-01-22 22:02:03 +03:00
Nekotekina
4f152ad126
SPU: multithread compilation
...
Allow parallel compilation of SPU code, both at startup and runtime
Remove 'SPU Shared Runtime' option (it became obsolete)
Refactor spu_runtime class (now is common for ASMJIT and LLVM)
Implement SPU ubertrampoline generation in raw assembly (LLVM)
Minor improvement of balanced_wait_until<> and balanced_awaken<>
Make JIT MemoryManager2 shared (global)
Fix wrong assertion in cond_variable
2019-01-22 22:02:02 +03:00
Nekotekina
a419e98acb
Move PPU and shader cache
...
New hash-based location (already used for SPU)
Bump PPU cache version, improve naming and decrease size
Remove fs::get_data_dir
Disable boot.elf cache
2019-01-14 01:24:05 +03:00
Nekotekina
81c50bad69
lf_queue: implement wait() method
...
Synchronization does not occupy additional space by reusing LSB
2019-01-13 14:45:36 +03:00
Nekotekina
ac775cd75e
Simplify gui_listener
...
Use lf_queue
2019-01-13 14:45:36 +03:00
Nekotekina
3fed4dcc5a
Remove lf_mpsc, lf_spsc
...
Not practical
2019-01-13 14:45:36 +03:00
Nekotekina
435f60d503
lf_queue: add iterator support
...
Allow range-for loop over an object returned by `pop_all()`
2019-01-13 14:45:36 +03:00
Nekotekina
bd9131ae1c
Implement fs::get_cache_dir
...
Win32: equal to config dir for now
Linux: respect XDG_CACHE_HOME if specified
OSX: possibly incomplete
2019-01-13 14:45:36 +03:00
Nekotekina
20efed66e9
Implement RPCS3_CONFIG_DIR env variable (Win32)
...
Overrides config location, should end with / or \
2019-01-13 14:45:36 +03:00
JohnHolmesII
be75a564ca
Fix builds with musl c
2018-12-30 21:31:06 +03:00
Jan Beich
33f7a39f5d
fs: implement copy_file() fallback
...
sendfile(2) on DragonFly and FreeBSD can only write into sockets.
2018-12-29 18:07:45 +03:00
msuih
dbd4814584
Disable thread assignment for Intel
2018-12-24 19:33:08 +00:00
msuih
1dd3a4b3f0
Detect hyperthreading on Windows
2018-12-24 19:33:08 +00:00
vit9696
5a40c1802b
Support macOS bundling for binary distribution
2018-12-16 18:17:21 +03:00
Nekotekina
96cabeadff
Rewrite condition variables
...
Implement helper functions balanced_wait_until and balanced_awaken
They include new path for Windows 8.1+ (WaitOnAddress)
shared_mutex, cond_variable, cond_one, cond_x16 modified to use it
Added helper function utils::popcnt16
Replace most semaphore<> with shared_mutex
2018-11-29 01:30:05 +03:00
Nekotekina
febe4d4a10
Implement class cond_x16
...
Use as reservation notifier
Limited to 16 threads but allows more precise control of contention
2018-11-26 00:23:29 +03:00
vit9696
634a5fa31c
Fix macOS compilation
2018-11-19 14:39:33 +03:00
Nekotekina
1fdd013e4b
fs: normalize atime (ensure atime >= mtime)
2018-11-17 14:40:11 +03:00
Nekotekina
c719ae360d
fs: disable ctime (return mtime instead)
2018-11-17 14:40:11 +03:00
Nekotekina
7180c1f2d0
typemap: make use of volatile qualifier
...
Use shared lock for volatile pointers
Use no lock for const volatile pointers
2018-11-09 16:19:59 +03:00
Nekotekina
6a30d5a6c1
shared_mutex: increase max_readers to 16383
...
Standard requires at least 10000 for SharedMutex concept
2018-11-09 16:19:59 +03:00
Nekotekina
6104685ad6
Implement cond_one sync primitive
...
Change futex() args to use unsigned int
2018-11-05 13:14:11 +03:00
Dennis Luxen
36d4614d12
Fix a warning that shift overflows data type width ( #5116 )
2018-10-23 18:49:01 +03:00