Nekotekina
9ad5fc8a08
SPU: rewrite spu_channel_t
2018-04-22 00:06:49 +03:00
Nekotekina
8ca33bcb94
SPU ASMJIT v2.0
...
Use X86Assembler and blocks
2018-04-22 00:06:48 +03:00
Nekotekina
ea82b732a3
SPU: fix non-TSX path
2018-04-08 23:30:50 +03:00
Nekotekina
0797164fac
SPU: fix possible livelock
...
The bug affects TSX path
2018-04-07 20:51:21 +03:00
Nekotekina
3681507136
Rewrite vm::reservation
...
Use flat virtual memory area
2018-04-07 20:51:21 +03:00
Nekotekina
2b5cf2455f
SPU: improve TSX usage
...
Reduce transaction failure amount
Remove vm::try_to_lock
2018-04-06 21:47:54 +03:00
Nekotekina
d392379c7a
Use vm::passive_lock for SPU threads
2018-04-06 15:47:00 +03:00
Nekotekina
e88508b679
SPU: cache barrier/fence masks
2018-04-06 15:47:00 +03:00
Nekotekina
0e74f2e340
Fix MMIO on SPU
...
Thanks Digitaldude555 for reporting the bug and @elad335 for pinging me
2018-04-01 22:39:48 +03:00
Nekotekina
d871675b3b
Process RawSPU MMIO in do_dma_transfer
2018-04-01 22:39:48 +03:00
Nekotekina
bb0cfe383d
Fix MFC_SYNC_CMD
2018-04-01 20:52:54 +03:00
Nekotekina
898637f830
Remove mfc_thread
...
Clear mfc_queue on reset
Improve MFC Proxy a bit
2018-03-31 21:13:12 +03:00
eladash
d27a375363
RawSPU/MFC: fix get start type proxy commands
2018-03-24 19:48:14 +04:00
eladash
3426531e38
qt/spu: remove max dma write size setting
...
This wasn't really used for anything tbh
2018-03-20 02:49:53 +04:00
Nekotekina
445b7c0758
Optimize SPU interpreter
...
Made SPU decoder similar to PPU decoder
2018-03-01 16:13:35 +03:00
elad
b61a69c877
fix spu interpreter single stepping
2018-02-25 20:30:44 +04:00
Nekotekina
cce0ad0c35
Clean vm::ps3 namespace use
2018-02-09 17:49:37 +03:00
elad
956ae17876
spu: add a missing STOP code
...
should fix #2456
for whatever reason, this call accepts only an empty ouput mailbox, otherwise break
2018-02-06 04:09:07 +04:00
kd-11
ab17b49e15
scheduler stuff
...
- more threads for rsx
- better 1600
2018-01-22 11:43:35 +03:00
kd-11
cbc8bf01a1
cell/scheduler: Manage thread placement depending on cpu hardware
2018-01-19 12:03:57 +03:00
elad
24e97b9e03
SPU: Allow writing to the WrSRR0 channel
2018-01-16 04:34:15 +04:00
elad
5848864f55
SPU: Allow reading of the RdSRR0 channel
...
stupid bug
2018-01-16 04:34:15 +04:00
Nekotekina
4aee4ed6d7
SPU: remove SSSE3 dependency
2017-12-20 00:04:08 +03:00
scribam
50f2be57f7
Spaces to tabs
2017-12-10 16:48:33 +04:00
Jake
d17093e65b
spu: Fix interrupt jump check - also change interrupt variable to atomic bool for ease of setting/checking
2017-12-01 20:29:59 +03:00
Jake
34e01ba3d8
mfc: Fix support for list transfer stall bit with partial support for out of order execution - Also give Sync commands a size so they are properly detected by queue checks
2017-12-01 20:29:59 +03:00
elad
91fd1465f2
SPU MFC: Clamp tag and size ( #3803 )
2017-11-29 16:28:41 +04:00
Jake
494cbac78b
spu: save and restore mfc cmd after processing
2017-10-28 12:46:20 +03:00
Jake
0d46a8e786
spu: Implement readch(mfc_cmd)
2017-10-28 12:46:20 +03:00
Nekotekina
3a08dd7dde
RawSPU: implement Prxy_TagStatus_offs
...
Rollback to immediate MFC transfers
2017-08-31 22:03:47 +03:00
kd-11
17c399d4e8
spu: acquire_pc rewritten to be more precise in timing
...
- More accurate pauses may slightly reduce performance but makes it more viable
to allow more threads to participate without stuttering
2017-07-27 14:33:30 +03:00
Nekotekina
b24eb621ae
Use RTM instructions (skylake+)
2017-07-20 17:22:09 +03:00
kd-11
582913dc31
spu: Simplify watchdog design (PC is purely HLE and occupies SPU code kernel space only, max 256K)
2017-07-19 23:28:33 +03:00
kd-11
cbd1b28d0d
spu: Add polling loop detection and clean up channel access contention code
...
- spus run a tight gpu-style kernel with no multitasking on the cores themselves
-- this does not map well to PC processor cores because they never sleep even when doing nothing
-- the poll detection hack tries to find a good place to insert a scheduler yield
-- RdDec is a good spot as it signifies the spu kernel is waiting on a timer
2017-07-19 23:28:33 +03:00
kd-11
72e13ddeb2
spu: Implement concurrent instruction execution watchdog for wrch
...
- Delays threads by a predetermined amount to 'desync' spurs kernels.
Largely reduces lock contention issues as well as making spurs kernels
play nice with reservations
- Also reduces number of lost notifications (SPU_EVENT_LR)
2017-07-19 23:28:33 +03:00
kd-11
ab97a0a5a3
spu: dma tweaks
2017-07-08 14:52:16 +03:00
Nekotekina
6561ddae41
PPU LLVM: multithread compilation
2017-06-24 19:12:19 +03:00
Nekotekina
f010b5b235
Configuration simplified
2017-05-20 16:01:48 +03:00
Nekotekina
b613fb70f1
Fix MFC_WrTagUpdate
2017-05-19 01:13:23 +03:00
kd-11
df7b466656
spu: Speed hacks - Do not starve PPU threads
...
optionally hint to the OS scheduler to give less attention to SPUs
ui: Add speed 'hacks' as configurable options
2017-05-10 21:50:14 +03:00
Nekotekina
463e18f893
Disable SPUJIT.log (opt-in)
2017-04-20 00:52:31 +03:00
Nekotekina
db1b012a26
SPU fix
2017-04-16 17:44:20 +03:00
Nekotekina
63a107acbc
Small fix
2017-03-14 16:12:03 +03:00
Nekotekina
7b65f93953
SPU ch69
2017-03-11 21:55:50 +03:00
Nekotekina
4739eb3601
Reservation fix
2017-03-11 15:48:43 +03:00
Nekotekina
5e3bacbd9b
New reservations
...
Memory system cleanup
sys_memory_get_page_attribute
2017-03-10 15:51:40 +03:00
Nekotekina
8369cb2af6
Complex STOP 0x0 hack
2017-02-24 16:57:09 +03:00
Nekotekina
07d49b1bd8
sys_spu_thread_send_event fix
2017-02-24 16:57:09 +03:00
Nekotekina
9000407a77
cpu_thread::test_state added
...
lv2_obj::sleep adjustment
synchronization fixes
2017-02-22 13:23:21 +03:00
Nekotekina
8891d85f75
Hack for 0x0
2017-02-13 18:32:54 +03:00
Nekotekina
d2ddb9882f
SPU: IRET, SN event
2017-02-13 16:29:32 +03:00
Oil
1669d0fdbd
Minor changes ( #2352 )
...
* More initial values for rsx method registers
* Implemented spu decrementer event
* Remove u32 cast
2017-02-07 23:59:59 +03:00
Nekotekina
246b9f3182
CHECK_EMU_STATUS removal
2017-02-05 17:35:27 +03:00
Nekotekina
ec943b38a2
sys_spu...
2017-02-05 02:26:57 +03:00
Nekotekina
68f0393cf3
sys_interrupt...
2017-02-04 20:39:04 +03:00
Nekotekina
6537909fd2
sys_event_queue...
2017-02-04 20:39:04 +03:00
Nekotekina
26ced19e18
sys_event_flag...
2017-02-04 20:39:03 +03:00
Nekotekina
b21fce4d6f
IdManager improved
...
lv2_obj for kernel objects
Simple lookup (vector)
Another idm API refactoring
2017-01-29 21:37:04 +03:00
Nekotekina
a5a2d43d7c
Thread.cpp refinement
...
Hide thread mutex
Safe notify() method
Other refactoring
2017-01-29 19:52:19 +03:00
Nekotekina
df6607e236
Minor fixes
2017-01-28 03:21:11 +03:00
Nekotekina
591a6c8671
IdManager improved
2017-01-25 23:29:36 +03:00
Nekotekina
dbcb5df172
WRAP_EXPR macro removed
2016-08-15 17:11:45 +03:00
Nekotekina
56b9b38c9c
verify() fix
2016-08-15 14:59:19 +03:00
Nekotekina
1f3433464c
ENSURES usage removed
2016-08-14 22:41:01 +03:00
Nekotekina
5e0489dcc0
cpu_init removed
2016-08-14 18:07:34 +03:00
Nekotekina
bdeccd889f
cpu_type removed, system_type added
...
cpu_state -> cpu_flag
vm::stack_allocator template improved
ppu_cmd type changed to enum, cmd64 type added
2016-08-09 17:14:41 +03:00
Nekotekina
a7e808b35b
EXCEPTION macro removed
...
fmt::throw_exception<> implemented
::narrow improved
Minor fixes
2016-08-08 19:19:32 +03:00
Nekotekina
46735d6b3d
New bitsets (experimental)
2016-08-08 16:29:37 +03:00
Nekotekina
5a36c57c57
Formatting system improved
...
`unveil<>` renamed to `fmt_unveil<>`, now packs args to u64 imitating va_args
`bijective...` removed, `cfg::enum_entry` now uses formatting system
`fmt_class_string<>` added, providing type-specific "%s" handler function
Added `fmt::append`, removed `fmt::narrow` (too obscure)
Utilities/cfmt.h: C-style format template function (WIP)
Minor formatting fixes and cleanup
2016-08-04 21:34:00 +03:00
Nekotekina
f8719c1230
PPUThread refactoring
...
`CallbackManager` removed, added _gcm_intr_thread for cellGcmSys
`PPUThread` renamed to `ppu_thread`, inheritance allowed
Added lightweight command queue for `ppu_thread`
Implemented call stack dump for PPU
`get_current_thread_mutex` removed
`thread_ctrl::spawn`: minor initialization fix
`thread_ctrl::wait_for` added
`named_thread`: some methods added
`cpu_thread::run` added
Some bugs fixes, including SPU channels
2016-07-30 16:35:02 +03:00
Nekotekina
7a921cbdf9
cpu_thread compressed
2016-06-27 16:43:57 +03:00
Nekotekina
a8bebcba55
LLVM AOT
2016-06-19 21:29:48 +03:00
Nekotekina
e2d82394f6
Cell
2016-05-23 16:22:23 +03:00
Ivan
aafcf44581
Header optimizations ( #1684 )
...
Shouldn't break anything. I hope.
2016-04-27 01:27:24 +03:00
Ivan
da7472fe81
Optimizations ( #1680 )
...
* Optimizations
1) Some headers simplified for better compilation time
2) Some templates simplified for smaller executable size
3) Eliminate std::future to fix compilation for mingw64
4) PKG installation can be cancelled now
5) cellGame fixes
6) XAudio2 fix for mingw64
7) PPUInterpreter bug fixed (Clang)
* any_pod<> implemented
Aliases: any16, any32, any64
rsx::make_command fixed
2016-04-25 13:49:12 +03:00
Ivan
efc8779275
SPU channel optimization ( #1675 )
2016-04-19 16:04:02 +03:00
Nekotekina
c4e99dbdb2
Partial commit: Cell
2016-04-15 19:22:34 +03:00
Nekotekina
38531459df
Logging system rewritten
...
GUI doesn't freeze anymore
Some things simplified
2016-01-13 18:54:57 +03:00
Nekotekina
3ed603074c
Changes done by [DH] rewritten
...
Added rsx_program_decompiler submodule
Added fs::dir iterator
Added fmt::match
2015-12-22 23:11:20 +03:00
DHrpcs3
8a21e0fcb8
Implemented some cellSaveData functions
...
Implemented cellSaveDataListSave, cellSaveDataListLoad,
cellSaveDataFixedSave, cellSaveDataFixedLoad, cellSaveDataAutoSave,
cellSaveDataAutoLoad
2015-12-20 10:39:07 +02:00
DHrpcs3
416d66a438
Ignore SPU sync channels
2015-12-20 10:16:31 +02:00
Nekotekina
ca6783ba9a
Threads improved, ID manager improved
2015-12-04 23:37:34 +03:00
O1L
c0255208cc
Old ini-manager only partially used in VFS. Global configuration used as defualt.
2015-10-27 01:09:31 +04:00
O1L
1673ba217c
Do not try to change default config, use state configs.
2015-10-24 22:48:07 +04:00
Nekotekina
a974ee009e
vm::var improved, cleanup
...
Mostly vm::var initialization introduced.
Added vm::make_var function.
2015-10-14 18:17:37 +03:00
Nekotekina
8ae3401ffa
Some things improved
...
shared_mutex_t implemented
GUI Emu Callbacks rewritten
fxm::import, fxm::import_always implemented
cellMsgDialog rewritten
Emu.CallAfter improved (returns std::future)
2015-09-22 16:48:21 +03:00
Nekotekina
7e01c81154
SPU Recompiler fixed
2015-09-07 00:36:32 +03:00
Nekotekina
817fec9684
SPU Cleanup
...
SPURecompiler improved
Old SPU decoder removed
SPU Interpreters merged
2015-09-02 00:38:44 +03:00
Nekotekina
5e14310071
noexcept usage fixed
...
thread_t renamed to named_thread_t
2015-08-24 21:22:48 +03:00
Nekotekina
dd665e7363
ID manager simplified
...
ID manager refactoring, redundant "type" information removed
2015-08-24 21:22:19 +03:00
Nekotekina
0aefaec46e
sys_event improved, some unnamed functions named
2015-07-21 23:14:38 +03:00
Nekotekina
6255f3b07d
sys_event_flag improved
2015-07-21 23:14:34 +03:00
Nekotekina
bc91ad0f4d
sys_event improved
2015-07-21 23:14:33 +03:00
Nekotekina
2f7fe35f5c
Minor style change
2015-07-21 23:14:31 +03:00
Nekotekina
8175630619
sys_cond/sys_mutex improved
2015-07-21 23:14:29 +03:00
Nekotekina
43d3ccce95
SPU Channels improved
2015-07-21 23:14:28 +03:00
Nekotekina
5bd83516ba
SPU Interrupt Enable Status implemented
...
SPU Interrupts are still NOT implemented
2015-07-21 23:14:25 +03:00
Nekotekina
a7668ff57f
SPU_EVENT_LR improved
2015-07-21 23:14:22 +03:00
Nekotekina
a8fcf71f9c
Minor bugfix, cleanup
2015-07-21 23:14:04 +03:00
Nekotekina
3bc6c53eb3
sys_interrupt improved
2015-07-18 03:12:10 +03:00