Eladash
7833862342
Add SPU Profiler to GUI
2024-04-13 13:48:00 +03:00
Eladash
78c1a6f326
CPUThread.cpp: Add reservation sampling
2024-04-13 13:48:00 +03:00
oltolm
c567c92d4b
fix GCC warnings
2024-03-28 08:45:20 +01:00
Eladash
a539308545
Savestates: Make locking SPU threads more reasonable
...
Avoid locking in hopeless cases. Extend waiting time to more than 2 seconds.
2024-03-26 21:35:53 +02:00
Eladash
2f822abb47
PPU LLVM: Use symbol resolver function to resolve functions
2024-03-20 12:48:31 +02:00
Eladash
69a90ef9e7
rsx/cpu_thread: Fix cpu_thread::get_name() for RSX
2024-03-07 14:31:41 +02:00
Elad.Ash
148edc005a
Improve cpu_flag::yield handling
2024-02-11 20:09:01 +02:00
Elad Ashkenazi
ec59f4d37e
PPU/LV2: Implement HW threads switching delay when signaling higher priority threads
...
In real PS3 (it seems), when a thread with a higher priority than the caller is signaled and that there is available space on the running queue for the other hardware thread to start It prioritizes signaled thread caller's hardware thread switches instantly to the new thread code while signaling to the other hardware thread to execute the caller's code.
Resulting in a delay to the caller after such thread is signaled
2024-02-11 20:09:01 +02:00
Elad.Ash
30e8c3e951
SPU LLVM: Allow swapped FMA and multiplications args in match context
2024-02-07 13:45:29 +02:00
RipleyTom
65d93c97ea
Add various SPU patterns
2024-02-06 22:08:44 +02:00
Eladash
c7c2baae03
Savestates: Implement 'autostart off' mode for debugging
2023-11-27 12:36:17 +02:00
oltolm
50df01d00e
llvm: add support for LLVM 17
2023-10-13 14:27:48 +02:00
Malcolm Jestadt
d1bea790f3
SPU LLVM: Optimize GB/GBH/GBB with a GFNI path
...
- Abuses GFNI to extract bits from bytes, from 5->2 instructions in most cases
2023-10-01 23:05:28 +03:00
Eladash
5baec6cb58
Add Savestate-Compatible mode
2023-10-01 12:00:41 +03:00
Eladash
099c74481d
Savestates: Optimize SPU pausing
2023-10-01 12:00:41 +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
Eladash
75ad56338b
SPU/Non-TSX: Implement cuncurrent reservations
2023-07-27 02:50:01 +03:00
Eladash
9fc5f6271b
Update SPU reservation notifier mask
2023-07-23 17:58:54 +03:00
Eladash
c44cddabfa
CPUThread.cpp: Fix use of cpu_counter::add
...
This also fixes a crash when saving savestate because main thread uses cpu_counter::suspend_all which adds cuncurrency.
2023-07-23 17:58:54 +03:00
Eladash
c0280b43f2
PPU/Debugger: View the currently used CR field content in register panel
2023-07-12 13:22:06 +03:00
Eladash
16579e0b1f
Fix spu_thread::cleanup()
2023-06-06 09:48:27 +02:00
Elad Ashkenazi
23c710cf53
CPUThread.cpp: Fix an emulator crash on game exit
2023-05-22 20:04:49 +03:00
Ivan Chikish
45fecf0059
SPU LLVM: disable AVX2 shift intrinsics
...
Was incorrectly checked.
2023-04-23 18:36:45 +03:00
Ivan Chikish
22bd7dcc42
PPU LLVM: disable DSE pass and use volatile store/loads
2023-04-14 07:26:30 +03:00
Ivan Chikish
06b0e35fb9
Update to LLVM 16.0.1
...
Fix Zen4+ AVX-512 detection
2023-04-11 12:13:09 +03:00
Ivan Chikish
fb88e1c1c9
Update to LLVM 16.0.0, switch to upstream LLVM
2023-04-06 10:19:31 +03:00
oltolm
520524285a
llvm: update code to new API ( #13500 )
...
* llvm: update code to new API
* llvm: remove OLDLLVM define
2023-03-11 01:57:21 +03:00
Eladash
0da81d22d3
SPU Profiler: fix CPU usage when emulation is paused
...
Avoid collecting samples when the thread paused.
2022-10-20 11:22:33 +03:00
Eladash
52b993095d
SPU Profiler: nearly always print on Emu.Pause()
2022-10-20 11:22:33 +03:00
Eladash
d25d1ecb3a
LV2: Avoid using multi-variable atomic waiting on cpu_thread::state wait
2022-10-04 16:28:34 +03:00
Eladash
58dd2bff41
Savestates: Fix unintentional pause when saving with HLE VDEC contexts
2022-10-04 14:14:38 +03:00
Malcolm Jestadt
d8897c585d
PPU/SPU LLVM: Allow Zen4 cpus to use VPERMI2B/VPERMT2B instead of the vperm2b256to128 path
...
- Zen4 based cpus can process VPERM2B in a single uop, unlike intel where it is 3 uops.
2022-10-01 15:38:29 +03:00
Eladash
194f7375da
SPU/LV2: Fix tiny race conditions
2022-09-21 20:35:34 +03:00
Nekotekina
b49a1f27eb
Warning fixes
2022-09-17 16:35:02 +03:00
Eladash
9d9e18f614
CPU preemption control: don't yield if we can't stop
2022-09-16 18:57:55 +03:00
Eladash
fc331da883
CPU preemption control: remove yield before thread stop
2022-09-16 18:57:55 +03:00
Eladash
b6d3fa8c66
CPU preemption control: avoidance in reservation operations
2022-09-16 18:57:55 +03:00
Eladash
cf4da5c4d1
CPU preemption control: bugfixes
2022-09-16 18:57:55 +03:00
Eladash
9d1ec0b319
CPU preemption control: try to minimize sleep time gaps between setups
2022-09-16 18:57:55 +03:00
Eladash
ec7b18dab5
Implement independent CPU preemptions
2022-09-13 19:28:20 +03:00
Eladash
cfdc852f03
SPU: Power consumption reduction when using SPU inaccurate reservations
2022-09-13 11:21:01 +03:00
Eladash
daf43989fc
Thread.h: Improve thread abort performance
2022-08-25 23:54:56 +03:00
Eladash
133e9d4705
CPUThread.cpp: Fix cpu_flag::pending reset
2022-08-11 11:42:16 +03:00
Elad Ashkenazi
c4cc0154be
LV2: Optimizations and fixes
...
Fix and optimize sys_ppu_thread_yield
Fix LV2 syscalls with timeout bug. (use ppu_thread::cancel_sleep instead)
Move timeout notification out of mutex scope
Allow g_waiting timeouts to be awaked in scope
2022-08-11 11:42:16 +03:00
Eladash
73aaff1b29
LV2: allocation-free synchronization syscalls
...
* Show waiters' ID in kernel explorer.
* Remove deque dependency from sys_sync.h
2022-08-07 20:23:54 +03:00
sguo35
84a785ea67
arm64: implement pshufb intrinsic
2022-08-05 22:53:11 +02:00
sguo35
b02e6e222f
arm64: enable fma and "avx" on Apple and Cortex CPUs
2022-07-15 12:37:33 +03:00
sguo35
488982f424
spu: external function calls should be marked non-tail
...
Mark external function calls as non-tail, since they aren't tail calls
and assuming they are will cause returns to fail in Arm64 GHC CC.
2022-07-15 12:37:33 +03:00
Eladash
3e51426379
Savestates/SPU: Kill emulation when its safe to save SPU state
2022-07-15 09:30:53 +03:00
Elad Ashkenazi
fcd297ffb2
Savestates Support For PS3 Emulation ( #10478 )
2022-07-04 16:02:17 +03:00