Commit graph

1800 commits

Author SHA1 Message Date
eladash d4a24433e8 Fix DECR mode allocations (sys_memory) 2019-01-31 16:03:38 +03:00
Nekotekina 400718dfd9 cellSaveData: try to handle occasional failures
Retry moving directory on FILE_ACCESS_ERROR
2019-01-31 01:08:30 +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 50922faac9 Remove SPUThread::jit_dispatcher
Use global array - save memory
Move the array to JIT memory
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
eladash 587fe421ee Make ppu main_thread unjoinable 2019-01-25 18:04:33 +03:00
eladash 56b7581ade Return error code in sys_ppu_thread_get_join_state 2019-01-25 18:04:33 +03:00
elad afeacc171f Fix spurious abort in sys_rwlock_tryrlock and sys_semaphore_trywait (#5579)
Use full cmpxchg loop to prevent occasional return of CELL_EBUSY
2019-01-22 23:10:17 +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
Megamouse 8d5d44141e rsx/Qt: fix some undefined behavior in progress_dialog CallAfters 2019-01-22 12:04:01 +03:00
Nekotekina 59e0296281 cellMsgDialog: fix error spam on CELL_OK 2019-01-18 16:49:17 +03:00
eladash a11d76249d Patch ppu main thread prio 2019-01-17 21:58:09 +03:00
elad fc92ae4085 SPU/PPU atomics performance and LR event fixes (#5435)
* Fix SPU LR event setting in atomic commands according to hw test
* MFC: increment timestamp for PUT cmd in non-tsx path
* MFC: fix reservation lost test on non-tsx path in regard to the lock bit
* Reservation notification moved out of writer_lock scope to reduce its lifetime
* Use passive_lock/unlock in ppu atomic inctrustions to reduce redundancy
* Lock only once for dma transfers (non-TSX)
* Don't use RDTSC in reservation update logic
* Remove MFC cmd args passing to process_mfc_cmd
* Reorder check_state cpu_flag::memory check for faster unlocking
* Specialization for 128-byte data copy in SPU dma transfers
* Implement memory range locks and isolate PPU and SPU passive lock logic
2019-01-15 18:31:21 +03:00
eladash f19fd23227 spu: Fix support for multiple lists when one is stalled 2019-01-15 02:33:22 +03:00
Megamouse 58a22d1461 cellSaveData: add error_code 2019-01-14 21:12:13 +01:00
Nekotekina c5026f7109 cellVdec: fix minor race 2019-01-14 01:24:05 +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 aefee04c4a SPU analyser: fix branch to self
Fixed not filling the predeccessor list on BR-to-self on entry point
Version bumped (v1-tane)
Closes #5353
2019-01-14 00:01:27 +03:00
Nekotekina 74d684b57e cellAudio: fix template arg style
Add constexpr if
2019-01-14 00:01:27 +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 cfdf50dcff SPU: ensure sys_spu_thread_group_join receives correct exit status
Following #5334
2019-01-13 14:45:36 +03:00
Nekotekina 453344c232 cellSaveData: workaround possible issues with symlinks
Don't use ../ location for temporary directories
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
Megamouse 022550a43b cellOskDialog: use atomic_op for state operations 2019-01-12 23:39:01 +01:00
Megamouse d7cc97433d cellOskDialogUnloadAsync: guarantee 0 terminated return string 2019-01-12 23:39:01 +01:00
Megamouse fce9f352a9 cellOskDialog: fix cellOskDialogAbort 2019-01-12 23:39:01 +01:00
Megamouse f9c1b15bf4 cellOskDialog: fix cellOskDialogUnloadAsync return string
fixes Class of Heroes 2G
2019-01-12 23:39:01 +01:00
Rui Pinheiro 3406acd8c9 Fixups for audio PR 2019-01-12 22:22:03 +03:00
Rui Pinheiro 49fbf9bf0f Tweaks to buffering algorithm
Increase untouched buffer timeout when some of the buffers have been
touched. Might improve audio quality on games that suffered from
miniscule popping even when buffering was enabled (such as DeS).

In addition, made time stretching algorithm slightly more aggressive.

Includes some other tiny tweaks as well.
2019-01-12 21:29:56 +03:00
Rui Pinheiro 48db0430d4 Misc. Tweaks 2019-01-12 21:29:56 +03:00
Rui Pinheiro 650bc0c1f2 Fix game pausing/unpausing 2019-01-12 21:29:56 +03:00
Rui Pinheiro f17f984721 Add timeout for untouched buffers 2019-01-12 21:29:56 +03:00
Rui Pinheiro 8f6043b568 Change cellAudio diagnostic messages to Trace 2019-01-12 21:29:56 +03:00
Rui Pinheiro 67f9397746 Various fixes
In addition, linux builds (and ALSA/PA) now work again
2019-01-12 21:29:56 +03:00
Rui Pinheiro 4f39457858 Rewrite OpenAL backend to support new features 2019-01-12 21:29:56 +03:00
Rui Pinheiro 892deb1552 Implement basic time stretching + Tweaks 2019-01-12 21:29:56 +03:00
Rui Pinheiro 5159d3559e Implement Audio Backend Capabilities querying
Also renames "AudioThread" to "AudioBackend". The new name is more
descriptive of what the class really is responsible for, since the
backends are not responsible for managing the audio thread.

NOTE: Right now only XAudio2 is supported
2019-01-12 21:29:56 +03:00
Rui Pinheiro 2addbe6be2 Implement basic cellAudio buffering 2019-01-12 21:29:56 +03:00
Megamouse e18e9909af cellOsk fixup 2019-01-12 08:26:04 +01:00
RipleyTom fad80ed443 revert part of #5529 2019-01-12 06:59:07 +01:00
Megamouse e3ea29599d cellGame: fix some installation issues
fixes HAWX2 (at least until it crashes again)
2019-01-11 03:36:22 +03:00
Megamouse e5aede7aa7 cellOskDialog: initial code for cellOskDialogSetSeparateWindowOption 2019-01-10 13:05:48 +01:00
Megamouse 17058113df cellOskDialog: add multi-line option and handle more permutations (WIP) 2019-01-10 13:05:48 +01:00
Megamouse 4a8b30c625 cellOskDialog: cellOskDialogExtRegisterConfirmWordFilterCallback 2019-01-10 13:05:48 +01:00
Megamouse e0ac244fed split MsgDialogBase 2019-01-10 13:05:48 +01:00
Megamouse d5303b0b64 add error_code to cellOskDialog and cellMsgDialog 2019-01-10 13:05:48 +01:00
Megamouse 7cc4239cc2 cellOskDialog: add message 2019-01-10 13:05:48 +01:00
Megamouse cc30b4e5be cellOskDialog: don't send input signals without seperate screen enabled 2019-01-10 13:05:48 +01:00
Megamouse 16f2975792 cellOskDialog: properly handle dialog states to improve param checks 2019-01-10 13:05:48 +01:00