Malcolm Jestadt
39149fd84d
SPU LLVM: Partial revert for FM/FMA changes and other improvements
...
- Revert changes to FM and FMA instructions
- Allow non accurate/approx FMA family instructions to use native FMA
- Minor optimization for FMA ops with a constant 0 multiply
2020-06-06 22:27:48 +03:00
Malcolm Jestadt
289c594187
SPU LLVM: Fix theoretical issue with FCGT optimizations
2020-06-06 22:27:48 +03:00
Megamouse
1cb4fb9c50
stub cellPngEnc
2020-06-04 23:13:40 +03:00
Megamouse
413f87b737
Add error_code to cellPngDec
2020-06-04 23:13:40 +03:00
Megamouse
8a8edb1b62
stub sceNpCommerce2
2020-06-04 23:13:40 +03:00
Megamouse
caa1324457
stub sceNpTus
2020-06-04 23:13:40 +03:00
Megamouse
41eb6d4461
cellAudio improvements
...
- use CELL_AUDIO_BLOCK_32 where possible
- use CELL_AUDIO_BLOCK_SAMPLES where possible
- remove redundant logging
- return CELL_AUDIO_ERROR_AUDIOSYSTEM in cellAudioGetPortConfig (probably unreachable code anyway)
- return CELL_AUDIO_ERROR_PORT_OPEN in cellAudioPortOpen
- stub cellAudioSetPersonalDevice cellAudioUnsetPersonalDevice and cellAudioMiscSetAccessoryVolume
2020-06-04 23:09:47 +03:00
sampletext32
437f374bae
Fix some checks
2020-06-04 19:48:08 +03:00
Ani
9657b3f1d4
Fix sys_net_bnet_poll regression ( #8337 )
...
Co-authored-by: Eladash <elad3356p@gmail.com>
2020-06-04 17:30:11 +01:00
Malcolm Jestadt
c601374b1f
SPU LLVM: Use clamping helpers for FMA32x4 and FM
2020-06-01 21:39:28 +03:00
Nekotekina
938ca90a02
Improve Stop Watchdog
...
Prevent termination if PPU LLVM compilation is in progress.
2020-06-01 02:27:33 +03:00
Nekotekina
1507a59786
SPU LLVM: fix spu_cache dependency
...
Should fix possible crash on exit.
2020-05-31 21:54:04 +03:00
Eladash
675fde69aa
Avoid copying std::shared_ptr in sys_semaphore
2020-05-31 21:02:52 +03:00
Megamouse
99895471ae
cellAudio: make master volume dynamic
2020-05-31 07:37:59 +02:00
Eladash
f0cdd8ace6
PPU: Implement PPU Traps Stubbing option
2020-05-27 22:39:29 +03:00
Nekotekina
8e9d2fa70e
SPU LLVM: implement get_segment_base()
...
Fake function used to compute 32-bit offset of local functions.
2020-05-27 18:53:09 +03:00
Nekotekina
abf9a08ee3
Fix warnings
2020-05-27 18:41:17 +03:00
Eladash
865180e63e
sys_mmapper: Fix possible memory leak on error of create_lv2_shm
2020-05-24 19:24:07 +03:00
Eladash
3265772ae4
idm: Implement creation/destruction invalidation counter
...
* "Ensures" newely created IDs won't have the same ID as old destroyed objects for lv2_obj. (256 tries cycle)
Similar to how the kernel implements it.
2020-05-24 19:24:07 +03:00
Mrlinkwii
68bee397eb
Update cellSpurs.h
2020-05-22 22:19:04 +03:00
Eladash
81749f4353
SPU/PPU disasm: replace unknown instructions message with question marks
2020-05-22 17:37:22 +03:00
Eladash
7c3166a0c6
SPU MFC: Fix MFC_WrListStallAck on interpreters
2020-05-20 22:55:30 +03:00
Eladash
4405f46aec
SPU MFC: Fix SN interrupts
2020-05-20 22:55:30 +03:00
Eladash
81684919f5
SPU MFC: Implement MFC_SDCRZ_CMD
2020-05-20 22:55:30 +03:00
sampletext32
1a8fb61373
Fix some misspells
...
Note: in main.cpp there are many dirs similar to Program Files, so tip should be appropriate.
2020-05-20 22:53:24 +03:00
Malcolm Jestadt
c47d04fd2f
SPU: Optimize FCGT
...
- Optimize FCGT to a single signed integer comparison when possible
- Add is_spu_float_zero helper
2020-05-20 21:55:01 +03:00
Eladash
201d54ee08
PPU interpreters: Implement AltiVec NaNs precedence and data preservation
2020-05-18 00:35:06 +03:00
Eladash
377e2ce3e8
rsx: Write 4-byte long data to all semaphores ( #8246 )
...
* rsx: Write 4-byte long data to all semaphores
2020-05-17 17:48:35 +03:00
Eladash
a2653532ef
SPU reservations (TSX): Remove wait flag in PUTQLLUC
2020-05-17 14:20:21 +03:00
Eladash
8a0425570c
rsx: Fix data written to RSX semaphores and the initial data of them ( #8235 )
2020-05-16 09:55:56 +01:00
Nekotekina
7824419bbf
Remove std::rotr usage for now
...
It seems to be missing on some std implementations.
2020-05-14 21:42:44 +03:00
Eladash
61f43d78df
SPU: Minor cleanup of exception in stop_and_signal
2020-05-14 16:58:50 +01:00
Eladash
54dd9f4eae
sys_spu: Fix sys_spu_thread_group_terminate vs sys_spu_thread_group_exit race on values
2020-05-14 16:58:50 +01:00
Eladash
91d06a9729
SPU LLVM: fixup after #8175 ( #8214 )
...
Mask out RESULT cmd bit, do not create unbound branch blocks. (non-TSX)
2020-05-14 13:34:14 +01:00
Nick Renieris
b1fb5b6239
Emu/Config: Add option for accurate PPU LLVM vector NaNs
...
Turned off by default.
2020-05-14 11:14:28 +01:00
Nick Renieris
20d8d38e53
PPU Interpreter: Accurate vector instruction NaNs
...
Tested with https://github.com/RPCS3/ps3autotests/tree/master/tests/cpu/ppu_vpu .
This commit gets us from 2746 to 353 different lines compared to realhw.
2020-05-14 11:14:28 +01:00
Nick Renieris
78ac2a86bb
PPU LLVM: Accurate vector instruction NaNs
...
Tested with https://github.com/RPCS3/ps3autotests/tree/master/tests/cpu/ppu_vpu ,
results in that test improved by about half.
2020-05-14 11:14:28 +01:00
Eladash
7680466e0d
Minor EFAULT fix in sys_semaphore_get_value/sys_event_flag_get
...
ESRCH preceeds EFAULT in both syscalls.
2020-05-13 19:36:44 +03:00
Eladash
9266507e4c
SPU: Implement spu_channel_(4_)t::try_read
2020-05-13 19:36:44 +03:00
Eladash
8cca113ef4
sys_spu: Add short sleep in sys_spu_thread_group_terminate
2020-05-13 19:36:44 +03:00
Eladash
7ff25588f4
sys_spu: Minor cleanup of group termination process
2020-05-13 19:36:44 +03:00
Eladash
5c4c8f4539
PPU: Use optimized reservation waiting for reservation load (non-TSX)
2020-05-13 16:53:59 +03:00
Eladash
12f0278808
SPU LLVM: Improve MFC transfers recompilation for non-TSX
2020-05-13 11:10:13 +01:00
Eladash
525453794f
SPU/PPU reservations: Optimizations part 1
...
- Implement vm::reservation_trylock, optimized locking on reservation stores with no waiting. Always fail if reservation lock bitsa are set.
- Make SPU accurate GET transfers on non-TSX not modify reservation lock bits.
- Add some optimization regarding to unmodified data reservations writes.
2020-05-13 11:10:13 +01:00
Megamouse
eb5ec211c2
Input: remember registered ldd controllers
...
- Don't reset ldd pads when saving a pad config
- Prevent configuration of registered ldd pads in the gui while ingame
2020-05-13 11:17:58 +02:00
Eladash
f95b81574f
sys_spu: Fix race in sys_spu_thread_group_destroy and other minor fixes ( #8182 )
...
* sys_spu: Fix race in sys_spu_thread_group_destroy and other minor fixes
* SPU: Wait for all threads to have error codes if exited by sys_spu_thread_exit
On last thread in group to run.
* sys_spu: Fix sys_spu_thread_group_start
* fixup ad fix sys_spu_thread_group_terminate
idk why "- !group->running" was put in the first place but its probably no longer relevant due to other changes and was causing other issues such as not always waiting for last SPU thread to set group state to INITIALIZED.
2020-05-11 21:24:04 +03:00
Eladash
bd61347b21
sys_spu: reset group exit status in sys_spu_thread_group_start
2020-05-10 03:46:11 +01:00
Eladash
09797c3584
sys_spu: Improve sys_spu_thread_get_exit_status
2020-05-10 03:46:11 +01:00
Nekotekina
e1042bc631
Get rid of "module" keyword
...
Workaround some intellisense problems.
2020-05-06 18:20:11 +03:00
Nekotekina
907adc817e
Fix some warnings (GCC)
2020-05-05 21:55:22 +03:00