kd-11
3ddfa288cf
rsx: Use multithreaded shader compiler backend
2020-11-21 20:43:15 +03:00
Nekotekina
e89a568765
Attempt to fix Emu.Quit()
...
There was some kind of "initialization order fiasco" of g_fxo.
Not only should it be used after main, but also destroyed before exit.
2020-11-21 18:27:16 +03:00
Nekotekina
71f1021648
Fix thread pool entry point and get_cycles()
...
Fix possible race between thread handle availability.
Don't treat zero thread as invalid one.
Now entry point is full is assembly.
Attempt to fix #9282
Also fix some TLS.
2020-11-21 17:18:42 +03:00
Nekotekina
5bcaa25c02
CPU: remove descheduled threads from suspend_all list
2020-11-20 13:53:34 +03:00
Eladash
85880ffded
SPU: Log STOP full opcode ( #9292 )
...
Co-authored-by: Ani <ani-leo@outlook.com>
2020-11-20 13:53:16 +03:00
Megamouse
5b207c3b95
hotfix for infinite loop when booting game data
2020-11-19 23:53:10 +01:00
Megamouse
3087f15dd8
Update disc boot detection and hope it works
2020-11-19 21:55:06 +01:00
Nekotekina
292af1e4cd
CPU: use u128 in bit counter
...
Apparently, u64 was not enough.
2020-11-19 16:05:08 +03:00
Nekotekina
d4d5dc99f3
Fix perf_meter<> after adding thread pool.
...
Print and reset sorted information after emulation stop/pause.
Print useless average value.
2020-11-19 14:44:58 +03:00
Nekotekina
3e1344e4e4
vm.cpp: minor optimization for filling stack guards
...
Use REP STOSQ on all compilers.
2020-11-19 14:44:58 +03:00
Nekotekina
6d37bc62a5
CPU: remove cpu_counter from g_fxo
...
Convert it to a namespace, simplify add/remove functions.
Don't add() threads just creates, they are trapped in check_state() anyway.
Don't add() threads which are leaving check_state() because stopped.
2020-11-19 09:46:22 +03:00
Nekotekina
e9f7c100a0
CPU: update suspend interface (dummy)
2020-11-18 19:15:56 +03:00
Nekotekina
190676c982
CPU: Fix g_suspend_counter waiting logic
2020-11-18 14:38:01 +03:00
Eladash
28cbba5a7d
SPU LLVM: fix AND instruction family ( #9290 )
...
Incorrect immediate test (looks like copypasta)
2020-11-18 14:36:26 +03:00
kd-11
0e7a705254
rsx: Resolution scaling overhaul
...
- Enforce square pixels instead of per-axis scaling
2020-11-18 09:29:34 +03:00
Nekotekina
68931b4c43
Debugger: fill stack guard with STACKGRD
2020-11-17 16:32:59 +03:00
Nekotekina
ccd0d2046d
SPU: increase max SPU count
...
According to max SPU TG count.
2020-11-17 15:22:04 +03:00
Nekotekina
0fec99e75b
SPU: absolutely unacceptable hack for SPU LS
...
Make normal threads inaccessible in PS3 memory.
2020-11-17 15:22:04 +03:00
Nekotekina
f8d1f070f5
sys_memory: HORRIBLE HACK for sys_memory_get_page_attributes
2020-11-17 15:22:04 +03:00
Eladash
992a372fc7
cellGame fixes
2020-11-17 09:04:35 +01:00
Nekotekina
d7e1cf7dd2
vm: respect initial protection for allocation mapping
...
Unused yet.
2020-11-17 05:33:46 +03:00
Nekotekina
ea5f5aea5f
vm: memory locking rewritten
...
Added vm::lock_sudo method (wrapper for utils::memory_lock).
Put locking outside of vm::g_mutex scope.
Prelock sudo memory for RSX, vm::stack, vm::main.
Prelock sudo memory for shared memory objects.
Don't check for TSX path.
2020-11-16 12:46:15 +03:00
Nekotekina
eaf0bbc108
SPU: don't allocate SPU LS in vm::main
...
Create its own shared memory object.
Use vm::spu to allocate all SPU types.
Use vm::writer_lock for shm::map_critical.
2020-11-16 12:46:15 +03:00
Eladash
b1710bb712
SPU Debugger: Implement float registers view + General debugger fixes ( #9265 )
...
* SPU Debugger: Fix try_get_insert_mask_info
* Debugger: Always update thread state on context's data change
No longer needing to press on thread's instructions for actions to work!
2020-11-15 08:45:28 +03:00
Nekotekina
dfae7bd073
SPU: Fix some stat printing
2020-11-15 04:41:16 +03:00
Nekotekina
badb3dc2dd
atomic.cpp/threads: remove old wait callback
...
Add new wait callback which simply collects statistics.
Shift workarounds towards actual problem detection.
2020-11-14 18:16:27 +03:00
Nekotekina
1e269751bf
Temporarily disable memory locking if TSX is not used
...
It's a very heavy operation that could cause some problem under mutex lock.
2020-11-14 11:12:58 +03:00
Nekotekina
5b69eda39a
Fix suspend_all bug (TSX, TSX-FA)
...
Could cause freezes.
2020-11-14 10:56:05 +03:00
Nekotekina
71ca413067
Don't add lonely cpu_flag::memory on TSX path (bug)
2020-11-14 09:03:33 +03:00
Nekotekina
ab365fe494
Fixed thread pool a bit
...
Use 128-bit allocator instead of queue.
When pool is full (128), threads just terminate as before.
2020-11-13 13:32:44 +03:00
RipleyTom
debfae06a8
Improve disconnected state handling of dns queries
2020-11-13 07:05:06 +03:00
RipleyTom
e6f2f8ad0d
Add some error checking in sceNp2.cpp
2020-11-13 05:28:00 +03:00
Nekotekina
67785a918c
Implement simple thread pool
2020-11-13 03:32:24 +03:00
Nekotekina
3888b0429c
atomic.cpp: print some stats on stop
2020-11-12 05:52:22 +03:00
Eladash
fefab50e06
Fix vm::range_lock, imporve vm::check_addr
2020-11-11 10:30:09 +03:00
Eladash
74274f6d77
Debugger: Improve SPU/PPU vector registers
2020-11-11 10:27:45 +03:00
RipleyTom
908b2703f3
Fix missing controller mapping
2020-11-11 07:16:45 +03:00
Eladash
52fa69d93d
SPU Debugger: Improve registers panel
2020-11-10 22:51:52 +03:00
RipleyTom
a83df01bfd
rpcn 0.3.5 ( #9227 )
2020-11-10 08:55:49 +00:00
Eladash
b32d989a10
Fix PPU stack contents on allocation
2020-11-10 06:30:35 +03:00
Nekotekina
d1ee7c651f
Make memory locking optional (mlock, VirtualLock).
...
Fix desired locking operation (to fix "sudo" memory).
It was discovered that some systems have outdated configuration.
With too tight limit, it's almost impossible to lock anything in memory.
2020-11-10 06:05:37 +03:00
Nekotekina
bd5253047b
Improve DYNAMIC_IMPORT
...
Don't call get_proc_address every time if if failed.
Also rename Utilities/dynamic_library.h to util/dyn_lib.hpp
2020-11-10 01:44:31 +03:00
Nekotekina
cdaa8cb5c4
CPU: Improve suspend_all g_suspend_counter handling
...
Increase in two stages, giving more chances to use it.
Second stage is when all wait flags have been seen.
2020-11-09 23:54:36 +03:00
Nekotekina
083397a555
vm: lock memory under "sudo" addr
...
Remove memory touching from transactions.
2020-11-09 23:54:36 +03:00
Nekotekina
d1988d384c
vm: remove unnecessary memset() on stop
2020-11-09 22:57:36 +03:00
Nekotekina
bc61835d97
CPU: use unsigned (u8) priority in suspend_all
2020-11-09 22:57:36 +03:00
Nekotekina
733b46d51a
sys_semaphore: add state check to sys_semaphore_get_value
...
Also to sys_semaphore_create, although we don't do it.
2020-11-08 19:03:41 +03:00
Nekotekina
8bc9868c1f
SPU/vm: Improve vm::range_lock a bit
...
Use some prefetching
Use optimistic locking
2020-11-08 17:23:17 +03:00
Nekotekina
3507cd0a37
SPU: improve spu_thread::reservation_check
...
Use optimistic locking and optimistic loop (expecting 1 iteration).
2020-11-08 16:43:15 +03:00
Nekotekina
21ec32b465
vm: implement g_shmem for range locks
...
Renamed from g_shareable. Contains pointers instead of bits.
Used in range locks to prevent any "collision" between memory.
2020-11-08 16:43:15 +03:00