Commit graph

13311 commits

Author SHA1 Message Date
Eladash 2759091ede Debugger: Rewind SPU captures
Very basic implementation, can be improved.
2022-09-25 14:31:39 +03:00
Eladash ae02b71a85 Savestates/Debugger: fix mfc debug option with savestates 2022-09-25 14:31:39 +03:00
Eladash 4445569bb0 Savestates: Don't actually delete savestates 2022-09-25 14:31:39 +03:00
kd-11 dd8a337b14 rsx: Fix some more warnings 2022-09-22 23:46:48 +03:00
kd-11 0572d44996 gl: Fix enum collision 2022-09-22 23:46:48 +03:00
kd-11 38aa116c59 Fix build 2022-09-22 23:46:48 +03:00
kd-11 61666bae69 rsx: Fix hardware deswizzle not getting used when hardware deswizzle flag is not set 2022-09-22 23:46:48 +03:00
kd-11 362a26a404 gl: Fix D24X8 accelerated encode/decode
- PS3 D24X8 is swapped as a full word, unlike PC.
- Add missing paths to handle custom swap behavior.
2022-09-22 23:46:48 +03:00
kd-11 81fa3da101 gl: Minor optimization around test..set patterns in the state tracker 2022-09-22 23:46:48 +03:00
RipleyTom bd1fb86492 Fix pkg batch install dlg on linux 2022-09-22 19:41:09 +02:00
Elad Ashkenazi 238298f695
sys_ppu_thread: Fix surmixer hack (#12689)
* sys_ppu_thread: Fix surmixer hack

* Hotfix after #12678
2022-09-21 21:10:59 +03:00
Eladash 194f7375da SPU/LV2: Fix tiny race conditions 2022-09-21 20:35:34 +03:00
brian218 3581c5b078 USIO: Save Game Settings 2022-09-21 14:43:24 +03:00
Marc Riera c5572acd38 Allow USB passthrough for Densha de GO! controller 2022-09-21 12:04:16 +03:00
nastys acc2fea7e3
Update MoltenVK to 250e1f9 and single queue (#12620) 2022-09-20 11:12:27 +03:00
kd-11 3dc7b64fa1 rsx: Fix initialization of null cubemap resources 2022-09-19 19:13:46 +03:00
kd-11 79f2c21dfb gl: Restrict compute image bindings to [0-8]
NVIDIA only supports 8 compute image slots even on modern GPUs.
2022-09-19 01:37:10 +03:00
kd-11 df36c44bc2 gl: Avoid UBO/SSBO binding index collisions
- Some drivers don't like this. Actually only RADV.
- Almost all GPUs going back 15 years have a large number of UBO slots but limited SSBO slots.
  Move UBO slots up as we have tons more headroom there.
2022-09-19 01:37:10 +03:00
Nekotekina c4db65cc08 Fix one more warning 2022-09-18 18:35:17 +03:00
Nekotekina c86ddb3b7d cellImeJp: fix regression 2022-09-18 18:35:17 +03:00
Florin9doi a1aebdc5d6
Request macOS 10.14.+ permissions (#12600) 2022-09-17 18:26:22 +01:00
Nekotekina b49a1f27eb Warning fixes 2022-09-17 16:35:02 +03:00
brian218 e7fd84e031 USIO: Keep LastGameStatus Memory 2022-09-17 10:59:28 +03:00
Eladash 9d9e18f614 CPU preemption control: don't yield if we can't stop 2022-09-16 18:57:55 +03:00
Eladash c8199de188 CPU preemption control: Improve stutter elimination 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 3cebea1801 CPU preemption control: extend range to 400 2022-09-16 18:57:55 +03:00
Eladash 2e9ee81dcd CPU preemption control: Improve analysis 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 9c5108c1ca CPU preemption control: Add one more debug variable 2022-09-16 18:57:55 +03:00
Eladash 2807be7080 SPU: Regression fix after #12648 2022-09-13 20:11:30 +03:00
Eladash ec7b18dab5 Implement independent CPU preemptions 2022-09-13 19:28:20 +03:00
brian218 b9e20dc5c9 sys_game_board_storage_read(): Fix regression after #12637 2022-09-13 12:57:43 +03:00
Eladash cfdc852f03 SPU: Power consumption reduction when using SPU inaccurate reservations 2022-09-13 11:21:01 +03:00
Eladash 92514e33bb Avoid reservation notifications in liblv2.sprx 2022-09-13 11:21:01 +03:00
kd-11 572a2a06d1 rsx: Properly reset occlusion counters even when the register is not in use. 2022-09-12 17:15:06 +03:00
Eladash f076fcd539 cellMusic: Implement some error checking 2022-09-12 15:04:23 +03:00
Eladash 4ac59875af ppu: add some debug information 2022-09-12 15:04:23 +03:00
Eladash 780ca38f2f SPU: Extend Inaccurate SPU reservations 2022-09-12 14:16:39 +03:00
Yui 9e83bc6544
Add the ability to set the PSID from the configuration (#12637) 2022-09-12 13:23:13 +03:00
Eladash 37aefe5811 sys_ppu_thread: Fix max thread name size 2022-09-12 12:57:39 +03:00
kd-11 d686b48f65 rsx: Simplify FIFO concurrent access. 2022-09-09 23:17:27 +03:00
kd-11 f319362e35 vk: Fix queue concurrency behavior for images 2022-09-09 23:17:27 +03:00
kd-11 0d9b1654ec asm: Avoid ALU instructions on busy wait cycles 2022-09-09 23:17:27 +03:00
kd-11 940e726754 rsx: Minor FIFO cleanup 2022-09-09 23:17:27 +03:00
kd-11 f43824762a rsx: Get rid of an allocation in analyse_vertex_data that adds about 5% overhead.
This method is called many thousands of times per frame and that single allocation introduces a small perf hit.
Just get rid of it, it doesn't improve anything to have it there.
2022-09-09 23:17:27 +03:00
kd-11 cd53bb7eff rsx: Avoid on-the-fly ZCULL allocations with unordered_map 2022-09-09 23:17:27 +03:00
Eladash 60fc90bb8e System.cpp: Fix Create Firmware Cache 2022-09-08 19:38:11 +03:00
Nekotekina 5d91caebe9 Linux: delete /tmp/perf.map on exit 2022-09-08 16:56:06 +03:00
Eladash eb4131e1c7 cellGame: Minor revert
I think there are many more bugs here..
2022-09-07 20:42:23 +03:00
Eladash 07f0ba213e SPU: Allow special channel storage in channel busy waiting period
Move code to SPUThread.cpp.
2022-09-07 20:42:23 +03:00
Eladash 48382564d1 SPU: Implement "quintuple" Inbound MBOX storage 2022-09-07 20:42:23 +03:00
Eladash 274386a078 rsx: Add some debugging information 2022-09-07 18:39:32 +03:00
Eladash 557d015662 System.cpp: Fix Create PPU Cache regression 2022-09-07 18:39:32 +03:00
Nekotekina 5985f0eefa BufferUtils: cleanup regarding ARM64 2022-09-07 17:59:07 +03:00
Nekotekina 82258915da BufferUtils: rewrite remaining intrinsic code with simd_builder 2022-09-07 17:59:07 +03:00
Nekotekina 11a1f090d3 BufferUtils: simd_builder refactoring
Some simplifications implemented.
2022-09-07 17:59:07 +03:00
sguo35 a0d48c588a spu/arm64: clean up assembly code generation
Clean up asmjit usage so we don't unnecessarily allocate memory
anymore for SPURecompiler functions.
2022-09-07 17:33:01 +03:00
Eladash 5e2424da58 IdManager.cpp: Fix cellFs IDs 2022-09-07 17:05:51 +03:00
Eladash 72a6696f5c cellGame Fix PS3 disc insert 2022-09-07 17:05:51 +03:00
brian218 9087116ee5 Fix USIO fault when it received unsupported FW commands 2022-09-07 16:42:37 +03:00
Eladash 89e0dcba5e cellVdec: Adjust for reservations 2022-09-07 16:05:56 +03:00
Eladash 7698064f5a SPU: Untangle VM lock to avoid deadlocks 2022-09-07 16:05:56 +03:00
Megamouse ab31e96385 Qt: batch stack suffix updates
No need to patch the suffix every single time. We can just do it when we exit the stack loop.
2022-09-05 21:20:14 +02:00
Megamouse a9dcad629b Qt: fix weird missing space in stack log 2022-09-05 21:20:14 +02:00
Megamouse e49679484a Qt: simplify log logic. We can in fact only flush once.
Also invert a negation
2022-09-05 21:20:14 +02:00
Elad Ashkenazi 290226539f
Fix ARM build (#12606) 2022-09-04 21:11:04 +03:00
brian218 75efc79930 Implemented sys_game_board_storage_read() 2022-09-04 13:28:05 +03:00
Nick Renieris 905496e926 PPU: Fix STVLX
Fixes Sly 2 and Sly 3 crash on boot (RSX desync).
2022-09-04 12:27:29 +03:00
srive 64579eef7e Update tooltips.h 2022-09-02 08:59:08 +02:00
Elad Ashkenazi e0a648240f Unlog sceNpUtilCmpNpId 2022-09-02 08:29:09 +02:00
Eladash 7bad8f3348 Savestates/SPU: Minor fixup after fb01ed55 2022-09-01 20:09:28 +03:00
Eladash 11a197a387 Savestates/RSX: fix unintentional vblank thread spin after abort 2022-09-01 20:09:28 +03:00
Eladash ee1384341e rsx: Implement atomic vertex upload (with Strict Rendering Mode) 2022-09-01 20:09:28 +03:00
Eladash fb01ed55e5 SPU: Fix potential deadlock in event queue syscalls 2022-09-01 19:03:38 +03:00
Elad Ashkenazi 5a0a5d9ff1
vm.cpp: Fix emulation stopping on SPU access violation (#12586) 2022-09-01 18:23:18 +03:00
Nekotekina 58e3232710 BufferUtils: Fix regression in upload_untouched 2022-09-01 17:39:04 +03:00
Ani 2cd7238e76 rpcs3_version: Bump to 0.0.24 2022-08-31 23:24:42 +01:00
Eladash 591159c4a9 Debugger: Prevent possible "current instruction" duplication when the thread is running 2022-08-30 08:57:33 +02:00
Eladash 7baf959975 Avoid empty resume output when using PPU debug option 2022-08-30 08:57:33 +02:00
Eladash 3f02935844 Add some debugging information 2022-08-30 08:57:33 +02:00
RipleyTom f98251a05a Fixes -w leaking 2022-08-30 07:46:42 +02:00
Nekotekina e28707055b Implement simd_builder for x86
ASMJIT-based tool for building vectorized loops (such as ones in BufferUtils.cpp)
2022-08-28 18:38:52 +03:00
brian218 698c3415ea Fixed SIG: Thread terminated due to fatal error: Failed to read hex string: invalid argument
Fixed the error which occurred when a game attempted to read the VID/PID of an undefined VFS USB device:

SIG: Thread terminated due to fatal error: Failed to read hex string: invalid argument
(in file C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build\rpcs3\Emu\Cell\lv2\sys_fs.cpp:1942[:25], in function sys_fs_fcntl)
2022-08-26 08:45:14 +02:00
Eladash daf43989fc Thread.h: Improve thread abort performance 2022-08-25 23:54:56 +03:00
Eladash c7586de280 Savestates/sys_fs: Fix saving encrypted and split-files file descriptors 2022-08-25 23:54:56 +03:00
Eladash 506b9deec5 Savestates/SPU LLVM: Improve saving performance 2022-08-25 23:54:56 +03:00
kd-11 1fc0191311 Fix build 2022-08-23 23:49:46 +03:00
kd-11 1f9e04f72d rsx/vk: Implement flushing surface cache blocks to linear mem 2022-08-23 23:49:46 +03:00
Eladash a71bdc761e SPU/Debugger: Improve debugging reservations
Simplify and make the debugging results more consistent.
2022-08-22 18:24:26 +03:00
Eladash 9d8f4d5cfa Bugfix after #12523 2022-08-22 18:24:26 +03:00
Eladash ee87fdc869 Fix GETLLAR spin detection 2022-08-22 08:33:22 +03:00
Eladash bf63a18c5f SPU Add ability to specify percentage of busy waiting 2022-08-21 15:02:01 +03:00
Eladash ddba30988b vm: Attempt to not remove cpu_flag::wait flag during access violation 2022-08-21 15:02:01 +03:00
Eladash b0e2c959eb SPU: Disable notification if no changes were made in PUTLLC 2022-08-21 15:02:01 +03:00
Eladash 28bec8e1bf SPU: Implement custom reservation condition in atomic wait 2022-08-21 15:02:01 +03:00
Eladash 86702186f2 PPU: Detect lwmutex reservation pattern and optimize it 2022-08-21 15:02:01 +03:00
Eladash 82b1a2bd7a SPU: add the concept of inaccurate reservations
Implement cellSpursRequestIdleSpu
2022-08-21 15:02:01 +03:00
Eladash d36cf71a2d Savestates: Fix PPU analysis when patches are applied 2022-08-21 15:02:01 +03:00
Eladash 1dd1062be1 PPU LLVM: Fix HLE function injection 2022-08-21 15:02:01 +03:00
Eladash c0e3b86064 SPU: Optimize spu_thread::get_events() 2022-08-21 15:02:01 +03:00
Eladash 6210a8491f SPU: Optimize and enable SPU GETLLAR Polling detection by default
* Make this setting guard all reservation waitings. (renamed)
* Revert atomic list usage: it's more expensive and not needed because it has a timeout and is not optimized for the rest of the waitables.
2022-08-21 15:02:01 +03:00
Eladash 33a4f05ffa SPU: Interleave loads/stores in reservation access utilities 2022-08-21 15:02:01 +03:00
kd-11 bca833dad7 Fix surface reuse 2022-08-20 01:23:15 +03:00
kd-11 f981e05908 rsx: Do not lie about surface details 2022-08-20 01:23:15 +03:00
kd-11 b5abd777b0 rsx: Allow longer dispatch queues to accomodate games with high draw call count 2022-08-19 20:29:32 +03:00
Elad Ashkenazi b2c9add47e rsx: Fix semaphore timeout on boot
Allow semaphore timeout to be disabled again.
2022-08-19 15:40:20 +03:00
kd-11 a401a192b8 Fixup for dst_stage 2022-08-19 14:29:20 +03:00
kd-11 ad1b007dd1 Fix whitespace 2022-08-19 14:29:20 +03:00
kd-11 71e35c8b4d vk: Implement support for VK_EXT_attachment_feedback_loop_layout 2022-08-19 14:29:20 +03:00
kd-11 2e504b2dac rsx: Silence some warnings 2022-08-19 14:29:20 +03:00
Nekotekina b6608ad31d vm_native: rewrite win7 workaround 2022-08-15 12:26:17 +03:00
kd-11 edb39039dd Fix linux build 2022-08-14 23:53:50 +03:00
kd-11 bacf518189 rsx: Fix 2D intersection tests 2022-08-14 23:53:50 +03:00
kd-11 1244044647 util: Provide stack-trace utilities 2022-08-14 23:53:50 +03:00
kd-11 b960ce1426 vk: Align write length when pre-filling buffers with constant patterns 2022-08-14 23:53:50 +03:00
kd-11 c55a889c23 vk: Initialize buffer info blocks to avoid null descriptors 2022-08-14 23:53:50 +03:00
Megamouse 829af30568 evdev: add motion device 2022-08-14 11:04:57 +02:00
Eladash a3007e11ca SPU: Fix minor race in sys_spu_thread_receive_event
Check final cpu_state::state value for suspend state because that's the variable the thread waits on.
2022-08-12 15:20:48 +03:00
Eladash 9a981b5292 rsx_debugger: Fix memory leak 2022-08-12 15:20:48 +03:00
Eladash 4464a6c3f6 CG-Disasm: Name input/output vetex arrays 2022-08-12 15:20:48 +03:00
Eladash d30ac20fad Debugger: Fix and use centered PC by default
* Fix instruction-selection dependent functionality.
* Remove odd instruction position jumps in add/remove breakpoint.
* Make PC fixate at 1/3 of the frame because knowing future instructions is more important than knowing the previous.
2022-08-12 15:20:48 +03:00
Nekotekina 7bb2d94e53 vm: use sparse files to emulate overcommit memory
Fix shm::map_critical page flags.
2022-08-12 13:59:03 +03:00
Eladash 7ff4509858 sys_lwcond: Fix a loose notification in cond wait 2022-08-11 12:44:40 +03:00
Eladash f2997e4c00 LV2: Fix the most annoying race ever
Timeline of the race:
1. The PPU is in SLEEP state. state = suspend.
2. lv2_obj::awake is called on the traced thread and is now in ONPROC state, state = signal.
3. lv2_obj::awake is called by another thread externally with a priority higher than our traced thread and appends it to g_pending. state = suspend + signal.
4. lv2_obj::sleep/set_priority (higering priority) is called on any thread which is in ONPROC. Causing it to enter SLEEP or RUNNING state, while the traced thread is back in queue in ONPROC. state = suspend + signal.
5. The traced thread finally calls lv2_obj::awake on itself, g_pending decrements to 0 and we a have a rescheduling event, after XOR state = 0!!! (no signal)
6. In check_state: cpu_sleep_called is now true and remains this way.
7. Another thread with a higher prioty kicks in and appends the traced thread into g_pending. state = suspend.
8. The traced thread is at cpu_thread::cpu_wait(), and that's where it's gonna spend the rest of its life.
2022-08-11 12:44:40 +03:00
Eladash 133e9d4705 CPUThread.cpp: Fix cpu_flag::pending reset 2022-08-11 11:42:16 +03:00
Eladash 501ca4bcf5 logs: Prevent potential deadlock of the main thread in stack mode
If a thread logs faster than the GUI thread can print on screen.
2022-08-11 11:42:16 +03:00
Eladash 9212942724 kernel_explorer: Add info about ppu_thread::ack_suspend
The wording is bad but unless the emulation went downhill it shouldn't print on screen repeatedly.
2022-08-11 11:42:16 +03:00
Eladash 683c1a6512 LV2: Optimize sys_ppu_thread a bit 2022-08-11 11:42:16 +03:00
Eladash 9b0d33048c Savestates/LV2: Fix race on _sys_lwcond_queue_wait saving
cpu_flag::again modification requires exclusive access.
2022-08-11 11:42:16 +03:00
Eladash bc8bf2c329 sys_cond/lwcond: Fix waiting time in the debugger for mutex lock 2022-08-11 11:42:16 +03:00
Elad Ashkenazi f0002501f7 sys_mutex/lwmutex: Regression fixes after #12378 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
shinra-electric cba4c3cdc4
[macOS] Update hid_pad_handler.cpp to prevent DS4 from disconnecting (#12493)
Prevents DS4 (and possibly DS3) from disconnecting from bluetooth after 15 minutes by using hidapi's non-exclusive mode. 
The most recent version of hidapi, 0.12 from two months ago, added "macOS-specific function(s) to open device(s) in non-exclusive mode".
2022-08-11 07:14:37 +02:00
kd-11 c51d3b5465 Workaround for msvc weirdness 2022-08-09 18:32:54 +03:00
kd-11 e179adc4a0 rsx: Refactor surface cache storage 2022-08-09 18:32:54 +03:00
Elad Ashkenazi 47f3740a70
System.cpp: Replace std::filesystem usage (#12474) 2022-08-08 05:46:32 +03:00
kd-11 61a055a1c6 Tuning 2022-08-07 22:14:49 +03:00
kd-11 64b4cfa59f rsx: Erase surface background when reloading after a pitch mismatch 2022-08-07 22:14:49 +03:00
kd-11 c799ffd223 rsx: Stubs for pitch conversion 2022-08-07 22:14:49 +03:00
Eladash 26e731b487 LV2: Re-add dropped optimization by previous commit
Currently only for lock-free syscalls.
2022-08-07 20:23:54 +03:00
Eladash 34bae90820 LV2: Move nearly all notifications out of all mutex scopes including IDM 2022-08-07 20:23:54 +03:00
Eladash b55a052a22 IdManager.h: Do not lock IDM mutex if the preliminary ID check failed
Optimizes common ESRCH failures. (lambda variants only atm)
2022-08-07 20:23:54 +03:00
Eladash 011aabe9ed LV2: Make sys_mutex and sys_lwmutex lock-free, add some busy waiting in sys_mutex_lock 2022-08-07 20:23:54 +03:00
Eladash a17a6527f6 LV2: Move memory unlocking outside of mutex ownership and make it conditional 2022-08-07 20:23:54 +03:00
Eladash 122c6256ca A fix of _spurs::add_workload 2022-08-07 20:23:54 +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
Eladash c7fbc16357 SPU: Postpone notifications to afterward group mutex ownership 2022-08-07 20:23:54 +03:00
Eladash bc728db15b LV2: Add busy waiting before entering atomic wait 2022-08-07 20:23:54 +03:00
Eladash 2eebbd307d LV2: Minor optimization regarding signal flag 2022-08-07 20:23:54 +03:00
Eladash dc851a729e LV2: Postpone thread notifications to afterward mutex ownership(s) 2022-08-07 20:23:54 +03:00
Eladash 6007fd630f Do not use lv2_obj::g_waiting when not needed in sys_timer_usleep 2022-08-07 20:23:54 +03:00
Megamouse cb0ecb2afb cellPngEnc 2022-08-06 10:35:10 +02:00
sguo35 84a785ea67 arm64: implement pshufb intrinsic 2022-08-05 22:53:11 +02:00
sguo35 cc1e4d2194 ppu/arm64: don't restore rsp on ppu_gateway return
Don't restore rsp on ppu_gateway return, since it can be reentrant. Also
change some registers to align with the x86 version's 32bit/64bit
usages.
2022-08-05 22:53:11 +02:00
Megamouse b2d84dcebd Qt: Add save filtered log to menu of log viewer 2022-08-05 20:50:51 +02:00
Megamouse 958d77ba52 Qt: filter log viewer when opening a file 2022-08-05 20:50:51 +02:00
Megamouse c4b38869ab Input: fix pad initialization 2022-08-05 20:16:21 +02:00
Eladash fd1968dd22 Savestates: Save SFO directory path for PSN games 2022-08-05 19:19:16 +03:00
Elad Ashkenazi 88b80ebdf5
sys_net: Fix missing locks in some syscalls (#12459) 2022-08-04 21:31:34 +03:00
kd-11 2445ab8d8e Fix RSX capture playback 2022-08-04 19:01:45 +03:00
Elad Ashkenazi 0e1931f178
sys_lwcond: Fix rare race on mode 3 signal (#12413) 2022-08-04 14:13:51 +03:00
kd-11 3e923b4993 rsx: Optimize VTX_FMT_SNORM16 decoding
- Cuts down SNORM16 overhead by ~65%
2022-08-03 23:33:31 +03:00
kd-11 8181498d86 gl: Alias UBO/SSBO slots to avoid exceeding the available number of binding slots.
- The sets are different anyway and should not overwrite each other in a proper driver.
2022-08-03 23:33:31 +03:00
kd-11 57dd611111 gl: Fix incomplete stencil view of depth-stencil texture
- Samplers must use point sampling for stencil views
2022-08-03 23:33:31 +03:00
Eladash b3162bd41c rsx/vp: Fix SNORM16 vertex decoding 2022-08-03 18:11:46 +03:00
Elad Ashkenazi cd2adbad9a Update rsx_methods.cpp 2022-08-03 17:15:59 +03:00
Elad Ashkenazi 99730ac4f9 Update rsx_methods.cpp 2022-08-03 17:15:59 +03:00
Elad Ashkenazi d2ab3383ad Update rsx_methods.cpp 2022-08-03 17:15:59 +03:00
Elad Ashkenazi 3b15a6b39e Update rsx_methods.cpp 2022-08-03 17:15:59 +03:00
Elad Ashkenazi 651e58f443 rsx: Trivial optimization 2022-08-03 17:15:59 +03:00
Eladash 769f9e33e9 Savestates/RSX: Fix fifo_control::restore_state 2022-08-03 15:35:41 +03:00
Eladash cf77bb7cfc Savestates/MSVC: Replace bugged std::unique (compiler bug) 2022-08-03 15:35:41 +03:00
Megamouse c75b76ddf5 cellPhotoImport: fallback to extension if sub_type is unknown 2022-08-02 01:43:23 +02:00
Megamouse 4dec8d7925 cellPhotoImport: allow dev_hdd1 2022-08-02 01:43:23 +02:00
Megamouse 934e7b614c cellPhotoExport/cellVideoExport: fix filenames 2022-08-02 01:43:23 +02:00
Megamouse 416b14de72 cellPhotoExport: first implementation 2022-08-01 19:11:14 +02:00
Megamouse b87099c790 cellVideoExport: fix some copy pasta errors and prevent file overwrite 2022-08-01 19:11:14 +02:00
kd-11 052725fdc7 rsx: Do not require ZCULL buffer binding to enable ZPASS counting
- ZPASS data is still accessible in unbuffered mode.
  The only thing that buffered ZCULL enables is something closer to early-Z where large blocks of pixels can be dicarded earlier.
  It is strictly a performance optimization and not required for ZPASS to work.
- Update ZCULL stat calculations to take into account unbuffered Z
2022-08-01 00:23:54 +03:00
Megamouse f90b79791f HLE: fix file not found errors in media functions 2022-07-31 16:45:05 +02:00
Elad Ashkenazi 7a8e918519 Update System.cpp 2022-07-30 08:33:09 +02:00
Elad Ashkenazi d99ae3809d Update keyboard_pad_handler.cpp 2022-07-29 13:45:19 +02:00
Malcolm Jestadt 51e6d0a336 SPU LLVM: Add integer compare optimization for FCMGT 2022-07-29 11:59:59 +03:00
Megamouse 228844c017 overlays: fix line wrapping and position of lines
- Fix off by one issue when we wrapping a line caused by unnecessary zeroed whitespaces.
- Fix centering of lines that end with carriage return caused by overzealous reset of counters.
- Remove fabs where there shouldn't be any
2022-07-29 09:26:45 +02:00
Megamouse 87e628a9e9 cellPhotoDecode: optimize get_scaled_image 2022-07-29 08:05:35 +02:00
Megamouse e6885e25b5 Qt: fix image ratio in screenshot_manager_dialog 2022-07-29 03:14:29 +02:00
Megamouse f31ffc4596 Implement cellPhotoDecode 2022-07-28 09:06:48 +02:00
Megamouse 4114f00c05 cellPhotoImport: fix vfs path and add some logging 2022-07-28 09:06:48 +02:00
Megamouse 8f7209f886 cellMusicSelectionContext: fix log message facepalm 2022-07-27 07:39:55 +02:00
Megamouse d80146c704 cellMusic: Fix resume, fast forward and rewind
- Sadly rewind does not work with the QMediaPlayer on windows
2022-07-27 07:39:55 +02:00
Megamouse 577f379a12 implement cellPhotoImport 2022-07-26 17:27:35 +02:00
Megamouse 3d73915358 cellSearch: improve populate_photo_info, read image headers 2022-07-26 17:27:35 +02:00
Megamouse a5317d50a5 cellMusicSelectionContext: log playlist 2022-07-26 17:27:35 +02:00
MSuih 143bd6cc80 Fix typo in tooltips.h 2022-07-25 21:28:24 +02:00
kd-11 c9058280e0 vk: Fix a potential deadlock 2022-07-25 21:05:31 +03:00
kd-11 5af50cfd55 vk: Handle corner cases
- Fix up flush sequence in DMA handling (WCB)
- Do not request resource sharing if queue family is not different!
2022-07-25 21:05:31 +03:00
kd-11 d846142f0c vk: Reimplement compliant async texture streaming
- Use CONCURRENT queue access instead of fighting with queue acquire/release via submit chains.
  The minor benefits of forcing EXCLUSIVE mode are buried under the huge penalty of multiple vkQueueSubmit.
  Batching submits does not help alleviate this situation. We simply must avoid interrupting execution.
2022-07-25 21:05:31 +03:00
Elad Ashkenazi 0ba0f9d2b9
Disable Disc update redirection for manual ELF loader (#12381) 2022-07-22 20:35:15 +02:00
Elad Ashkenazi f4f9c1865e
Savestates: Implement compatibility with disc Demon's Souls (#12379)
* Savestates: Implement compatibility with virtual /dev_bdvd/PS3_GAME
2022-07-22 19:23:23 +03:00
Megamouse c40439ae6b cellMusic/Decode: implement playlist shuffle and repeat 2022-07-22 08:42:43 +02:00
Megamouse 683fa2a392 Mount custom dev_bdvd if a disc game was mounted from dev_hdd0 2022-07-22 07:36:49 +02:00
kd-11 246bf1df64 Use C++17 ctor for string_view 2022-07-21 22:29:40 +03:00
kd-11 9a868e9239 gl: Silence compiler warning 2022-07-21 22:29:40 +03:00
kd-11 ab3cde1939 gl: Do some macro patching for intel driver 2022-07-21 22:29:40 +03:00
kd-11 bec3e156fb vk: Disable robust buffer access for ANV
- Robust access is nice, but we don't actually need it
2022-07-21 22:29:40 +03:00
Megamouse 086afbbaa5 overlays: implement back and focus in media_list_dialog 2022-07-21 01:36:33 +02:00
Megamouse cd4d73114c overlays: fix media_list_dialog title 2022-07-21 01:36:33 +02:00
Megamouse 14ca506774 Qt/savedata: use rsx overlays selection_code 2022-07-21 01:36:33 +02:00
Eladash 2b3ae8b638 Revert another change 2022-07-20 18:11:52 +03:00
Eladash bb9ae18c71 Savestates: Fix sys_rwlock_wunlock saving 2022-07-20 18:11:52 +03:00
Eladash ce01457510 Fix futile wait regression in sys_lwcond_signal 2022-07-20 18:11:52 +03:00
Megamouse d1a46b491e cellMusic: add some error checks and copy context to callback 2022-07-20 07:09:38 +02:00
Elad Ashkenazi 31df99f7d6
Logs: Flush unreported errors when turning off Stack Cell errors (#12366) 2022-07-19 17:05:51 +02:00
Eladash 5e11b2b056 log_frame: Minor fix for stack mode 2022-07-19 10:43:51 +03:00
Eladash d106934336 Savestates: Fix saving sys_mutex_unlock 2022-07-19 10:43:51 +03:00
Eladash 68718361a7 Allow non-existing paths in vfs::retrieve 2022-07-19 10:43:51 +03:00
Eladash c887865d54 Perform cleanup after Emulator::Load failures 2022-07-19 10:43:51 +03:00
Eladash dc48944979 Prefer BDVD over HDD0 in vfs::retrieve 2022-07-19 10:43:51 +03:00
Eladash d22b8b1d3a Savestates: Do not restart after Ctrl+S for now 2022-07-19 10:43:51 +03:00
Eladash 56619b20cf Savestates: savestate reload fix 2022-07-19 10:43:51 +03:00
Eladash 12ebf77e22 Savestates: save sys_spu_initialize settings 2022-07-19 10:43:51 +03:00
Megamouse 845af8bd96 cellGifDec: random stuff because I was bored 2022-07-18 22:23:25 +02:00
kd-11 680f08c2b8 gl: Destroy barrier signals correctly 2022-07-18 18:58:22 +03:00
kd-11 82bac4173e gl: Reuse scratch images 2022-07-18 18:58:22 +03:00
kd-11 8a8fda3e02 gl: Combine RGBA8/D24S8 readback and byteswap into one operation 2022-07-18 18:58:22 +03:00
kd-11 1c5b685398 gl: Only toggle state settings that are relevant to the current RSX state 2022-07-18 18:58:22 +03:00
kd-11 e95084f138 gl: Use DSA for imageview configuration and avoid needless bind operations 2022-07-18 18:58:22 +03:00
kd-11 e12d268662 gl: Implement support for texture1D decode 2022-07-18 18:58:22 +03:00
kd-11 6a3f17cd36 gl: Fix compute invocation counts for format handling code 2022-07-18 18:58:22 +03:00
Megamouse 34615d3a74 cellMic: slow down if no mics are configured 2022-07-17 19:31:05 +02:00
Eladash c0369b2e10 sys_net: Implement sys_net_abort 2022-07-17 14:53:03 +03:00
Megamouse 07ebbb6c84 cellSysutilAvc2SetStreamingTarget: remove ensure 2022-07-16 20:09:13 +02:00
sguo35 73ed657e00 spu/arm64: fix 16 byte branch patch alignment 2022-07-15 12:37:33 +03:00
sguo35 b02e6e222f arm64: enable fma and "avx" on Apple and Cortex CPUs 2022-07-15 12:37:33 +03:00
sguo35 c52abed4d3 spu: implement ubertrampoline generator for arm64
Implement the ubertrampoline generator for arm64. It generally follows
the x86 version, but uses asmjit to generate code instead of writing raw
opcodes to memory, trading memory usage for readability. Currently the
trampoline implementation is fairly inefficient in terms of instruction
size and is substantially larger than the x86 version.
2022-07-15 12:37:33 +03:00
sguo35 9e57efe82c spu: implement assembly functions for arm64 2022-07-15 12:37:33 +03:00
sguo35 77ab872bec spu: remove rotqby C++ impl
rotqby C++ implementation is broken, since replacing it with the
intrinsic version reliably fixes spurs test. A conditional branch
immediately after a rotqby instruction will fail using the C++ version
but succeed using the intrinsic.
2022-07-15 12:37:33 +03:00
sguo35 27acebc5f5 spu: use portable llvm recompiler on arm64
Since there is not yet an arm64 version of the assembly (fast) version.
2022-07-15 12:37:33 +03:00
sguo35 2755d9941c ppu: fix a bug where arm64 sp wasn't being saved
ASMJIT can silently fail and drop instructions when invalid operations
are performed (e.g. loading/storing sp). Explicitly move sp to a gp
register before doing loads/stores to fix this.
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
sguo35 086e12c6ca mac: mmap calls should initialize with r/w page perms
Mac/Arm64 pages should be R/W by default due to 16k page
incompatibility. Without this there will be segfaults due to invalid
permissions.
2022-07-15 12:37:33 +03:00
sguo35 9b19f16698 arm64: add optimized 16byte ld/st for armv8.4a+
16B ldp/stp are atomic on v8.4a+. See Arm Architecture Reference Manual,
"Changes to single-copy atomicity in Armv8.4". Add load/release atomic
impls for this instruction and add detection for 8.4a+ capability.
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
Megamouse 105781fa76 overlays: properly align lines with leading or trailing whitespace 2022-07-14 23:32:20 +02:00
Megamouse d2be12bb07 overlays: find missing characters lost during wrapped rendering 2022-07-14 23:32:20 +02:00
Megamouse fdc15e12c4 overlays: properly calculate offsets for wrapped text 2022-07-14 23:32:20 +02:00
Eladash e548743cbf Fixup rsx cpatures 2022-07-14 18:50:31 +03:00
Megamouse 7499f875a6 cellCrossControllerInitialize: add dialog 2022-07-13 19:12:46 +02:00
kd-11 cdef752a9c gl: Fix 2D->3D splat in CopyBufferToImage 2022-07-13 02:09:58 +03:00
kd-11 1483941bea gl: Implement row alignment in CopyBufferToImage routines 2022-07-13 02:09:58 +03:00
kd-11 9cc15be7f2 Fix linux build 2022-07-13 02:09:58 +03:00
kd-11 453e1bfaec gl: Silence compiler warning 2022-07-13 02:09:58 +03:00
kd-11 82439327fa gl: Support loading data from SSBO using compute shaders
- Gives better performance than using raw draw calls.
- Does not work with all formats. The draw call version is still used when needed.
2022-07-13 02:09:58 +03:00
kd-11 f60002e87d gl: Optimize memory barriers a bit
- Move waits to server side
- Increase the scratch buffer size to avoid waiting on barriers
2022-07-13 02:09:58 +03:00
kd-11 9fc6382909 gl: Finalize BGRA storage format internals
- Performance is terrible but it works properly now
2022-07-13 02:09:58 +03:00
kd-11 ebad08aa97 gl: Fix image creation for virtual formats 2022-07-13 02:09:58 +03:00
kd-11 599f1dd157 gl: Properly match BGRA RTT formats 2022-07-13 02:09:58 +03:00
kd-11 bb5ce67d57 gl: Handle corner cases for CopyBufferToImage
- Handle 3D textures and cubemaps
- Handle writing to mip > 0
2022-07-13 02:09:58 +03:00
kd-11 f948ce399e gl: Implement CopyBufferToImage in software
- Overrides the drivers CopyBufferToImage handling where possible
2022-07-13 02:09:58 +03:00
kd-11 954c60947d gl: Avoid calling gl functions without a context even if the object is GL_NONE
- While calling glDestroyXXXX with GL_NONE is a no-op, calling it without a context will crash some drivers.
2022-07-13 02:09:58 +03:00
kd-11 98b6783c05 gl: Fix image views broken after refactor 2022-07-13 02:09:58 +03:00
kd-11 0894d2886a Fix build 2022-07-13 02:09:58 +03:00
kd-11 4995b4abe3 gl: Do not use raw GL image copy command for RSX data 2022-07-13 02:09:58 +03:00
kd-11 35ef19cfc8 gl: Refactor the rest of GLHelpers 2022-07-13 02:09:58 +03:00
kd-11 09824a718f gl: Separate BGRA8 storage from RGBA8 2022-07-13 02:09:58 +03:00
Megamouse f4e85af53c sceNpUtil: implement skeleton bandwidth test 2022-07-12 22:45:40 +02:00
Eladash 74a909cfbc logs: Batch log messages (optimization) 2022-07-12 21:37:06 +02:00
Eladash 0bfdfd8433 Savestates: Implement Ctrl+R to reload the most recent savestate
Ctrl+R no longer means Resume emulation, this functionality has been transferred to Ctrl+P which is also capable of pausing the emulation. (so it's now a toggle)
2022-07-12 15:15:42 +03:00
Eladash 1f5cf776b2 Savestates: Fix "Suspend Emulation Savestate Mode" setting 2022-07-12 15:15:42 +03:00
Eladash cdd6840826 Savestates/SPU: Complete fix for saving sys_spu_thread_receive_event 2022-07-12 15:15:42 +03:00
Eladash ab27ee4cf4 Savestates/RSX: Save NV406E semaphore waiting 2022-07-12 15:15:42 +03:00
Eladash 6211295155 atomic.hpp: Truncation warning fix 2022-07-12 15:15:42 +03:00
Eladash befd7ceb89 Savestates/sys_spu: Minor fix in saving sys_spu_thread_receive_event 2022-07-10 14:19:59 +03:00
Eladash 2cead6f328 Savestates/SPU: Fix saving sys_spu_thread_send_event 2022-07-10 14:19:59 +03:00
Eladash 4e3d58f75a Savestates: Fix crash when savestating before PPU/SPU compilation finishes
Unintentional concurrent access to m_ar ptr itself.
2022-07-10 14:19:59 +03:00
Eladash 24fddf1ded rsx: Fix emu stopping crash when using multi-threaded rsx
FXO signaled abort before it completed its work, leading to unsignalled vk::fence and deadlock. Fix it by deregistering it from FXO.
2022-07-10 14:19:59 +03:00
Eladash 87cd65ff03 Savestates: support game collections 2022-07-10 14:19:59 +03:00
Eladash 219e3d61f8 Minor fix in shm::map_critical 2022-07-10 14:19:59 +03:00
Eladash 4ade06f36f Savestates/RSX: Restore the ZCULL control state
And fix the ZCULL control state at the initial state of RSX.
2022-07-10 14:19:59 +03:00
Nekotekina 786510a937 Use gettid() on Linux, don't use std:🧵:id
pthread_self() returns a large opaque pointer which is harder to use.
2022-07-10 12:22:28 +03:00
Megamouse 0c6df39a45 cellSearch: more error checks and shuffle 2022-07-09 16:39:10 +02:00
Vestrel 648ad0cd90
cellAudio: fix downmix if device doesn't support multichannel (#12328)
* cellAudio: fix downmix if device doesn't support multichannel
* Downmix in 2 stages
2022-07-09 15:25:28 +02:00
Megamouse cd0d43382f Qt: fix custom settings audio device corruption 2022-07-08 23:56:10 +02:00
Vestrel 98b730c806
Audio: device switching and channel count detection (#12246) 2022-07-08 17:13:38 +02:00
Nekotekina 4b787b22c8 Implement FN (lambda shortener)
Useful for some higher order functions.
Allows to make short lambdas even shorter.
2022-07-08 14:47:41 +03:00
Nekotekina 5c6f5a1610 Cleanse LOG_CONSTINIT macro
Should be unnecessary.
2022-07-08 14:47:41 +03:00
Eladash 0b8d5f7b98 Savestates: Fix argv 2022-07-08 12:57:43 +03:00
Eladash 314d481dcd Savestates: Fix typo in page size setting 2022-07-08 12:57:43 +03:00
Eladash 0980c68e6f Savestates: Increase timeout for emulation stopping 2022-07-08 12:57:43 +03:00
Eladash 983bfa2088 Savestates: Decryption of executable fix 2022-07-08 12:57:43 +03:00
Eladash 3a9928de65 Savestates: Log file descriptor information 2022-07-08 12:57:43 +03:00
Eladash 1fd5fb2f7e Savestates: Fix minor race with LV2 timers 2022-07-08 12:57:43 +03:00
Eladash 4ac88fa8d3 Savestates/RSX: Save drawing context 2022-07-08 12:57:43 +03:00
Eladash 5f8f9e33f1 RSX/Savestates: Replace GCM hack with a proper fix 2022-07-08 12:57:43 +03:00
Eladash f0c71ae2ae Savestates: Fix saving sys_event_queue_destroy 2022-07-08 12:57:43 +03:00
Megamouse 0c7ecdc954 cellMusicDecode: add more error checks and silence some log messages 2022-07-08 07:55:46 +02:00
Elad Ashkenazi 73a687df7d Savestates/Not Savestates: Fix exitspawn to HDD0 executable with mounted BDVD 2022-07-07 21:59:39 +02:00
Megamouse b683110e72 cellGem/overlays: show cursor if necessary 2022-07-07 12:40:23 +02:00
Megamouse 3840015e7d cellGem: implement basic ds3 cursor movement 2022-07-06 21:49:31 +02:00
Megamouse 639b8112b6 Input: make move handler dynamic 2022-07-06 21:49:31 +02:00
Megamouse 2bf17f5d3c input: fix horrible pad hacks 2022-07-06 21:49:31 +02:00
Megamouse 4823d4c32a input: add background input option
Adds an option to disable background input to the IO tab in the settings dialog.
This will disable pad input as well as ps move and overlays input when the window is unfocused.
2022-07-06 21:49:31 +02:00
Eladash c8c035eeef Regression fix 2022-07-06 20:07:09 +02:00
Eladash 155bd09fd0 Savestates: Cleanup v128 usage
It's compatible with bitwise serialization so it is faster to load/save it this way.
2022-07-06 19:43:25 +03:00
Eladash f546e5a8ef VM/Savestates: Replace bugged read-only block optimization 2022-07-06 19:43:25 +03:00
Eladash 2ccb0c8f42 SPU LLVM/Savestates: Remove unneeded store insurance and add related fix 2022-07-06 19:43:25 +03:00
Eladash 05303ce6c6 GUI: regression fix
Improperly resolved git conflict when rebasing savestates.
2022-07-06 19:43:25 +03:00
Eladash d8f3029952 Log LV2 periodic timers 2022-07-06 19:43:25 +03:00
Eladash 09c28f75b3 Savestates: Fix LV2 timers (fixes audio in some games) 2022-07-06 19:43:25 +03:00
Eladash 57671e267d Savestates: save cellAudioOut 2022-07-06 19:43:25 +03:00
Eladash b692108f1e Savestates: HLE state saving POC in sys_lwmutex 2022-07-06 19:43:25 +03:00
Eladash 2815aecd0c Savestates: Save SPU decrementer state 2022-07-06 19:43:25 +03:00
Megamouse b9f2b1e7c6 Qt: add UUID reset button 2022-07-05 09:09:00 +02:00
Eladash bd9ba7ef1f Remove incorrect Emu.IsStopped() checks 2022-07-05 08:25:36 +02:00
Eladash a015bd1ebd Savestates: Add missing position placement 2022-07-05 08:25:36 +02:00
Eladash d6cf167d52 Savestates: Minor optimization of size 2022-07-05 08:25:36 +02:00
Eladash 3fc2194fd5 Savestates: Fix zombie PPU threads saving 2022-07-05 08:25:36 +02:00
Eladash 72c14994f0 Savestates: Fix memory containers initialization (invalidates old savestates) 2022-07-05 08:25:36 +02:00
kd-11 fddb6a31a7 Use utils::c_page_size 2022-07-04 22:35:05 +03:00
kd-11 5cafaef0a9 Aarch64 fixes for RSX 2022-07-04 22:35:05 +03:00
Elad Ashkenazi fcd297ffb2
Savestates Support For PS3 Emulation (#10478) 2022-07-04 16:02:17 +03:00
Ani 969b9eb89d
rpcs3_version: Bump to 0.0.23 2022-07-02 13:20:41 +01:00
Megamouse 4fb5bd76fb Qt: Use exe dir instead emu dir for updates
This should fix the auto-updater when EmulatorDir is set to a different location
2022-06-30 22:19:32 +02:00
Megamouse 8043bb9087 Qt: log uuid
This creates and logs a unique identifier and saves it to a file.
The ID will be logged for statistical purposes and stay the same until recreated.
2022-06-30 21:36:11 +02:00
Nekotekina 69912ba3c7 Partial revert for cf0fcf5a2a 2022-06-30 14:38:14 +03:00
Eladash cf0fcf5a2a SPU: Implement execution wake-up delay 2022-06-28 19:54:25 +03:00
Megamouse ab5a33fc31 Qt: Properly repaint the Emulation menu icons 2022-06-27 10:13:03 +02:00
Eladash f5a55b3024 rsx: Fixup after #12052 for frame limiter off 2022-06-25 17:39:07 +03:00
Eladash 7422ab9e55 rsx: Do not discard flip notifications 2022-06-25 15:30:41 +02:00
Eladash f66256cc13 rsx: PS3 Native frame limiter improvements, add Infinite frame limiter
* Do not wait on DEVICE 0x30 semaphore, it seems like it is something to do with queue command synchronization.
 - This also fixes cellGcmSetFlipWithWaitLabel which is built specifically to enable accurate RSX flipping time, its waiting command is confirmed to be placed **AFTER** DEVICE 0x30 waiting.
* Fix default vsync state to be enabled. (and set it to enabled in cellGcmSetVBlankFrequency as well)
* Add experimental "Infinite" frame limiter mode.
* Fix spurious enabling of second vblank.
2022-06-25 15:30:41 +02:00
Megamouse 9cf7a63c77 Emu: Implement BlockingCallFromMainThread
Reduces some copy-paste clutter throughout the project
2022-06-25 14:01:40 +03:00
Megamouse 7842812e24 Qt: fix music handler destructor 2022-06-24 19:50:22 +02:00
Nekotekina ec59d7d26b Fixup for Emu.EjectDisc() 2022-06-24 19:55:44 +03:00
Nekotekina ea23525f66 sys_fs: Add mountpoint for /dev_ps2disc 2022-06-24 19:55:44 +03:00
Megamouse 87762a9b17 cellGame: implement disc change callbacks 2022-06-24 17:34:21 +02:00
Elad Ashkenazi bc3a899acf
Debugger: Simplify and optimize #12269 (#12275) 2022-06-24 11:26:44 +02:00
Eladash 5e01ffdfd8 Debugger: Optimize cpu_thread::dump_regs()
Reuse string buffer. Copies and reallocations are expensive with such large strings.
2022-06-23 22:41:32 +02:00
Eladash 794cbd8708 Debugger: Refresh at 100hz during debugger interaction (was 20hz) 2022-06-23 22:41:32 +02:00
Megamouse 661b485b58 HLE: more error checks 2022-06-22 21:47:06 +02:00
Eladash 64399d45c1 vm: Make falloc return value bool
Allow to check properly for the success of 0 address allocation.
2022-06-22 21:01:37 +03:00
Nekotekina 653a9e6e7f Debugger: always print cpu_thread::dump_misc()
Was removed for some reason.
2022-06-22 18:53:29 +03:00
Eladash 71e07dc6c7 IdManager.h: Improvements
* Ensure ::PtrSame<T, Derived> is true.
* Allow id_base, id_step and id_count to be of enumeration type.
* Fix potential deadlock in kernel explorer.

idm::select:
* Allow to select multiple inherited object types for idm::select.
* Allow function reference types. (they don't allow access to operator() directly, use deducing std::function constructor instead)
* Ensure ::is_same_ptr<T, object_type> is true.
2022-06-22 17:24:47 +03:00
Elad Ashkenazi 69ceebeb05
Debugger: Hide breakpoint and callstack list if unused (#12266) 2022-06-21 23:42:42 +02:00
Eladash ccb2724fc4 Debugger: Implement SPU breakpoints 2022-06-21 16:59:45 +03:00
Eladash ec6d6adebc RSX Memory Viewer: Fix local memory displaying 2022-06-21 16:59:45 +03:00
Eladash 3899248305 RSX Debugger: Stable NOP skipping
Allow addresses of NOP blocks to remain consistent in between debugger position changes except for the first which can shrink or grow.
2022-06-21 16:59:45 +03:00
Megamouse 4557992334 Qt: add optional states to toolbar icons 2022-06-20 21:15:14 +02:00
Eladash d0e9108800 SPU: Implement "double" SNR storage 2022-06-20 20:50:11 +03:00
Eladash dc80d000aa SPU Disasm: Detect sys_event_flag_set_bit syscall 2022-06-20 20:50:11 +03:00
sguo35 775caabeeb [ppu] Fix function trampoline for arm64
- Refactor function manager trampoline to be cleaner
- Add trampoline impl for arm64
- Force all JIT entrypoints on Apple to toggle W^X
2022-06-20 15:08:27 +03:00
isJuhn 4262794668 Implement PINE IPC Server 2022-06-19 17:56:50 +02:00
capriots a6237e5473
cellAudio(Out): properly implement all downmixing modes (#12252) 2022-06-19 17:08:03 +02:00
Megamouse 0b14d785ca stub cellHttp 2022-06-19 07:07:31 +02:00
capriots 6bdf415adb Fix audio renderer not resetting after cellAudioOutConfigure() was called 2022-06-19 06:09:29 +02:00
Megamouse ebabdd37b4 cellAudioOut: fix sound_mode exception
Turns out some games don't configure proper channel counts after all,
which triggers an ensure in cellAudioOutGetState.
Let's select the current sound_mode in cellAudioOutConfigure.
Keep the old one if no match was found.

Also moves some code from AudioBackend to cellAudioOut for thread safety (see mutex).
2022-06-18 18:17:43 +02:00
Megamouse 11c5230628 stub cellSysutilRegisterCallbackDispatcher 2022-06-15 20:46:24 +02:00
Megamouse bfe029bb0c cellSysutil: implement some bgm fxo stuff 2022-06-15 20:46:24 +02:00
Megamouse cbf12bb54b cellSysutil: stub cellSysutilGameDataExit functions 2022-06-15 20:46:24 +02:00
Megamouse b01d8e01e3 cellSysutilRegisterCallback: fix potential read out of bounds 2022-06-15 20:46:24 +02:00
Ivan c2190f71ca
SPU/PPU LLVM: fix triple setup (regression fix) (#12228) 2022-06-14 18:13:43 +03:00
Elad Ashkenazi 5378fee1c3
SPUAnalyzer.h: Add missing category check functions (#12222)
Some instructions were moved into integer category.
2022-06-14 16:04:24 +03:00
Jeff Guo cefc37a553
PPU LLVM arm64+macOS port (#12115)
* BufferUtils: use naive function pointer on Apple arm64

Use naive function pointer on Apple arm64 because ASLR breaks asmjit.
See BufferUtils.cpp comment for explanation on why this happens and how
to fix if you want to use asmjit.

* build-macos: fix source maps for Mac

Tell Qt not to strip debug symbols when we're in debug or relwithdebinfo
modes.

* LLVM PPU: fix aarch64 on macOS

Force MachO on macOS to fix LLVM being unable to patch relocations
during codegen. Adds Aarch64 NEON intrinsics for x86 intrinsics used by
PPUTranslator/Recompiler.

* virtual memory: use 16k pages on aarch64 macOS

Temporary hack to get things working by using 16k pages instead of 4k
pages in VM emulation.

* PPU/SPU: fix NEON intrinsics and compilation for arm64 macOS

Fixes some intrinsics usage and patches usages of asmjit to properly
emit absolute jmps so ASLR doesn't cause out of bounds rel jumps. Also
patches the SPU recompiler to properly work on arm64 by telling LLVM to
target arm64.

* virtual memory: fix W^X toggles on macOS aarch64

Fixes W^X on macOS aarch64 by setting all JIT mmap'd regions to default
to RW mode. For both SPU and PPU execution threads, when initialization
finishes we toggle to RX mode. This exploits Apple's per-thread setting
for RW/RX to let us be technically compliant with the OS's W^X
    enforcement while not needing to actually separate the memory
    allocated for code/data.

* PPU: implement aarch64 specific functions

Implements ppu_gateway for arm64 and patches LLVM initialization to use
the correct triple. Adds some fixes for macOS W^X JIT restrictions when
entering/exiting JITed code.

* PPU: Mark rpcs3 calls as non-tail

Strictly speaking, rpcs3 JIT -> C++ calls are not tail calls. If you
call a function inside e.g. an L2 syscall, it will clobber LR on arm64
and subtly break returns in emulated code. Only JIT -> JIT "calls"
should be tail.

* macOS/arm64: compatibility fixes

* vm: patch virtual memory for arm64 macOS

Tag mmap calls with MAP_JIT to allow W^X on macOS. Fix mmap calls to
existing mmap'd addresses that were tagged with MAP_JIT on macOS. Fix
memory unmapping on 16K page machines with a hack to mark "unmapped"
pages as RW.

* PPU: remove wrong comment

* PPU: fix a merge regression

* vm: remove 16k page hacks

* PPU: formatting fixes

* PPU: fix arm64 null function assembly

* ppu: clean up arch-specific instructions
2022-06-14 15:28:38 +03:00
Eladash 264253757c rsx: Improve Null Renderer 2022-06-12 20:54:42 +03:00
Ani 2512e958fa
glsl: Avoid implicit int->uint conversions (#12220) 2022-06-12 18:05:43 +01:00
Nekotekina cb2c0733e2 SPU LLVM: fix vrangeps usage in clamp_smax 2022-06-12 16:40:04 +02:00
Elad Ashkenazi 280aa6da91
rsx: Fix NV406E semaphore_acquire timeout detection (#12205) 2022-06-12 12:34:29 +03:00
Megamouse 9554adda28 Qt: remove "Send Exit CMD" menu option
This is pointless now, since we always exit games with this command.
2022-06-12 11:17:30 +02:00
Megamouse f3fa7119ac Qt: Also parse changelog with "Background" update 2022-06-12 09:19:18 +02:00
Malcolm Jestadt 0d022d420b RSX: Add more wide paths for upload_untouched
- Adds AVX512 path for upload_untouched u16 with primitive restart, and
  AVX2 and AVX512 paths for upload_untouched without restart
- The AVX512 paths handle the remainder in simd code with masking, which
  provided a large speedup
- On my i5-1135G7 in demons souls benchmarking a scene in boletaria with
  a lot of geometry on screen via perf:
SSE4_1                      0.64%
AVX2                        0.59%
AVX512                      0.56%
AVX512 w/ remainder masking 0.51%
2022-06-12 06:23:55 +03:00
Elad Ashkenazi ec530a2c91
rsx: Suggest to try setting RSX FIFO Accuracy to a higher mode of accuracy on crash (#12204) 2022-06-11 23:26:12 +02:00
Malcolm Jestadt ebeeafc94f SPU LLVM: Use vrangeps in clamp_smax
- This instruction can clamp a value between a range of values, something which previously needed 2 instructions.
- With the immediate byte set to 0x2 it will compute the minimum between the absolute value of the first input and the second input, and then copy the sign from the first input to the result.
2022-06-11 18:25:31 +03:00
Elad Ashkenazi 17e28ae85d SPU LLVM: Improve expression matching detection for moved registers 2022-06-11 16:13:58 +03:00
RipleyTom da6434a65a
Implements sys_fs_fcntl 0xC0000008 & 0xC000001A (#11957) 2022-06-11 13:12:42 +01:00
Megamouse a2623b1a9a DS3: fix other report size check.
The Report size also seems to be generic here, so let's only check if anything got returned at all.
Also add missing logging for result < 0.
2022-06-10 18:46:12 +02:00
Elad Ashkenazi 1738b38536
vm_native.cpp: Use Windows 10 memory mapping API (the correct API) 2022-06-10 14:27:02 +03:00
Megamouse 7235647e67 DS3: fix report size check.
The Report size seems to be generic here, so let's only check if anything got returned at all.
2022-06-10 06:47:01 +02:00
Megamouse 2a1e3b2b77 sys_rsxaudio: use max channel count from configured sound_modes 2022-06-09 18:59:13 +02:00
Megamouse 61823a5d62 sys_rsxaudio: only update config if the fxo is initialized 2022-06-09 18:59:13 +02:00
Megamouse ba96c6f3bb cellAudioOut: properly implement downMixer
If the PS3 downMixer is enabled, the game uses 8 channel input and 2 or 6 channel output
2022-06-09 18:59:13 +02:00
Megamouse fd8931c87e cellAudio: simplify sound mixer
There was no need to treat the first mix differently if all it did was init the buffer anyway.
Let's just always memset to zero.
2022-06-09 18:59:13 +02:00
kd-11 7530b3c971 vk: Fix image view search and destroy 2022-06-09 02:13:55 +03:00
Malcolm Jestadt 64616f1408 SPU LLVM: Microfixes
- Avoid vpermb path in shufb when op.ra == op.rb
- Reverse indices with (c ^ 0xf) rather than (~c) in vpermb path, vpternlogd is a 3 input operation and requires needless mov instructions to avoid destroying inputs
2022-06-08 22:50:30 +03:00
Elad Ashkenazi 004d9b09b8 LLVM: Fix 0 vector constant observation 2022-06-08 19:31:39 +03:00
Nekotekina 8d46840e09 Enable ppu_feed_data in PPU Interpreter 2022-06-07 15:24:50 +03:00
Nekotekina 753a12f436 Enable call history in PPU Interpreter 2022-06-07 15:24:50 +03:00
Megamouse 8e667e69f6 initial cellGameThemeInstall and cellGameThemeInstallFromBuffer 2022-06-07 07:37:30 +02:00
Megamouse 4d09be25aa cellMsgDialog: send DRAWING_END on abort 2022-06-06 20:07:01 +02:00
Eladash 0f499e36fb Optimize emulation stopping for when cellSysutilCheckCallback is not called 2022-06-06 19:21:41 +02:00
Eladash f5beaabded cellSysutil: Implement DRAWING callbacks
Also fixed a minor race in cellUserInfo regarding status of dialog
2022-06-06 19:21:41 +02:00
Elad Ashkenazi 248809ca1f cellGame: Revert cellGameDataCheckCreate2 change for now 2022-06-06 13:41:20 +02:00
Eladash f9bc7458d4 rsx: Resurgence of HLE GCM 2022-06-06 12:56:25 +02:00
Megamouse c4459dff40 Qt: use dedicated thread for getting input in the pad settings
This fixes the slow motion and rubber banding in the pad settings dialog while using HID handlers.
Previously everything was running on the main thread including the UI updates.
This meant that the poll rate was simply too slow and we were never up to date with the current data.
2022-06-06 00:15:27 +02:00
Eladash 16381929ba vm_var.h: Ensure 16-bytes alignment of gvar
Some PPU instructions require memory to be aligned otherwise they produce different results. I've already seen their usage in cellSaveData disassembly so may as well ensure it for all.
2022-06-05 20:47:49 +02:00
Eladash f1b03b36f7 cellGame: Make stats storage non-temporary, fix cbSet->setParam initial value 2022-06-05 20:47:49 +02:00
Megamouse e9ba6fd034 Qt: use unique_ptr for Ui objects. Should fix some mem-leaks 2022-06-05 19:07:03 +02:00
Megamouse bb03e17e2d HID: optimize get_next_button_press a bit 2022-06-05 19:07:03 +02:00
Megamouse 09875a5180 HID: properly check return values and report IDs 2022-06-05 19:07:03 +02:00
Megamouse 4912202cfa HID: zeroize buffers before getting a report, use std::array 2022-06-05 19:07:03 +02:00
Megamouse f57da6655c DualSense: Fix firmware report on newer versions
Newer versions of the DualSense return 64, while old versions return 65.
2022-06-05 19:07:03 +02:00
Megamouse ac34714837 CellAudioOut: Add some placeholders to CellAudioOutCodingType 2022-06-05 13:34:34 +02:00
Megamouse b4ce31cae3 cellAudioOut: update TODO comments for CELL_AUDIO_OUT_SECONDARY 2022-06-05 13:34:34 +02:00
Megamouse 5dffbca636 cellAudioOut: Only add LPCM 2ch. to secondary output 2022-06-05 13:34:34 +02:00
Megamouse fec9fcda7d Fix msvc parsing error caused by different naming 2022-06-05 13:34:34 +02:00
Megamouse 306776626a cellAudioOut: set latency to 13 2022-06-05 13:34:34 +02:00
Megamouse 15be6827ea cellAudioOutGetConfigure: Store and return set config seperately 2022-06-05 13:34:34 +02:00
Megamouse 8c0a786918 cellAudioOutConfigure: don't return error on unsupported config
Apparently the config simply isn't changed
2022-06-05 13:34:34 +02:00
Megamouse 8aa67114a9 cellAudioOut: Prefer 7.1 if available and supported
Select 7.1 as initial mode if the PARAM.SFO supports it and we enabled it
2022-06-05 13:34:34 +02:00
Megamouse 1bbb26334a cellAudioOut: Use bev_bdvd for disc game PARAM.SFO
Game Data PARAM.SFO does not contain SOUND_FORMAT
2022-06-05 13:34:34 +02:00
Malcolm Jestadt 1227b0a633 SPU LLVM: Reneable icelake shufb paths
- The previous code works just fine
2022-06-05 13:08:00 +03:00
kd-11 6c315e8aee gl: Disallow overlapping binding points 2022-06-05 10:13:41 +03:00
Elad Ashkenazi 88faac7bbc
rsx: Minor fixup (#12165) 2022-06-04 15:04:27 +01:00
Elad Ashkenazi 9bb7e8d614
rsx: Implement atomic FIFO fetching (stability improvement) (non-default setting) (#12107) 2022-06-04 15:35:06 +03:00
kd-11 286f97fad0 rsx: Reduce some error spam 2022-06-04 14:02:33 +03:00
kd-11 f0a02e0d9d gl: Fix leaking texture views 2022-06-04 14:02:33 +03:00
kd-11 8185bfe893 gl: Track image destruction and remove handles from state tracker
- Handles are reused for different resources which can cause problems
2022-06-04 14:02:33 +03:00
kd-11 d577cebd89 gl: Refactor image and command-context handling
- Move texture object code out of the monolithic header
- All texture binds go through the shared state
- Transient texture binds use a dedicated temp image slot shared with native UI
2022-06-04 14:02:33 +03:00
Malcolm Jestadt 0e5514003a SPU LLVM: Optimize LQR/STQR
- Avoid type mismatch between adds that prevented llvm from combining the operations
2022-06-03 16:16:28 +03:00
kd-11 167161d8ce rsx: Restore some accidentally removed depth-format conversion macros 2022-06-03 11:54:09 +03:00
kd-11 b8b0ecabd8 gl: Fix data pointer on the optimized AMD path 2022-06-03 11:54:09 +03:00
kd-11 bb05de2e80 gl: Fix copypasta 2022-06-03 11:54:09 +03:00
kd-11 7890e87234 gl: Fix warning 2022-06-03 11:54:09 +03:00
kd-11 25c05867d6 gl: Fix ring buffer remove() function
- Fixes crash on running a second game in the same session
2022-06-03 11:54:09 +03:00
kd-11 a421270c19 gl: Use new scratch buffer system 2022-06-03 11:54:09 +03:00
kd-11 764fb57fdc gl: Implement scratch ring buffer with memory barriers 2022-06-03 11:54:09 +03:00
kd-11 3fd846687e gl: Refactor buffer object code 2022-06-03 11:54:09 +03:00
kd-11 ff9c939720 gl: Assume decode buffer is to be used as SSBO as this seems to be a hint to the driver about where to put the buffer
Part of OpenGL's achilles' heel - the API does not distinguish between VRAM and SYSTEM memory at all and relies on developers wrestling with the driver's heurestic algorithm for this.
2022-06-03 11:54:09 +03:00
kd-11 234db2be3f gl: Fix texture binding in overlay renderer 2022-06-03 11:54:09 +03:00
kd-11 fc44d53bb0 gl: Reset buffer size on destroying the GPU handle 2022-06-03 11:54:09 +03:00
kd-11 555a4b5f5c gl: Suggest readback buffer as ssbo if it is not provided
- We're likely to jump into a compute or readback pass anyway.
2022-06-03 11:54:09 +03:00
kd-11 a6e6df1445 gl: Implement fast texture readback for D24X8 and RGBA8/BGRA8 2022-06-03 11:54:09 +03:00
RipleyTom 2010d697c8 feat: add boot test menu entry 2022-06-03 01:15:54 +02:00
Megamouse 26045a9be5 Move test elfs to test dir
TEST12345 is already taken by dev builds
2022-06-02 23:19:34 +02:00
Megamouse 06e5b8a06a cellAudioOut: add stereo, 5.1 and 7.1 for covenience 2022-06-02 13:12:04 +02:00
Megamouse 94aef197dd cellAudioOut: switch to manual multi-selection of format as seen on PS3 2022-06-02 13:12:04 +02:00
Megamouse a86e7eeba0 cellAudioOut: Always add Linear PCM 2 Ch., also add 5.1 when 7.1 is selected 2022-06-02 13:12:04 +02:00
Megamouse 95a3ce68ce cellAudioOut: log all added sound modes 2022-06-02 13:12:04 +02:00
Megamouse 9ab1e69697 cellAudioOut: simplify sfo access and make it foolproof 2022-06-02 13:12:04 +02:00
Megamouse 4f03cf7e1e PSF: move resolution flags to enum 2022-06-02 13:12:04 +02:00
Megamouse 60d80fd5fc PSF: move sound format flags to enum 2022-06-02 13:12:04 +02:00
Megamouse 350d3ad386 cellAudioOut: fix AC3/DTS mixup 2022-06-02 13:12:04 +02:00
Megamouse d6065e8814 cellAudioOut: add sound modes even if they aren't supported 2022-06-02 13:12:04 +02:00
Megamouse 363808a57b cellAudioOut: simplify sound mode initialization 2022-06-02 13:12:04 +02:00
Megamouse 3402835c8e cellAudioOut: apply review fixes, add some comments 2022-06-02 13:12:04 +02:00
Megamouse 911d37e4d7 cellAudioOut: use 2 channel LPCM by default and also use it as fallback 2022-06-02 13:12:04 +02:00
Megamouse 72e1e242a3 cellAudio: use format instead of downmix 2022-06-02 13:12:04 +02:00
Megamouse c42ff338e7 cellAudioOutGetSoundAvailability: return channel count based on available sound modes 2022-06-02 13:12:04 +02:00
Megamouse 4f81fcd5cc cellAudioOutConfigure: move sound_modes to fxo, implement waitForEvent 2022-06-02 13:12:04 +02:00
Megamouse d47f1ef406 cellAudio: Implement application based downmix settings 2022-06-02 13:12:04 +02:00
Nekotekina 422246825b vm: workaround bigger native page size for 4k pages
Always allocate full memory block if native page size > 4k
2022-06-02 12:56:49 +03:00
Nekotekina b0ccd2a8a0 Implement utils::c_page_size (unused)
Query platform memory page size.
2022-06-02 12:56:49 +03:00
Nekotekina 76c72351a5 rsx_methods: fix warning 2022-06-02 12:56:49 +03:00
Megamouse 03df3c5293 cellAudioQuit: do not clear event queues
They seem to be handled independently.
2022-05-31 23:38:29 +02:00
RipleyTom dd31574b4f fix: changes execl to execv for compatibility with checkrt 2022-05-31 22:55:31 +02:00
kd-11 eb52ac55a7 gl: Fix AMD buffer decode 2022-05-31 23:34:14 +03:00
kd-11 d167582f6b gl: Implement on-chip buffer-to-d24x8 conversion 2022-05-31 23:34:14 +03:00
kd-11 dd6cb054a7 gl: Add missing viewport save 2022-05-31 23:34:14 +03:00
kd-11 b97557ce7b gl: Use DSA for compressed texture upload 2022-05-31 23:34:14 +03:00
kd-11 964fd1095e gl: Properly preserve texture state
- Remove rogue glBindTexture calls and use gl commandstate object instead
2022-05-31 23:34:14 +03:00
kd-11 fcc6c2384b Fix linux build 2022-05-31 23:34:14 +03:00
kd-11 a5d73f41b5 gl: Remove debug message 2022-05-31 23:34:14 +03:00
kd-11 1b305bf789 gl: Workaround for poor AMD OpenGL performance
- Turns out the AMD driver really hates it if you render with a mapped index buffer.
  The driver internally seems to make a copy of the consumed indices and uses that. Very slow.
  I was able to isolate this after observing that glDrawArrays is not entirely shit, but glDrawElements duration scaled linearly with the number of vertices.
2022-05-31 23:34:14 +03:00
kd-11 943752db30 gl: Compute optimizations
- Keep buffers around longer to allow driver heurestics to work
- Properly initialize the shaders to allow optimal workgroup dispatch size
2022-05-31 23:34:14 +03:00
kd-11 60a2a39e88 gl: Deswizzle textures on the GPU 2022-05-31 23:34:14 +03:00
kd-11 532563e861 gl: Update some more buffer-object functions 2022-05-31 23:34:14 +03:00
kd-11 3ee27bd434 gl: Optimize consumption of buffer objects when uploading textures 2022-05-31 23:34:14 +03:00
kd-11 55e68441cb gl: Commit to bindless framebuffer object management 2022-05-31 23:34:14 +03:00
kd-11 7ec481d99b rsx: Allocate scratch memory using simple array with no default initialize
- This cuts down processing time significantly by eliminating calls to memset_stosb
2022-05-31 23:34:14 +03:00
kd-11 129e947720 gl: Improve CS throughput
- Avoids making too many invocations, especially given the 1D nature of some GPU dispatch handlers
2022-05-31 23:34:14 +03:00
kd-11 e964060a6a gl: Handle texture binding using the global state tracker 2022-05-31 23:34:14 +03:00
kd-11 74696d2e44 gl: Commit to a consistent global state 2022-05-31 23:34:14 +03:00
kd-11 78746fdb6f gl: Commit to using DSA for internal buffer management
- Gets rid of spammy BindBuffer calls on every draw
2022-05-31 23:34:14 +03:00
kd-11 ed2068fb03 gl: Rewrite buffer mapping 2022-05-31 23:34:14 +03:00
kd-11 b61c4d3693 gl: Fix stat counters 2022-05-31 23:34:14 +03:00
kd-11 81b9952e34 gl: Do not allow cross-aspect bitcasts
- There is special handling for some cross-aspect bitcasts in vulkan, but this is not possible using OpenGL
2022-05-31 23:34:14 +03:00
brian2081 64958264c5 Fix issue #12137 2022-05-31 23:06:46 +03:00
Elad Ashkenazi bda52a51a7
Debugger: Show HEX view of floating-point PPU registers 2022-05-31 07:36:10 +02:00
Megamouse bab4136411 Qt: fix tooltips and widget states in settings 2022-05-30 23:38:16 +02:00
Darkhost1999 e4fe335e75
Qt: add vblank_ntsc_fixup to UI (#12042) 2022-05-30 20:17:43 +02:00
Darkhost1999 0a7ac4d42a
Qt: Misc text updates (#12110) 2022-05-30 19:35:41 +02:00
Elad Ashkenazi 95233b5299 rsx: Fix deadlock in vm::_page_unmap 2022-05-30 11:53:34 +03:00
RipleyTom 8b6f68abcf fix: parsing bug in read_metadata 2022-05-29 22:36:30 +02:00
Malcolm Jestadt e9dfb3cb63 SPU LLVM: Fixup for inline MFC transfers
- Could previsouly segfault when src and dst were swapped. Just use unaligned instructions instead.
2022-05-29 19:08:36 +03:00
Vestral 5b0badc215 sys_rsxaudio: timer fix 2022-05-29 14:59:12 +02:00
Malcolm Jestadt 6f4398889e SPU LLVM: Optimize inline MFC transfers
- Use wider instructions when possible
2022-05-29 15:32:25 +03:00
Eladash dd4722fc1f rsx: Fix second VBLANK time
Turns out that both VBLANK time and flip time clock at 80Mhz which is MFTB rate, just that cellGcmGetLastFlipTime is missing conversion to microseconds, so odd.
2022-05-29 14:23:28 +02:00
Eladash eec27f0e89 Revert "rsx: Fix FLIP time"
This reverts commit 256eb17ae5.
2022-05-29 14:23:28 +02:00
RipleyTom baf51a2e2f fix: unset APPDIR before launching new appimage 2022-05-29 08:09:07 +02:00
Eladash 256eb17ae5 rsx: Fix FLIP time 2022-05-28 13:00:42 +02:00
Elad Ashkenazi 610d29dab0 rsx: Fix VBLANK time 2022-05-28 13:00:42 +02:00
RipleyTom aaef4a2d5b More verbose errors in nt_p2p_port 2022-05-27 08:56:39 +02:00
Eladash 27b28cf6ec sys_spu: Fix spu_thread_group_terminate deadlock 2022-05-26 18:04:52 +03:00
Megamouse 345bda69ec Overlays: Add screenshot message to queue 2022-05-26 08:52:12 +02:00
Eladash a9a1204ab9 sys_rsx: Full reset of flip semaphore 2022-05-25 17:36:28 +03:00
Eladash e7ced1aeab Debugger: Implement SPU mailbox content display 2022-05-25 17:36:28 +03:00
Eladash 56f95934f5 Fix cellVdec regression to be harmonized with the new interrupts model 2022-05-25 17:36:28 +03:00
Megamouse 88ee62be26
cellAdec: fix uninitialized default size of AVPacketHolder (#12077) 2022-05-25 11:40:51 +02:00
Eladash 961d41d0bd RawSPU: Reinvoke pending interrupts if missed 2022-05-25 11:46:51 +03:00
kd-11 9c824aa0b5 vk: Enable event scope hack for INTEL proprietary drivers 2022-05-24 20:11:31 +03:00
kd-11 efff2a78c8
vk: Restructure how the conditional render evaluation is done (#12071)
Fixes conditional render fast-path
2022-05-24 11:11:21 +03:00
Vestral 608f823516 sys_rsxaudio: Add id to kernel explorer and some fixes 2022-05-23 13:10:46 +02:00
RipleyTom e68ffdbc81 Add a message overlay 2022-05-23 08:38:02 +02:00
RipleyTom 3dc9a8b980 fix lv2_socket_native::accept 2022-05-23 07:36:51 +02:00
MSuih b0e5db0eb0 Limit range of wake-up delay slider + adjust tooltip 2022-05-22 22:32:19 +02:00
kd-11 7c8fbc35bc rsx: Move PS3-compliant behavior to a new option 2022-05-21 16:35:35 +03:00
kd-11 b637429e44 Fix display flickering 2022-05-21 16:35:35 +03:00
kd-11 d52bb78d2c rsx: Trivial non-blocking display synchronization 2022-05-21 16:35:35 +03:00
Eladash 1be36fe6a9 Remove all HDD0's temporary game data created by cellGame at boot 2022-05-21 10:57:12 +03:00
Eladash 1088375b38 Wipe clean VSH's temporary directory of choice at boot 2022-05-21 10:57:12 +03:00
Eladash 285322982f Do not dare to touch HDD1 cache during game process respawn! 2022-05-21 10:57:12 +03:00
kd-11 4e6be9172a rsx: Asynchronously flush the pipelines when handing ZCULL memory access violations 2022-05-21 10:06:32 +03:00
kd-11 0e1333ed5f rsx: Deadlock avoidance of accurate RSX reservations 2022-05-21 10:06:32 +03:00
Eladash cd74fb6a6d rsx: Implement HW accurate frame limiter 2022-05-20 22:40:48 +02:00
kd-11 ec2d529832 rsx: Separate loop interrupts from graphics state
- The interrupts are for multithreaded signals andmake the main loop run more aggressively for the next cycle
2022-05-20 16:29:27 +03:00
kd-11 257556bbf5 rsx: Add eng lock before flagging memory unmap
- This is much better than polling on atomics every cycle for something that happens a few times during gameplay
2022-05-20 16:29:27 +03:00
kd-11 93d93b4805 rsx: Fix typo 2022-05-20 16:29:27 +03:00
kd-11 e368453751 rsx: Rework loop interrupts a bit
- Reset backend interrupt in core handler
- Separate memory config interrupt from regular backend interrupt
2022-05-20 16:29:27 +03:00
kd-11 d0dc095c84 rsx: Silence some log spam 2022-05-20 16:29:27 +03:00
kd-11 360fdca5ac vk: Avoid multimap when handling image views 2022-05-20 16:29:27 +03:00
kd-11 e1b95913ea rsx/zcull: Improve deadlock avoidance
- Do not acquire eng lock while holding the page lock
  RSXThread may be waiting on the page lock and will never ack the pause request
2022-05-20 16:29:27 +03:00
kd-11 a3ea9e2985 rsx/zcull: Less aggressive disabling of optimizations 2022-05-20 16:29:27 +03:00
kd-11 e9bf3e13d0 rsx/zcull: Pause the main thread before flushing reports 2022-05-20 16:29:27 +03:00
kd-11 9e02471ded Fix VS 2022-05-20 16:29:27 +03:00
kd-11 094fda0e73 Crash fix 2022-05-20 16:29:27 +03:00
kd-11 d2de560060 rsx: Improve sync_hint callback interface 2022-05-20 16:29:27 +03:00
kd-11 5315eb546f rsx: Stop spamming ZCULL update method
- This has a negative impact when ZCULL is active due to spamming __rdtsc
- While the method is fast, it is not free and some checks are done before the instruction can be emitted
  Let's use the saved time to actually get something useful done
2022-05-20 16:29:27 +03:00
kd-11 7fa521a046 rsx/vk: Redesign how conditional rendering hints work
- Pass a sync address to the backend
- Ignore the hint if the query is running in lazy mode
- Do not submit CBs too close to each other. Submits are expensive
2022-05-20 16:29:27 +03:00
kd-11 0244c4046e rsx: Lower performance hit due to frequency fetch 2022-05-20 16:29:27 +03:00
kd-11 7e8c93bea2 Random optimization 2022-05-20 16:29:27 +03:00
kd-11 8cd7a44a25 gcm: Force HLE of cellGcmGetTimestamp
- This is the only way to know if a report is being used for ZCULL or timestamps only.
  If the game is not reading the ZCULL data, the access guards will detect it and optimize usage around that.
2022-05-20 16:29:27 +03:00
kd-11 9a1e6cc3e8 rsx: Implement RSX reports area access detection and optimize around it
- If nobody is reading RSX reports, do not be in a hurry to write them
- Requires HLE of some methods (cellGcmGetTimestamp) to function correctly
2022-05-20 16:29:27 +03:00
kd-11 34220ec447 lv2: Make some struct declarations uniform 2022-05-20 16:29:27 +03:00
kd-11 f0135a02f5 vk: Unconditionally enable hw acceleration for conditional evaluation 2022-05-20 16:29:27 +03:00
kd-11 0b7e013fbe rsx: Simplify ZCULL logic a bit 2022-05-20 16:29:27 +03:00
kd-11 850eef0c1a rsx: Move ZCULL logic to its own file
- It's over 1k lines of code in its own namespace; it really should be in its own file
2022-05-20 16:29:27 +03:00
Elad Ashkenazi 5a581f46df Add a constraint about vm area approx matching 2022-05-19 21:29:18 +03:00
Eladash b334621d76 PPU DisAssembler: Prevent false function descriptor detection 2022-05-19 21:29:18 +03:00
Elad Ashkenazi a768855a7a Update PPUThread.cpp 2022-05-19 18:16:53 +03:00
Eladash 7ddeb0d00f Implement sys_process_exit3 2022-05-19 13:59:52 +03:00
Eladash 2ba437b6dc SPU: Implement timer freezing ability 2022-05-14 22:03:47 +03:00
Eladash f2920bc30d Debugger: Fix instruction "pop-in" when resizing
Display incomplete elements.
2022-05-14 10:46:07 +02:00
Eladash d043f46270 Fix recursion in the debugger 2022-05-14 10:46:07 +02:00
Megamouse 1e1b111678 sceNp: register custom menu 2022-05-13 21:52:14 +02:00
Eladash 1f5ce4f619 Loader: Fix out-of-bounds access of string
There was no need to manually align size, it only creates a bug with memcpy usage.
2022-05-13 19:53:48 +03:00
Eladash 524da5dc54 LV2: Memory state post-exitspawn fixes
* Fix memory capacity if SDK version of the following executable differs from the original process'.
* Keep user memory containers, they are not freed at exitspawn!

Hw test 4bf60023ee
2022-05-13 13:15:07 +03:00
Eladash a2a6303a22 PPU LLVM: Precompile system-internal executables if booting a dev_flash's program 2022-05-12 19:55:07 +03:00
Eladash 6805d8c7e0 SPU: Fix race on SPU Mailbox last value reading 2022-05-12 13:44:12 +03:00
Megamouse 5ae9de4e3b CLI: add decrypt option 2022-05-11 21:13:20 +02:00
RipleyTom 2f9b930c6b Fix for ticket parsing 2022-05-11 19:03:54 +02:00
Nekotekina e243ef5907 PPU: implement accurate FRES
Implemented with an accurate lookup table.
2022-05-11 10:46:08 +03:00
doesthisusername 7b162c7513 PPU: implement quasi-accurate FRSQRTE
Denormals are handled like zeros.
NaN handling is inaccurate in some cases.

Co-authored-by: Nekotekina <nekotekina@gmail.com>
2022-05-11 10:46:08 +03:00
JoãoPaulo 5b8f105308 Update FW 4.89 Latest Version
Updates the latest FW version according to: https://www.playstation.com/en-us/support/hardware/ps3/system-software/
List of changes:
Version 4.89
Signing in to PlayStation Network now requires a device password for enhanced account protection.
Account creation for PlayStation Network and some account management features are no longer available on the console. Use your PC or mobile browser to use account management features with improved performance, speed, and safety.
2022-05-11 00:17:01 +02:00
NicknineTheEagle 1df47352cc Implemented sceNpDrmGetTimelimit 2022-05-10 23:24:00 +02:00
NicknineTheEagle e4225cbab8 Fixed duplicate prefix in SELF log 2022-05-10 23:24:00 +02:00
NicknineTheEagle 83ca7654b1 Return NPD header in verify_npdrm_self_headers and VerifyEDATHeaderWithKLicense 2022-05-10 23:24:00 +02:00
NicknineTheEagle 8065dbc2e7 Unified NPD header in unedat.h 2022-05-10 23:24:00 +02:00
Eladash d03fcad9bd cellAudio: Some bugfixes
* Reading position storage is 16 bytes aligned according to hw test.
* Fix cellAudioGetPortConfig portSize reporting, now matches PS3.
* Remove ghost code about unearthly 6 channels cellAudio port mode.
2022-05-10 22:39:34 +02:00
Megamouse e494fc04e5 sceNp: add some constants 2022-05-10 21:55:35 +02:00
Eladash d77c9139ad Debugger: Show constant-formed attribute of register value 2022-05-10 22:34:29 +03:00
RipleyTom 4479d99a9a Implement sceNpManagerGetTicketParam 2022-05-10 21:04:15 +02:00
Megamouse 072c289f5e Qt: add new vfs usb tab 2022-05-10 19:39:35 +02:00
Megamouse a538f655be sys_fs_fcntl: hook up usb device info 2022-05-10 19:39:35 +02:00
Megamouse b888a6ba37 VFS: Add device_info to vfs config 2022-05-10 19:39:35 +02:00
Eladash de988f6a76 MSELF extractor: Ensure the files' dwellings 2022-05-10 09:58:59 +03:00
Megamouse 2b325de680 Workaround: Force audio provider
This hides the audio_provider box in the settings and forces the proper provider based on boot path.
Stop-gap solution until we decided what to do with vsh settings.
2022-05-08 02:08:20 +02:00
Megamouse d83fac4247 cellAudio: fix timestamp exception 2022-05-08 02:08:20 +02:00
Nekotekina 0a5ea859ea atomic.cpp: fix race in cond_id_lock() 2022-05-07 21:25:38 +03:00
Megamouse 5476b9098e cellHttp: add more errors 2022-05-07 14:46:57 +02:00
Megamouse e5a75cfd1c sceNpTrophyGetTrophyUnlockState: handle read_only 2022-05-07 13:58:05 +02:00
Megamouse 1f745c4588 sceNpTrophyRegisterContext: add read_only check 2022-05-07 13:58:05 +02:00
Megamouse 6c7f49d563 sceNpTrophy: don't use TROPHY.TRP in CreateContext 2022-05-07 13:58:05 +02:00
Megamouse dae51a4a2b sceNpTrophy: remove confirmed comment 2022-05-07 13:58:05 +02:00
Megamouse d113324a90 sceNpTrophyRegisterContext: handle SHOW_ERROR_EXIT 2022-05-07 13:58:05 +02:00
Eladash 1cab99b3ca Make CPU Profiler able to print stats which sum up the records of all SPU threads
Hitherto the statistics have been exclusively thread-specific.

Other improvements:
* Fixed container management so a collision of a new element with an older element of the record will become impossible.
* Added thread name to thread-specific information printing.
* Fixed condition to abort SPU block statistics collection, now matches SPU LLVM Profiler's.
* Fix possible division by 0 by checking `samples`.
2022-05-07 12:57:54 +03:00
Nekotekina f7d08d3371 ELF: fix sh_flag bitset enum 2022-05-06 15:44:29 +03:00
RipleyTom 02d22dca95 Add Top Shot Elite controllers to whitelist 2022-05-05 22:33:50 +02:00
Megamouse 7764cb2b80 Qt: disable mouse movement mode groupbox 2022-05-05 21:39:12 +02:00
Eladash be5f8413ca
Avoid using PUTLLC in PUTLLUC if we know SPU LR has already been raised (#11940) 2022-05-05 22:15:08 +03:00
RipleyTom ce48d880d9 Fix for device2host control transfers 2022-05-05 19:24:01 +02:00
RipleyTom 8d950620b7 dnshook: add asterisk support 2022-05-05 18:49:39 +02:00
Nekotekina 10b33d0f79 SPU: optimize conflicting PUTLLUC (No-TSX)
Enable previously TSX-only optimization.
2022-05-05 19:16:16 +03:00
Megamouse 2706486559 input: add absolute mouse movement mode 2022-05-05 16:50:39 +02:00
Vestrel d1e468fefb
sys_rsxaudio: Initial implementation (#11907) 2022-05-05 15:47:44 +02:00
RipleyTom 0ac90ac395 sys_net: ensures return from raw socket calls 2022-05-05 14:37:54 +02:00
Megamouse fef779feca cellRec: fix pOpt pointer type 2022-05-05 12:23:12 +02:00
Megamouse ced890301c cellRec: fix some warning 2022-05-05 12:23:12 +02:00
Megamouse 7d73d90c1a cellGameExec: fix warnings 2022-05-05 12:23:12 +02:00
Darkhost1999 4e40260f1f
Add Force_Disable_Exclusive_Fullscreen_Mode to UI (#11923) 2022-05-05 11:19:03 +02:00
Eladash 3aebb8cb41 Tentative fix for unreadable ELF sections without flags 2022-05-05 07:33:07 +03:00
Eladash fcbeb2fa22 Remove slow vm::writer_lock usage from SPUThread.cpp 2022-05-04 23:36:57 +03:00
Eladash 7a3cbf1876 Fix Emulator::argv state after failed PS3 exitspawn 2022-05-04 23:36:57 +03:00
Eladash 3dda72e47f SPU: Cache reservation memory direct access handle (optimization) 2022-05-04 20:28:55 +03:00
Nekotekina a2bfd5fcfc Minor AArch64 support changes 2022-05-04 16:12:32 +03:00
Nekotekina 6501374a34 Add supporters 2022-05-04 16:12:32 +03:00
Eladash 63669000ab PPU Loader Fix removing writablity permission for RSX/SPU writable segments 2022-05-04 12:03:10 +03:00
Eladash f9a62667cf SPU/PPU Loader: Implement linker/PS3 compiler executable files loading 2022-05-03 20:47:36 +03:00
Megamouse 6cc1466baa halfplement cellRec 2022-05-03 18:19:31 +02:00
Megamouse bcd77ac65e halfplement cellVideoExport 2022-05-03 18:19:31 +02:00
Nekotekina 0786a0a088 PPU LLVM: match interpreter for VEXPTEFP/VLOGEFP 2022-05-03 08:27:44 +03:00
Eladash c14e79f8df Debugger: Fix instruction selection 2022-05-02 17:01:02 +03:00
Eladash 8cc6a30557 Debugger: Fix instruction pointer for good 2022-05-02 17:01:02 +03:00
Nekotekina 5c1f79ab26 vm: remove g_mutex, use g_range_lock instead
Simplification and performance improvements.
2022-05-02 10:29:28 +03:00
Ani 799c4837d3 rpcs3_version: Bump to 0.0.22 2022-05-01 15:23:47 +02:00
Eladash 5eeb79ffa1 Fix forced HLE injection 2022-05-01 09:21:49 +02:00
Eladash 159f9494a9 Debugger: Keep instruction's panel up-to-date with memory changes 2022-04-30 14:01:31 +03:00
RipleyTom 8316469cfc Update libusb to v1.0.26 2022-04-29 02:04:52 +02:00
kd-11 7a434d19a6 rsx/vp: Zero-initialize temporary registers 2022-04-28 01:31:07 +03:00
kd-11 95ac7724a6 Fix typos 2022-04-28 01:31:07 +03:00
kd-11 e236ba4daf rsx: Improve lowered precision comparison emulation 2022-04-28 01:31:07 +03:00
RipleyTom 5746df4046
sceNpMatching2CreateContext checks psn state (#11887) 2022-04-27 22:16:16 +01:00
Megamouse e0d3a3b0ed cellOskDialog: do not intercept input unless we actually show a dialog 2022-04-26 00:51:38 +02:00
Megamouse 3183d73e4d OSK/overlays: fix initial input interception
Don't use default interception if we already intercept with custom params.
2022-04-26 00:51:38 +02:00
Megamouse c8700dd246 Input: log interception and its source function 2022-04-26 00:51:38 +02:00
Eladash 08ebc59db0 Fix instructions editor, implement preview for to-be-edited instructions 2022-04-25 20:15:10 +02:00
Eladash 7329fa9cf5 TRPLoader: Use std::string_view 2022-04-25 20:15:10 +02:00
Eladash 27becdec97 TAR: Allow to use save_directory with a buffer not 512-bytes aligned 2022-04-25 20:15:10 +02:00
Megamouse 8d662e9327 overlays: enable key repeat by default 2022-04-25 19:44:56 +02:00
Megamouse ff7636ea01 OSK/overlays: handle keyboard enter and escape 2022-04-25 19:44:56 +02:00
Megamouse 8f14f392fd overlays: ignore input if kb pad handler is active 2022-04-25 19:44:56 +02:00
Megamouse a1abc79f28 cellOskDialog: add event_hook_callback logging
And refactor the callback a bit
2022-04-25 19:44:56 +02:00
Megamouse 5fad7e1b87 OSK: flush key input to prevent key event spam 2022-04-25 19:44:56 +02:00
Megamouse 3d0f751211 cellMusic: lower some log levels to reduce spam 2022-04-25 19:44:56 +02:00
Megamouse 8864f944e2 cellOskDialog: implement dimmer_enabled 2022-04-25 19:44:56 +02:00
Megamouse 918984ee64 overlays: only log actual input loop errors 2022-04-25 19:44:56 +02:00
Megamouse b29f106c51 cellOskDialog: implement base_color 2022-04-25 19:44:56 +02:00
Megamouse 71f8280c5e cellOskDialog: implement KeyboardEventHookCallback 2022-04-25 19:44:56 +02:00
Megamouse 0ff293707a OSK: allow device input during interception 2022-04-25 19:44:56 +02:00
Megamouse 9adab801ac cellOskDialog: implement device mask and lock 2022-04-25 19:44:56 +02:00
Megamouse 43e7776f4d cellOskDialog: add some error checks and TODOs 2022-04-25 19:44:56 +02:00
Megamouse aee91b4f6f OSK: Ignore gamepad input if a key was pressed 2022-04-25 19:44:56 +02:00
Megamouse ffd36ea662 OSK: handle keyboard input 2022-04-25 19:44:56 +02:00
Megamouse abf80cc112 keyboard: use std::array, default init, + KbButton 2022-04-25 19:44:56 +02:00
shockdude 43d26fa6b6 Make Guitar Hero Live Guitar GHTV button bindable
Also make emulated interrupt transfer as fast as possible
2022-04-24 20:18:36 +02:00
RipleyTom d02a8ba2b9 Update flatbuffers to v2.0.6 2022-04-24 19:43:40 +02:00
Megamouse 9acc606e4d Log: add ability to force log all errors 2022-04-24 19:11:34 +02:00
Megamouse e52386ccfb Log: ensure fmt 2022-04-24 19:11:34 +02:00
Megamouse 1d40c06c19 Log: Add spacer between error and fmt if necessary 2022-04-24 19:11:34 +02:00
Megamouse c175cdf3d8 cellVdec: send AUDONE even when the queue is being flushed/restarted
Fixes GT6 regression
2022-04-24 17:39:49 +02:00
Megamouse 7924784215 cellVdec: log sequence id of commands 2022-04-24 17:39:49 +02:00
Megamouse 06cbc96722 cellVdecStartSeq: log level warning 2022-04-24 17:39:49 +02:00
Megamouse dcda332a93 cellVdec: send AUDONE before PICOUT 2022-04-24 17:39:49 +02:00
Megamouse eac4e991bd cellVdec: add callback and command id logging 2022-04-24 17:39:49 +02:00
Megamouse 9284344480 cellVdec: fix cellVdecStartSeq (restart mode) 2022-04-24 17:39:49 +02:00
Megamouse 2c03467eec cellVdec: improve logging a bit 2022-04-24 17:39:49 +02:00
Megamouse b67cda7cbb cellVdec: add handle to more log messages 2022-04-24 17:39:49 +02:00
Nekotekina cd6aa0774f Reduce stack usage in atomic_wait_engine::notify_all 2022-04-24 13:26:28 +03:00
Nekotekina 6d3052c5dd Optimization: disable atomic_wait_engine notify callback for SPU
Disable placebo callback calls in notify_all.
Don't use callback at all if TSX.
Based on kd-11 findings.
2022-04-24 13:15:54 +03:00
Megamouse fb27ed4deb libav: remove deprecated option refcounted_frames
According to fe85afbf8c/doc/APIchanges (L743)
this option is deprecated and obsolete for the newer send/receive logic.
Should fix runtime exceptions with newer ffmpeg versions.
2022-04-24 11:05:22 +02:00
nastys f21b298e5e Make MSL Fast Math and software vkSemaphore optional 2022-04-24 09:25:13 +02:00
Vestral f6de42a2ae Update cubeb to latest version 2022-04-24 08:00:17 +02:00
Megamouse 8acb62f6ee HLE: simplify some error formats 2022-04-22 20:56:21 +02:00
Megamouse 1d6fbf1c35 cellGameGetParamString: fix patch mode 2022-04-22 20:56:21 +02:00
Eladash f92b487947 rsx: Allow NV0039 0x2100 2022-04-22 18:20:23 +03:00
Megamouse 6a67155404 Qt: fix access to uninitialized Pad object
Fixes a crash when opening the pad settings before the pad handlers are initialized.
2022-04-22 00:00:34 +02:00
Megamouse f42e647430 cellVdec: use av_error_to_string 2022-04-21 22:22:33 +02:00
Megamouse 7c65c1e3aa cellVdec: Remove irritating while loop 2022-04-21 22:22:33 +02:00
Megamouse 9f51003366 cellVdecGetPicture and cellVdecGetPictureExt swap
This fixes a possible issue with the error handling order.
2022-04-21 22:22:33 +02:00
Megamouse 512eb93a62 cellVdecDecodeAu: fix param check 2022-04-21 22:22:33 +02:00
Megamouse 9c919db9ae cellVdec: fix out format line offsets
Fixes video output in Uncharted 2
2022-04-21 22:22:33 +02:00
Megamouse 61ada2c1dc cellVdec: call av_dict_free 2022-04-21 22:22:33 +02:00
Megamouse bd5bff321e cellVdecDecodeAuEx2: some REd guesswork 2022-04-21 22:22:33 +02:00
Megamouse ee3a302cf2 cellVdecDecodeAu: add codec type check 2022-04-21 22:22:33 +02:00
Megamouse fb3752a8ef CellVdecDivxSpecificInfo2 (who knows if this is correct...) 2022-04-21 22:22:33 +02:00
Megamouse 548b748f50 CellVdecPicAttr 2022-04-21 22:22:33 +02:00
Megamouse 771009f333 cellVdec: add more error logging 2022-04-21 22:22:33 +02:00
Megamouse db731d307e CELL_CODEC_PTS_INVALID, CELL_CODEC_DTS_INVALID 2022-04-21 22:22:33 +02:00
Megamouse c6f3f386df cellVdec: implement CELL_VDEC_ERROR_SEQ 2022-04-21 22:22:33 +02:00
Megamouse 8d781a737b Qt: Replace some deprecated Qt5 stuff 2022-04-21 21:23:10 +02:00
Megamouse e9af0bb72b cellGameGetParamString: check_mode for category 2022-04-21 20:56:11 +02:00
Megamouse d8bbec9594 libav: log more error codes as string 2022-04-21 08:10:01 +02:00
Eladash f1a37da94c Update main_window.cpp 2022-04-20 08:28:46 +02:00
kd-11 bca7b02ae9 Fix compressed pitch calculation 2022-04-19 22:58:29 +03:00
sguo35 e761b3235c macos: fix build for arm64
Adds arm64 branches to some x86 specific code and modifies some casting
logic to make Clang happy
2022-04-18 17:53:54 +03:00
Timo654 afae58b231 Interpret negative values in game patches 2022-04-18 17:01:19 +03:00
RipleyTom 563af4211a sys_net: Fix race between dnshook and nc 2022-04-17 00:06:21 +02:00
Megamouse 184bd51b87 Qt: Add timestamp filter to log viewer
This is incredibly useful if you want to copy paste two logs into Meld for example
2022-04-16 20:49:50 +02:00
RipleyTom 895af3c3ab
sys_net: SYS_NET_ENETDOWN for offline dns rqsts (#11822) 2022-04-16 13:00:04 +01:00
Eladash 6783bcd273 Log a snippet of guest thread code at crash 2022-04-15 22:34:51 +03:00
Eladash 1d51f3af0c RSX-Debugger: Implement backwards scrolling
* Use 2 points of known true RSX code roots and follow them in order to peek at the current section of valid RSX code:
These roots are: current RSX instruction address and the last targeted address by a branch instruction.
2022-04-15 22:34:51 +03:00
RipleyTom 26d8120168 sys_net fixes and extra logging 2022-04-15 19:43:23 +02:00
Megamouse 841f815be3 Qt: unify version displays
The only version that is different is the game window due to some formatting.
And the update message due to some logic that is better left unchanged.
2022-04-14 23:16:40 +02:00
RipleyTom d6b0263144 sys_net fixes
Fix lv2_socket_p2ps::connect
Fix sys_net_bnet_poll
2022-04-14 09:18:58 +02:00
RipleyTom 91768c025c Add some error handling to sys_usbd 2022-04-14 08:26:23 +02:00
kd-11 57aee92bfe rsx: Separate guest flip timer from host timing operations 2022-04-13 23:39:01 +03:00
kd-11 89de1a8cf6 overlays: Fix frame timing 2022-04-13 23:39:01 +03:00
kd-11 60cbd7a88c Automatically determine the epsilon value programatically 2022-04-13 15:48:28 +03:00
kd-11 2db68acab9 rsx: Implement Z value snapping to account for precision errors 2022-04-13 15:48:28 +03:00
RipleyTom 4d26535758 sys_net: bind & getsockname accuracy 2022-04-12 08:58:17 +02:00
Megamouse 5407e42b76 Qt: add last thread actions option to log viewer 2022-04-11 23:59:55 +02:00
Megamouse 8f02ea1d42 Qt: add show threads option to log viewer 2022-04-11 23:59:55 +02:00
Megamouse 3ed5a935fb Qt: allow to filter the log viewer with log levels 2022-04-11 00:12:51 +02:00
Megamouse f24b0c2ffe Qt: Allow to filter the log multiple times 2022-04-11 00:12:51 +02:00
clienthax 127ad508b4 Add stubs. 2022-04-10 18:28:57 +02:00
RipleyTom cbc067b490 Fix get_roomdata_external_list callback event id 2022-04-10 15:42:26 +02:00
RipleyTom 4087b4e6b9 sys_net: fix dns redirection 2022-04-10 15:12:33 +02:00
Eladash c35da0085f PARAM.SFO loader improvement 2022-04-10 14:31:13 +02:00
RipleyTom f8ea50caae sys_net: Fix return values being tagged as errors 2022-04-10 11:15:41 +02:00
Megamouse 20801615f3 cellOskDialogAbort: always send finished event
No idea if this is really correct, but it fixes the PS-Home OSK dialog freeze.
2022-04-10 08:38:36 +02:00
Megamouse 9279736fe6 cellOskDialog: fix cellOskDialogAbort error format 2022-04-10 08:38:36 +02:00
Megamouse d84a0c6503 cellGameGetBootGameInfo 2022-04-10 08:38:36 +02:00
RipleyTom 8fb2d04ce8 rpcn: validate callbacks before queuing them 2022-04-10 00:23:32 +02:00
RipleyTom c06cb4664a Various sys_net improvements
Implement P2PS select
Adjust P2P sendto return value
2022-04-09 21:56:53 +02:00
Megamouse 039d19dacf Patch manager: detailed message box for long logs 2022-04-09 21:26:06 +02:00
Megamouse 499fe3e218 Patch manager: add node location to patch errors 2022-04-09 21:26:06 +02:00
RipleyTom 855b23b3fe re-add scope to sys_net_bnet_poll 2022-04-09 20:24:08 +03:00
RipleyTom 72b2876b6a
sys_net refactor (#11740) 2022-04-09 14:51:22 +02:00
Nekotekina f4d0286109 Add SPU XFloat Accuracy combobox 2022-04-08 22:46:09 +03:00
Megamouse 544cec0434 revert cellSysutilAvc2Load
I think I mistook the subfunc for the main func
2022-04-08 20:07:58 +02:00
Megamouse bcc097718f cellSysutilAvc2 fixes 2022-04-08 20:07:58 +02:00
Megamouse 0dc176b4f1 cellSysutilAvc2EstimateMemoryContainerSize 2022-04-08 20:07:58 +02:00
Megamouse 47401cba1f cellSysutilAvc2: more improvements 2022-04-08 20:07:58 +02:00
Megamouse 8a2826f3a9 cellSysutilAvc2SetWindowString: add strlen check 2022-04-08 20:07:58 +02:00
Megamouse 81f8ece236 cellSysutilAvc2InitParam: remove overzealous code.
The function is intended as a constructor, so it doesn't make sense to check struct members
2022-04-08 20:07:58 +02:00
Megamouse 3c2cf79675 cellSysutilAvc2: more stubs and errors 2022-04-08 20:07:58 +02:00
Megamouse a841ba4084 cellSysutilAvc2: more constants 2022-04-08 20:07:58 +02:00
Megamouse 3024026d9e cellSysutilAvc2: format some enums
Makes them more readable
2022-04-08 20:07:58 +02:00
Megamouse fb03a3bf67 Qt: Implement simple filter in log viewer 2022-04-08 01:25:44 +02:00
kd-11 e53bbd668b rsx: Fix surface cache scanning and removal 2022-04-05 14:07:05 +03:00
kd-11 fc05511354 rsx: Optimize software sampling further for the 6-tap kernel 2022-04-04 16:51:03 +03:00
kd-11 ca35a75a7d rework weighting scheme 2022-04-04 16:51:03 +03:00
kd-11 15b7e4f05e 6-tap experiment 2022-04-04 16:51:03 +03:00
kd-11 49c84f099a rsx/glsl: Fixup 2022-04-04 16:51:03 +03:00
kd-11 43b267ea51 glsl: Rewrite MS sampling implementation 2022-04-04 16:51:03 +03:00
kd-11 a8441b28e8 rsx: Implement basic 2D bilinear filtering for MSAA images 2022-04-04 16:51:03 +03:00
Megamouse 3002e592c3 gs_frame: remove unnecessary CallFromMainThread
Qt events should run on the main thread anyway.
2022-04-01 18:38:37 +02:00
Megamouse 4f12f8b04f Qt: fix GracefulShutdown regression
By replacing Emu.Stop() with GracefulShutdown() in gs_frame::close(), the game window was now unknowingly closed recursively, causing RPCS3 to crash in some cases.
Let's just ignore any consecutive calls to close() from now on.
Also don't close the window internally on a close event. request a shutdown instead.
2022-04-01 18:38:37 +02:00
Megamouse 36e3939ec2 Emu: actually wait 5 seconds during GraceFulShutdown 2022-04-01 18:38:37 +02:00
Megamouse c803bf1849 soundtouch: fix debug build 2022-04-01 02:24:27 +02:00
Megamouse ee98f577e2 sceNpTrophyGetTrophyIcon: SCE_NP_TROPHY_ERROR_HIDDEN
And prevent some possible segfaults
2022-03-31 23:02:35 +02:00
kd-11 4a86638ce8 rsx: Avoid unnecessary memprotect syscalls 2022-03-29 12:35:32 +03:00
kd-11 e037b5c438 rsx: Handle in-place image swaps when locking data for WCB/WDB
- Rare, but possible if a surface address is switched from color to depth usage
- In such a case, deref the old image and ref the new one to avoid leaks
2022-03-29 12:35:32 +03:00
kd-11 f45343a345 rsx: Handle DMA block init where empty pages exist in the range 2022-03-29 12:35:32 +03:00
kd-11 94a7e52c1f rsx: Disable ref count on exit 2022-03-28 19:55:34 +03:00
kd-11 2b42895bc7 rsx: Reduce log spam a bit 2022-03-28 19:55:34 +03:00
kd-11 d98d152d23 rsx: Fix leaking surface cache refs from texture cache
- Lock surfaces in use by texture cache to prevent complete deletion
- Remove discarded surfaces from the reprotect cache to avoid uaf
2022-03-28 19:55:34 +03:00
kd-11 b645a7faf5 vk: Rebuild swapchain in case of unexpected errors during present 2022-03-28 19:55:34 +03:00
kd-11 ffa841e7c1 vk: Force resolve explicitly for transfer operations 2022-03-28 19:55:34 +03:00
Nekotekina 98cee991ef PPU: fix step execution after BP 2022-03-27 11:37:11 +03:00
Nekotekina 0a617a05d0 PPU: correct behaviour under external debugger
May require setting "Assume External Debugger" to true.
2022-03-26 23:09:20 +03:00
kd-11 e66d6a9399 Fix interpreter 2022-03-26 16:10:18 +03:00
kd-11 ef65c47592 vk: Restore UBO alignment
- NV requires some very large alignment thresholds
2022-03-26 16:10:18 +03:00
kd-11 1592ecdc55 rsx: Invalidate transform block on program change
- Since each program now does a remap of the outputs, we need to reupload the constants
- This is not a loss, constants are almost always changing between draw calls anyway
2022-03-26 16:10:18 +03:00
kd-11 96742852eb Fix OGL 2022-03-26 16:10:18 +03:00
kd-11 de0e660d28 rsx: Handle vertex shaders with no constant references
- If no vc[] refs exist, do not upload anything!
2022-03-26 16:10:18 +03:00
kd-11 d057ffe80f rsx: Fix program generation and compact referenced data blocks 2022-03-26 16:10:18 +03:00
kd-11 9a2d4fe46b rsx: Relocatable transform constants 2022-03-26 16:10:18 +03:00
RipleyTom a4d715e25d Warning Fixes 2022-03-23 19:35:10 +01:00
kd-11 af0e1f609e Fix vulkan compilation warnings 2022-03-23 11:26:06 +03:00
kd-11 1ab5b481ff Fix ambiguous comparison operator warning 2022-03-23 11:26:06 +03:00
kd-11 26ee1246ae rsx: Block size back down to 4MB
- 4M is a good compromise, a 720p surface occupies just under 4MB
2022-03-23 11:26:06 +03:00
kd-11 d0402332f7 rsx: Bump surface cache block size to 16M 2022-03-23 11:26:06 +03:00
kd-11 43c7417906 rsx: Rework ranged map
- Adds metadata lookup for intersecting range calculations
- Make fetch/put methods more explicit
2022-03-23 11:26:06 +03:00
kd-11 56540a55ec Fix linux 2022-03-23 11:26:06 +03:00
kd-11 35ec4de776 rsx: Optimize surface store for faster scanning 2022-03-23 11:26:06 +03:00
Silent c5748983f6 WolfSSL: Use a custom UTF-8 aware _stat on Windows 2022-03-21 15:47:27 +01:00
aliaspider 5797673daa fix vfs::host::rename.
- resolve_path requires the path to be valid and can only be used before
the call to fs::rename, not after.
2022-03-21 08:49:01 +03:00
Megamouse 3972022fa2 evdev: improve latency 2022-03-20 04:27:06 +01:00
C.W. Betts 39201e5042 Fix macdeployqt.
This is based off of the instructions found here: https://riptutorial.com/qt/example/24133/integrating-with-cmake
2022-03-18 13:19:36 +01:00
Megamouse ff34a73fbd cellSaveData: CELL_SAVEDATA_FOCUSPOS_NEWDATA
Untested, but focus position is clamped anyway.
2022-03-18 08:09:50 +01:00
Megamouse 539ac32806 Decrease log spam in case that per core cpu usage cannot be queried 2022-03-18 01:47:23 +01:00
Megamouse 7a86cffd0a Revert writable folder check
This doesn't seem to work as intended
2022-03-18 00:33:52 +01:00
kd-11 bc7ed8eaab rsx/vk: Rework MSAA implementation 2022-03-17 22:02:20 +03:00
Megamouse 9c5ed01130 Add rpcs3 location checks to main
Don't allow running RPCS3 from temp dirs.
Abort if the folder has no write permissions.
2022-03-17 18:59:38 +01:00
Megamouse e58906cb4d cpu_stats: fmt::win_error_to_string 2022-03-16 22:20:23 +01:00
Megamouse 04df392866 Log cpu usage periodically 2022-03-16 19:42:06 +01:00
nastys ce7b1576e0 Low Power Mode detection
Change low to reduced

Low Power Mode detection

Fix namespace space

Low Power Mode detection

Fix namespace space

Low Power Mode detection
2022-03-14 08:28:02 +01:00
Megamouse 686d2759f4 cellMic: remove cellMicRead error spam 2022-03-12 20:48:36 +01:00
kd-11 78b8bd80e4 rsx: Unconditionally set MSAA flags if MSAA is active 2022-03-11 01:15:13 +03:00
kd-11 1943d9819f rsx: Clean up surface cache routines around RTT invalidate 2022-03-10 20:43:58 +03:00
NicknineTheEagle 1670769119 Use simpler C00 unlock EDAT check in GUI 2022-03-09 22:39:30 +03:00
kd-11 59a0cf94ab rsx: Fix msvc build 2022-03-08 22:06:26 +03:00
kd-11 3e4faf602a rsx: Fix clang build 2022-03-08 22:06:26 +03:00
kd-11 454a724f4e rsx: Reduce the performance impact of enabling the profiling timer
- Just use TSC if available
2022-03-08 22:06:26 +03:00
kd-11 cfecbb24ca rsx: Avoid calling slow functions every draw call
- Use TSC for timing where interval duration matters.
- Use atomic counter for ordering timestamps otherwise.
2022-03-08 22:06:26 +03:00
kd-11 762b594927 rsx: Fully process texture if surface cache configuration changed 2022-03-08 22:06:26 +03:00
kd-11 8d3d290e33 rsx: Fix build 2022-03-08 22:06:26 +03:00
kd-11 0df903090d rsx: Optimize metrics a bit
- For some reason this has a massive impact on performance above some arbitrary threshold of calls
  Shows up under surface_cache::get_merged_memory_region when doing gathers.
2022-03-08 22:06:26 +03:00
kd-11 6812fa4764 rsx: Fix surface write coherency when MSAA is active 2022-03-08 22:06:26 +03:00
Megamouse cd97d74f0f cellMusic/Decode: add SelectContents functions 2022-03-08 09:02:59 +01:00
Megamouse 00f6763228 cellMusic: fix qt music handler resume 2022-03-06 12:57:38 +01:00
Megamouse aafd74f9ea cellMusicDecode: initial implementation
Implements the basic functionality of cellMusicDecode.
Works with Space Invaders (if you add the list selection from the other PR).
Probably fixes SSX custom music.
2022-03-05 18:34:27 +01:00
Megamouse e33b130606 Fix some enumeration warnings 2022-03-03 08:25:46 +01:00
Megamouse 15e74357cf cellMusic: implement qt music handler 2022-03-03 08:25:46 +01:00
kd-11 0dbfe314a3 vk: Encode image type when caching resources 2022-03-01 21:51:55 +03:00
kd-11 00a1864a95 Revert "rsx: Downgrade depth-1 3D images to 2D (#11593)"
This reverts commit 6c096b72b5.
2022-03-01 21:51:55 +03:00
kd-11 6c096b72b5
rsx: Downgrade depth-1 3D images to 2D (#11593)
- Fixes problems with implicit view types derived from dimensions.
2022-03-01 10:45:50 +03:00
Ani a8e62e1bc1 rpcs3_version: Bump to 0.0.21 2022-03-01 00:29:49 +01:00
Megamouse 42aa8f263a Qt: store pad settings state and remove max size 2022-02-28 08:19:13 +01:00
nastys af95ff5f8b Round macOS icon 2022-02-27 11:16:50 +01:00
nastys f0093375b8 Set min macOS version to 11.6 2022-02-27 11:16:50 +01:00
kd-11 e035000864 vk: Do not enable passthrough DMA unconditionally (yet)
- There are still some kinks to work out. Host labels do not fix all the bugs which means I missed something.
2022-02-26 10:28:46 +03:00
kd-11 6db5d83615 Flush dma offloader on texture read sema 2022-02-25 10:53:55 +03:00
Eladash 86a04a867b
Qt: show time of day in 'last played' game info, log current time when RPCS3 boots (#11220) 2022-02-23 23:40:18 +01:00
kd-11 f3823232e0 Disable passthrough DMA for proprietary intel driver 2022-02-23 21:15:08 +03:00
kd-11 6b8b23c401 vk: Drain the label queue before using the CPU fallback to avoid out-of-order signals
- This avoids crashes in some game engines which expect RSX semaphores to signal in the order they are submitted.
2022-02-23 12:57:04 +03:00
kd-11 6fd2a9b677 rsx: Remove leftover dprints 2022-02-23 12:57:04 +03:00
kd-11 da559b5568 vk/rsx: Tuning and optimization for host labels 2022-02-23 12:57:04 +03:00
kd-11 24587ab459 rsx: Add the option to the advanced tab 2022-02-23 12:57:04 +03:00
kd-11 c7e49b58a8 rsx: Implement host GPU sync labels 2022-02-23 12:57:04 +03:00
Megamouse c5680c29bd Qt: set organization name 2022-02-22 14:19:29 +01:00
Megamouse 1144121d08 shortcuts: add some logging, fix shortcut path 2022-02-22 14:19:29 +01:00
Megamouse fa6736e69d update_manager: add some logging 2022-02-22 14:19:29 +01:00
kd-11 10e6b43a2f Drop redundant declaration 2022-02-21 23:58:01 +03:00
kd-11 0809e7cf9f Fix build 2022-02-21 23:58:01 +03:00
kd-11 12fd43e1c6 vk: Remove unused variables 2022-02-21 23:58:01 +03:00
kd-11 397a795e75 vk: Remove hardcoded command buffer list length 2022-02-21 23:58:01 +03:00
kd-11 1f9ade0ab6 vk: Remove pointless function (VKGSRender::open_command_buffer)
A relic of the past, back before we wrote wrappers for raw handles.
2022-02-21 23:58:01 +03:00
kd-11 83407c386c vk: Move renderer types to a separate file
- Makes my life easier managing conflicts
2022-02-21 23:58:01 +03:00
kd-11 b791d90b35 vk: Rewrite command buffer chains 2022-02-21 23:58:01 +03:00
nastys 574e934bf3 macOS: Implement shortcuts 2022-02-21 19:11:52 +01:00
nastys b57ea3a229 Fix macOS builds 2022-02-21 19:11:52 +01:00
Megamouse 771f3c49e5 windows: fix windows shortcut paths 2022-02-21 01:14:53 +01:00
Megamouse 13e1305a76 linux: fix shortcut icon aspect ratio 2022-02-21 01:14:53 +01:00
Megamouse 9214df482e Unbreak macOS builds 2022-02-20 21:06:46 +01:00
Megamouse b1a9e87ecf cellSearch: fix cellSearchStartListSearch
Fixes listing BGM in Gundam.
The returned content was always empty.
Playback of the tracks will still require a MusicSelectionContext and cellMusic playback, which isn't implemented yet.
2022-02-20 21:06:46 +01:00
Megamouse 0a34403ef8 Qt: create rpcs3 shortcuts 2022-02-20 13:23:27 +01:00
Megamouse e5bb0ba004 Qt: properly hide metal sempahore if not apple 2022-02-20 13:23:27 +01:00
Megamouse 2147fe479c cellSearch: more logging 2022-02-20 12:29:37 +01:00
Megamouse 93e7988df7 rsx: add boost mode shortcut 2022-02-20 11:56:11 +01:00
nastys 7801e8368b Add MoltenVK Semaphore setting 2022-02-20 08:47:16 +01:00
Megamouse 91d7f28c67 cellSearch: log audio and video metadata 2022-02-19 14:27:47 +01:00
Megamouse 8171c7766c cellSearch: silence irrelevant log error 2022-02-19 14:27:47 +01:00
Megamouse 3f69ceac40 cellMusic: fix cellMusicSetVolume log messages 2022-02-19 14:27:47 +01:00
Megamouse 4be9e0d396 RSX: Fix rsx capture stop
RSX captures froze on stop, at least with Vulkan.
2022-02-16 19:50:57 +01:00
RipleyTom 6bd8a93ff4 Fixes some unchecked derefs in sceNp logging 2022-02-16 17:08:58 +01:00
Eladash e39797d860 Fix sys_fs_close FD state logging 2022-02-16 18:09:13 +03:00
kd-11 254ddcad51 vk/dma: Initialize COW DMA block contents to avoid leaks
- It is possible to lose data when uploading since the result of map_dma can change types and handles.
- Consider sync-on-exit for inherited spans

Not a problem when using passthrough DMA, but this extension does not work properly on NVIDIA + windows
2022-02-16 16:33:27 +03:00
Eladash fd6c33980b
cellSaveData: Check filename format of savedata files (#11502) 2022-02-14 22:03:40 +03:00
kd-11 2d5d5746d1 gl: Harmonize format conversion values
- Return values that are true to the PS3, not the host.
2022-02-13 15:31:39 +03:00
kd-11 314b63eebf vk: Drop unused native format ABGR8 2022-02-13 15:31:39 +03:00
kd-11 f382d54e9a gl: Remove pointless assert 2022-02-13 15:31:39 +03:00
kd-11 9581e4ff98 qt: Add translation resources 2022-02-13 14:39:42 +03:00
kd-11 b7a57ac4b0 qt: Update tooltips 2022-02-13 14:39:42 +03:00
kd-11 df5295ae85 vk: Per work-queue scratch resources
- Avoids parallel tasks from trampling over each other's data
2022-02-13 14:39:42 +03:00
kd-11 c8ad8b18bb vk: Ignore queue transfer stuff when using 'fast' mode 2022-02-13 14:39:42 +03:00
kd-11 44cc254620 Fix linux build 2022-02-13 14:39:42 +03:00
kd-11 cef512a123 vk: Spec-compliant async compute 2022-02-13 14:39:42 +03:00
Megamouse 7895d43a98 Terminate headless rpcs3 if nothing was booted 2022-02-12 12:46:07 +01:00
Megamouse d6597038ee Input: multithreaded handlers
Implements naive multithreading for input handlers.
2022-02-10 20:38:11 +01:00
kd-11 ec3e8de780 rsx: End the current frame before performing cache cleanup to release in-flight data 2022-02-10 22:20:56 +03:00
kd-11 f667b52cca vk: Rewrite resource management 2022-02-10 22:20:56 +03:00
kd-11 48b54131f6 vk: Fix up multiple resource allocation routines
- Originally part of async bringup. Imported to allow smoother transition.
2022-02-10 22:20:56 +03:00
Megamouse d172b9add6 Rename CallAfter to CallFromMainThread 2022-02-07 19:42:08 +01:00
kd-11 2d9f21a2ea rsx: Lower performance warnings to 'warn' level instead of 'error' level to avoid causing panic for users 2022-02-07 09:25:01 +03:00
kd-11 247759b75b rsx: Fix memory tagging and add some security checks 2022-02-07 09:25:01 +03:00
RipleyTom 987166f4da Fix IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP 2022-02-06 20:37:12 +01:00
kd-11 90d368ae30 vk: Speed up cached image search a bit 2022-02-06 15:49:50 +03:00
kd-11 a2d33a7d76 vk: Fix WCB crash 2022-02-06 15:49:50 +03:00
kd-11 51f9310b9f vk: Silence compiler warnings 2022-02-06 15:49:50 +03:00
kd-11 dca3d477c9 vk: Use image hot-cache for faster allocation times
- Creating new images is expensive.
- We can keep around a set of images that have been recently discarded and use them instead of creating new ones from scratch each time.
2022-02-06 15:49:50 +03:00
Megamouse 02cdf8ac63 Qt: save settings dialog window state 2022-02-06 13:02:16 +01:00
nastys 6b370e85d5 Add overlay animations 2022-02-06 12:26:34 +01:00
Megamouse 05e80aad90 Qt: make patch manager dialog resizable 2022-02-06 00:09:27 +01:00
Megamouse 4ad255b8e0 Qt: make about dialog resizable 2022-02-06 00:09:27 +01:00
Megamouse 09a60cdefa Qt: add scrollbar to settings dialog 2022-02-06 00:09:27 +01:00
Megamouse eacf5a3813 Qt: adjust wording for updates 2022-02-05 12:22:54 +01:00
Eladash e951c619c5
Implement Emulator::GracefulShutdown() 2022-02-05 11:49:29 +01:00
RipleyTom 6c5b8dc31c rpcn: add cookie impl to tickets 2022-02-03 13:25:15 +01:00
Megamouse fd0e7a4efa Qt: fix compat download abort 2022-02-01 21:21:42 +01:00
Megamouse a4c4548c3a input: add enumeration threads for each hid_pad_handler
There was a roughly 60 ms lag for each hid handler every 2 seconds. (sucks if you use all 3 hid handlers)
2022-02-01 19:28:04 +01:00
Megamouse 8efc29972d input: add missing nullptr checks for pad 2022-02-01 19:28:04 +01:00
Vestral 7977fbb9c5 Audio: prevent click at play/pause
Cubeb uses internal rate resampler and it's not being flushed during call to stream_stop.
This results in noticeable click when emulator is unpaused.
Reset last sample buffer on pause for all backends.
2022-01-31 21:20:57 +01:00
Vestral 681bab558b XAudio: fix deinitialization order 2022-01-31 21:20:57 +01:00
Vestral 107107107c SoundTouch resampler integration 2022-01-31 21:20:57 +01:00
Hyogi Sim 3a804674c9 Fix linkage error on debug build with clang-13
Debug build with clang-13 fails with "undefined references" to the
static const members in spu_channel class. This patch replaces the const
definitions with constexpr constants.
2022-01-31 17:05:18 +03:00
Malcolm Jestadt 91673f8fdc SPU LLVM: Add relaxed xfloat option
- This new setting is on by default
- It's active when approximate default is disabled
- Approximate xfloat is now exposed to the gui
2022-01-31 08:02:48 +03:00
kd-11 86919ec0e1 rsx: Validate requested images before attempting to upload them
- Do not allow dimensions of 0 to reach the backend APIs
2022-01-30 14:58:51 +03:00
kd-11 0e320d17c1 vk: Fix 'grow' behavior when we reach the size limit
- Just swap out the current heap ptr and spawn a fresh one. Chances are, we can spare 1GB of host memory.
2022-01-30 10:56:15 +03:00
kd-11 d063f0b335 vk: Fix working buffer calculation for emulated D16F operations 2022-01-30 10:56:15 +03:00
Eladash 781b2b4548
Implement fs::isfile (#11447) 2022-01-29 22:10:48 +03:00
Nekotekina 16aae4eb77 Fixup creating image path 2022-01-26 15:46:16 +03:00
Nekotekina 3a1082fe0d Fix overlays::image_info constructor 2022-01-26 15:46:16 +03:00
Nekotekina dba2baba9c Implement utils::memory_map_fd (partial)
Improve JIT profiling dump format (data + name, mmap)
Improve objdump interception util (better speed, fix bugs)
Rename spu_ubertrampoline to __ub+number
2022-01-26 15:46:16 +03:00
kd-11 ffe00e8619 gl: Clean up format bitcast checks and register D32F type for FORMAT_CLASS16F
- Also hides a dangerous export for vulkan, same as GL
2022-01-26 12:08:36 +03:00
kd-11 3fa45ff994 Fix missing typeless info update 2022-01-26 12:08:36 +03:00
Eladash 73ff506b88 overlay_controls.cpp: Improve image_info ctor withstandability 2022-01-26 10:35:52 +03:00
kd-11 3a1676e558 vk: Fix float16 requirement issue 2022-01-25 21:34:21 +03:00
Nekotekina 0db9850a73 Add loop building utilities for ASMJIT
Refactor copy_data_swap_u32 a bit
2022-01-25 03:16:37 +03:00
Nekotekina 11ee1f3eb2 Improve JIT profiling on Linux
Add JIT object dumping functionality.
Add source for objdump interception utility.
2022-01-25 03:16:37 +03:00
Nekotekina 14951d8713 Fix abuse of fs::pending_file
Debug dumps don't fall into category which needs atomic rewrite.
2022-01-24 22:39:01 +03:00
Nekotekina 065ee621b8 Call avcodec_register_all in case of old ffmpeg
Apparently it's still possible to break without it.
2022-01-24 22:39:01 +03:00
Nekotekina 12c83b340d Remove built_function
With today's branch prediction techniques, it's hardly useful.
2022-01-24 22:21:41 +03:00
nastys d2897bc6a0 macOS: Fix DS3 init on Monterey 2022-01-24 20:16:57 +01:00
kd-11 5920372929 qt: Encourage users to use better ZCULL synchronization options
- From looking at logs, users are not actually changing ZCULL settings because they do not realize how slow 'Precise' mode is.
  By marking precise as the 'slowest' mode, we can get the message across that better options exist.
- Also updates the tooltips with more useful information.
2022-01-24 19:14:27 +03:00
kd-11 1fa82eec89 vk: Rework format feature validation
- Requirements have changed a lot over the years. We no longer blit Z formats around for example because they never support linear filtering
- Removing some unused requirements allows more hardware to be usable
2022-01-24 19:14:27 +03:00
RipleyTom 8c2fd50957 Add a QGroupBox in RPCN password window 2022-01-23 11:04:18 +01:00
kd-11 2f7d38bb81 rsx: Improve coverage checking logic to handle 3D and cubemap resources 2022-01-23 00:03:03 +03:00
kd-11 4f8b5849b7 rsx: Take depth into account when calculating coverage 2022-01-23 00:03:03 +03:00
kd-11 7f216f2581 rsx: Fix local slice height calculation 2022-01-23 00:03:03 +03:00
kd-11 6ffd38c393 vk: Only enable DCC workaround if the format features allow it 2022-01-22 13:16:48 +03:00
nastys 801e7f3c2f macOS: Implement texture swizzling for 16-bit formats 2022-01-22 00:17:17 +01:00
nastys c7140df5f8 Initial support for Apple GPUs 2022-01-22 00:17:17 +01:00
nastys 6b5f0957ce Disable macOS swizzling workaround 2022-01-22 00:17:17 +01:00
Jan Beich f2ed50e6b0 cellVdec: constify AVInputFormat for ffmpeg >= 5.0
rpcs3/Emu/Cell/Modules/cellAdec.cpp:326:19: error: assigning to 'AVInputFormat *' from 'const AVInputFormat *' discards qualifiers
                        input_format = av_find_input_format("oma");
                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellAdec.cpp:332:19: error: assigning to 'AVInputFormat *' from 'const AVInputFormat *' discards qualifiers
                        input_format = av_find_input_format("mp3");
                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
2022-01-21 21:36:17 +03:00
Jan Beich 511ca82e30 cellAVdec: constify AVCodec for ffmpeg >= 5.0
rpcs3/Emu/Cell/Modules/cellAdec.cpp:325:12: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
                        codec = avcodec_find_decoder(AV_CODEC_ID_ATRAC3P);
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellAdec.cpp:331:12: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
                        codec = avcodec_find_decoder(AV_CODEC_ID_MP3);
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellVdec.cpp:143:12: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
                        codec = avcodec_find_decoder(AV_CODEC_ID_MPEG2VIDEO);
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellVdec.cpp:148:12: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
                        codec = avcodec_find_decoder(AV_CODEC_ID_H264);
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellVdec.cpp:153:12: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
                        codec = avcodec_find_decoder(AV_CODEC_ID_MPEG4);
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2022-01-21 21:36:17 +03:00
Nekotekina 00274bb4da PPU: port FP convert instructions to Aarch64 2022-01-21 16:07:48 +03:00
Nekotekina a4d94a83b9 PPU/simd.hpp: minor changes in DP instructions 2022-01-21 13:57:46 +03:00
Nekotekina 0de9960772 PPU: rewrite MFOCRF+MFCR instructions 2022-01-21 12:49:52 +03:00
Nekotekina aa7c9dd15d PPU: rewrite LVSL/LVSR instructions
Make the tables endian-agnostic.
2022-01-21 00:05:40 +03:00
Nekotekina 628354ba92 Use global variable in gv_zeroupper 2022-01-20 21:16:00 +03:00
Nekotekina 17b1a34ebf PPU: rewrite LVLX/LVRX/STVLX/STVRX instructions 2022-01-20 21:16:00 +03:00
Nekotekina 349f251d14 PPU LLVM: use masked stores for STVLX/STVRX
Drop maskmove intrinsic, not portable.
Its implicit NT hint may also hurt performance.
2022-01-20 21:16:00 +03:00
kd-11 3942a464fe vk: Avoid leaking descriptor copies 2022-01-20 19:21:24 +03:00
kd-11 2331dc3256 vk: Keep the total number of allocated samplers under control 2022-01-20 19:21:24 +03:00
Nekotekina 8c3fb3998c PPU: fix crash on SSE41 CPU in internal builder 2022-01-20 14:42:58 +03:00
Nekotekina 327c577024 PPU: print internal interpreter build error 2022-01-20 14:42:58 +03:00
Nekotekina d572d90bb7 PPU: fixup for old CPU
Abort building interpreter function when out of registers.
2022-01-20 08:31:08 +03:00
Nekotekina b42fae0989 PPU: refactor shift and splat instructions
Fix utils::rol32/64 functions.
Fix immediate clamping in splat instructions.
Other fixes.
2022-01-19 23:01:31 +03:00
Megamouse d92008abe4 Qt: fix RestoreDefaults crash
For some reason rpcs3 crashes when I restore the defaults of multiple configs one after another in the settings dialog.
Using the other signal seems to work.
I don't wanna investigate this nonsense though, so I'll just accept the fix as is.
2022-01-19 20:41:05 +01:00
Megamouse 484a3e6824 Qt: check for patch updates 2022-01-18 20:24:31 +01:00
Nekotekina 08b02efc6c ARM: don't calibrate TSC, use cntfrq_el0 info 2022-01-18 04:21:42 +03:00
Nekotekina 4728478247 PPU: improve interpreter codegen
Implement more sensible check for EVEX prefix and SSE
2022-01-18 04:20:06 +03:00
Nekotekina 4704367382 Remove unnecessary asmjit::imm_ptr 2022-01-18 00:10:32 +03:00
Nekotekina 14cca55b50 PPU: refactor vector rounding instructions
Fix: nearbyint -> roundeven
2022-01-18 00:10:32 +03:00
Nekotekina 248f9424ac PPU: refactor VPack instructions 2022-01-18 00:10:19 +03:00
Nekotekina b404d37eb0 PPU: more interpreter refactoring (VPERM)
Notably, runtime-built SSSE3 version of VPERM.
Some other instructions are refactored and vectorized.
Aarch64 impl of multiple instructions including VPERM.
2022-01-18 00:10:19 +03:00
Nekotekina 14170afe8a Fix PPU decoder settings dialog 2022-01-18 00:10:19 +03:00
RipleyTom 58fdf58150 Force close socket in sys_net_bnet_close 2022-01-17 21:27:20 +01:00
kd-11 000ec71629 Fix invalid descriptor setup if subdraw0 has broken vertex setup 2022-01-17 12:38:10 +03:00
kd-11 3e794e7fdb rsx: Optimize 8-bit rounding logic a bit
- NV hw does not like the raw use of round()
2022-01-17 10:28:23 +03:00
kd-11 c38ca21a81 rsx: Round up 8-bit ROP output on NVIDIA cards
- NV GPUs have a tendancy to be off by a very small margin, breaking rendering when greaterThan/lessThan checks are used.
- NOTE: Currently this setting is using the sRGB flag which indicates 8-bit output.
  Only one game is currently known to care about this behaviour so this is good enough for now.
2022-01-17 10:28:23 +03:00
kd-11 f923eaf09a rsx: Surface format remapping enhancements 2022-01-17 10:28:23 +03:00
Nekotekina 5b980b99a0 PPU: Rename new ppu_use_nj_bit setting to flip it back
Some mistakes were made.
2022-01-16 01:34:47 +03:00
Nekotekina 22240777aa PPU Interpreter: fix accuracy flag dispatch 2022-01-16 01:00:37 +03:00
Nekotekina f95395b351 PPU LLVM: improve accuracy of VSL/VSR
Passes tests, should now be equal to interpreter.
2022-01-15 21:13:31 +03:00
Nekotekina df24cff0b1 PPU LLVM: fix VMINFP and VMAXFP accuracy
PPU cache needs to be cleared.
2022-01-15 17:36:57 +03:00
Nekotekina 6dda047128 PPU LLVM: fix VNMSUBFP sign handling
PPU cache needs to be cleared.
2022-01-15 17:36:57 +03:00
Nekotekina e9efa73eed PPU: restore previous NJ mode handling option
Fix the divergence between PPU Interpreter and LLVM.
2022-01-15 17:36:57 +03:00
Megamouse 1c0b3fc7e0 Qt: Fix accurateXFloat enabled state in settings dialog 2022-01-15 13:48:03 +01:00
Nekotekina 580bd2b25e Initial Linux Aarch64 support
* Update asmjit dependency (aarch64 branch)
* Disable USE_DISCORD_RPC by default
* Dump some JIT objects in rpcs3 cache dir
* Add SIGILL handler for all platforms
* Fix resetting zeroing denormals in thread pool
* Refactor most v128:: utils into global gv_** functions
* Refactor PPU interpreter (incomplete), remove "precise"
* - Instruction specializations with multiple accuracy flags
* - Adjust calling convention for speed
* - Removed precise/fast setting, replaced with static
* - Started refactoring interpreters for building at runtime JIT
*   (I got tired of poor compiler optimizations)
* - Expose some accuracy settings (SAT, NJ, VNAN, FPCC)
* - Add exec_bytes PPU thread variable (akin to cycle count)
* PPU LLVM: fix VCTUXS+VCTSXS instruction NaN results
* SPU interpreter: remove "precise" for now (extremely non-portable)
* - As with PPU, settings changed to static/dynamic for interpreters.
* - Precise options will be implemented later
* Fix termination after fatal error dialog
2022-01-15 06:48:04 +03:00
kd-11 d6aa834b5f vk: Enable shading rate hack for all GPUs
- This is a hack, ideally we should be using coverage-based masking when writing the exploded texture.
- We do not have access to the fragment coverage mask and it is non-trivial to integrate it in a competent manner.
2022-01-14 10:21:38 +03:00
MSuih f526027778
Revert recent file system changes (#11370)
* Revert "FS: use std::filesystem::u8path"

This reverts commit cd016be86e.

* Revert "VFS: fix missing path deliminators"

This reverts commit 84753db574.

* Revert "Bugfix of Emulator::Load disc path searching"

This reverts commit b9179de288.

* Revert "fs: Reimplement path resolving using std::filesystem::weakly_canonical"

This reverts commit 0c4b2ff06b.
2022-01-13 07:24:04 +03:00
Malik Idrees Hasan Khan 949e93bec7
Fix typos (#11361) 2022-01-12 23:21:02 +01:00
Megamouse 84753db574 VFS: fix missing path deliminators 2022-01-13 00:07:25 +03:00
Eladash ef0bee9228 aes.cpp: Use secured memory resetting 2022-01-12 03:37:39 +03:00
Eladash a60cee6536 Update PPUTranslator::MTFSFI for its intention to be clearer 2022-01-12 03:37:39 +03:00
Eladash 108846055b shared_ptr.cpp: Remove std::swap specialization 2022-01-12 03:37:39 +03:00
Eladash b9179de288 Bugfix of Emulator::Load disc path searching
Turns out fs::file does not always fail when provding a path to a directory.
2022-01-12 03:37:39 +03:00
Eladash 0c4b2ff06b fs: Reimplement path resolving using std::filesystem::weakly_canonical 2022-01-12 03:37:39 +03:00
Silent 8c9090fd03 WolfSSL: Use a custom UTF-8 aware fopen on Windows
Fixes loading cacert.pem from Unicode directories
2022-01-12 03:35:15 +03:00
nastys ef66b002e0
Implement proper macOS version check (#11352) 2022-01-11 23:17:26 +01:00
nastys 37f24d8c1c Log maxfiles to file and stderr on *NIX 2022-01-11 08:05:17 +03:00
nastys 3571e6ef85 macOS: Set correct maxfiles (fixes shader cache and SPU LLVM) 2022-01-11 08:05:17 +03:00
nastys ed542b2cb4 macOS: Fix arrow keys 2022-01-10 22:54:06 +01:00
nastys 09700360f7 macOS: Warn if Vulkan is not supported 2022-01-10 19:18:49 +03:00
nastys 29a6db8960 Disable OpenGL on macOS 2022-01-10 19:18:49 +03:00
kd-11 6d737e61fd rsx: Use 32 bit integers for pitch
- RSX max pitch = 65536 which requires 17 bits
2022-01-10 12:27:30 +03:00
kd-11 d874ca5d8c cellGame: Fall back to VERSION field if APP_VER is missing from PARAM.SFO 2022-01-10 12:27:30 +03:00
Vestrel 1adc408ad7
More sys_uart packets (#11332)
* Additional sys_uart packets added
2022-01-10 03:43:54 +03:00
kd-11 83026fd263 rsx: use coverage ratio to determine when too much data is overlapping 2022-01-07 22:55:27 +03:00
kd-11 92824b6729 rsx: Rework invalidation tagging 2022-01-07 22:55:27 +03:00
kd-11 7563655221 rsx: Bump surface removal threshold values
- It is much slower to attempt surface removal than to render duplicates on the host GPU
2022-01-07 22:55:27 +03:00
kd-11 6889b48973 rsx: Add optimized version of section removal code 2022-01-07 22:55:27 +03:00
Vestral 9766d87126 cellAudio: fix enqueued samples computation 2022-01-07 09:48:51 +01:00
Eladash bba528e2ae
rsx: Fix wrong fault report in initialization (#11323)
* rsx: Fix wrong fault report in initialization

* Ensure emu.isstopped() == true at RPCS3 startup

Based on zero initialization.
2022-01-05 20:41:01 +03:00
clienthax 350257e1a4 Fcntl 0xc0000007, 0xc0000015, 0xc000001c 2022-01-04 22:47:06 +03:00
Florin9doi 0e07d3c58f USB: Improve SingStar emulation 2022-01-04 18:03:23 +01:00
陈俊嘉 20cc2d7267 Add multi-config generator build support for Windows. 2022-01-02 23:59:54 +01:00
Malcolm Jestadt 31a5a77ae5 SPU: Use REP MOVSB in do_dma_transfer
- Try to use REP MOVSB when the size of the transfer is above a certain threshold
- This threshold is determined by the ERMS and FSRM cpuid flags
- The threshold values are (roughly) taken from GLIBC
- A threshold of 0xFFFFFFFF indicates that the cpu has neither flag
2022-01-02 21:35:46 +03:00
Megamouse 1c014299eb HLE: fix some types 2022-01-02 18:18:31 +03:00
kd-11 7c47b0029c gl: Fully drop alignment restriction for compressed textures
- This is just not part of spec, there is no enforcement for multiple of block size for width or height of s3tc compressed images.
- This restriction does indeed exist for ASTC and ETC but we're not using those formats.
2022-01-02 14:29:38 +03:00
Ani 61d9852632
rpcs3_version: Bump to 0.0.20 (#11318) 2022-01-01 00:32:14 +00:00
Nekotekina cb2748ae08 Update ASMJIT (new upstream API) 2021-12-29 02:45:00 +03:00
Alex James 900d7df40f GDB: Rework to_hex/hex_to functions
macOS defines uint64 as an alias of unsigned long long. Drop the length
modifiers to resolve the warning on macOS:

rpcs3/rpcs3/Emu/GDB.cpp:107:37: warning: format specifies type 'unsigned long *' but the argument has type 'u64 *' (aka 'unsigned long long *') [-Wformat]
        sscanf_s(val.c_str(), "%" HEX_U64, &result);
                               ~~~~~~~~~~  ^~~~~~~

Also use std::from_chars to implement hex_to_{u8,u32,u64} instead of
sscanf.
2021-12-28 02:02:44 +03:00
clienthax 6837370a62 Handle SYS_NET_IPPROTO_IP get/setsockopt
Improve net logging.

Should allow latest vsh to load (Depending on windows version apparantly..)
2021-12-27 20:58:09 +03:00
Nekotekina d836033212 LLVM: enable some JIT events (Intel, Perf)
Made some related adjustments.
Currently incomplete.
2021-12-26 16:41:37 +03:00
Nekotekina 510041a873 rsx_methods.cpp: optimize compile time (120s to 10s)
Untemplate NV308A_COLOR
2021-12-26 14:40:21 +03:00
Nekotekina 8b4b6ba946 copy_data_swap_u32: build AVX-512 path 2021-12-26 14:40:21 +03:00
Nekotekina 599e00d6da BufferUtils: remove dead code (vertex streaming)
RIP. It won't be useful.
2021-12-26 14:40:21 +03:00
Nekotekina 3cd8891ab8 Re-refactor copy_data_swap_u32 again
Drop AVX2 path for now, since it usually operates on small data.
Rely on automatic SSE vectorization on recent compilers.
Side refactoring on JIT.h to workaround weird conflict issue.
2021-12-26 14:40:21 +03:00
kd-11 a9303acfdf rsx: Fix zclip w scaling 2021-12-26 12:50:31 +03:00
Eladash 6ee9d0f35f sys_rsx: Outlaw mapping sys_vm memory to RSX IO address-space 2021-12-25 02:22:49 +03:00
nastys a0040e6fb1
macOS: Implement texture converter for Metal (2) (#11289)
* macOS: Implement texture converter for Metal (2)

* Fix texture conversion formatting
2021-12-24 15:46:37 +03:00
kd-11 28d7af313b rsx: Remove noisy debug print 2021-12-24 15:13:33 +03:00
kd-11 39ef39aa4e rsx: Exercise caution when testing for overlaps in invalidated sections 2021-12-24 15:13:33 +03:00
kd-11 56dd09f4fe rsx: Handle floating point shenanigans
- If near and far clip are too close together, the API will not distinguish between them leading to out of bounds values
2021-12-22 22:08:53 +03:00
kd-11 de495952fd rsx: Enable fallback for devices without wide integer Z buffers 2021-12-22 22:08:53 +03:00
kd-11 1ce5349199 rsx: Remove zclip hackery
- Calculates precise Z value as requested by the game
- Works properly if the underlying Z format matches the PS3 1:1 but may cause minor problems otherwise
2021-12-22 22:08:53 +03:00
Nekotekina dcd011048d Implement "built_function" utility (runtime-generated assembly)
Similar to build_function_asm, but links without indirection.
Achieved by emitting code directly into a byte array.
2021-12-22 19:27:20 +03:00
Nekotekina 12e3c9e08b Use PAUSE in vk::query_pool_manager::get_query_result 2021-12-21 23:28:09 +03:00
Nekotekina 262ff01619 Use aligned stores in write_index_array_data_to_buffer
Ensure that target buffer is cache line aligned.
Improve stx::make_single to support alignment.
2021-12-21 23:28:09 +03:00
Nekotekina 76ccaf5e6f BufferUtils: refactoring
Optimize CPU capability tests for arch-tuned builds.
Separate streaming and non-streaming utilities.
Rewritten copy_data_swap_u32(_cmp) with AVX2 path.
2021-12-21 23:28:09 +03:00
nastys 47e4a95d8f
Fix remap_vector redefinition on macOS (#11271) 2021-12-21 10:36:09 +01:00
Nekotekina c0bafbc804 TSX: enable same data optimization for PUTLLC 2021-12-19 20:23:01 +03:00
Nekotekina 61c64d1060 TSX: refactoring M
Remove first stage 'optimistic' transactions.
2021-12-19 20:23:01 +03:00
Nekotekina 3e1e1a683c TSX/PPU: fix conditional store regression 2021-12-17 21:48:01 +03:00
Megamouse 18f59d3be8 Input: fix min stick input of keyboard pad handler 2021-12-17 17:21:44 +01:00
Megamouse bf739aa156 Input: implement stick multipliers for keyboard 2021-12-17 17:21:44 +01:00
RipleyTom 43b7d1fe98 Add missing virtual destructors to some base class 2021-12-15 18:05:55 +03:00
Megamouse cc21d1b3cf cellSaveData: prevent some potential crashes due to corrupt files 2021-12-14 20:30:47 +01:00
nastys 08333e0876
macOS moltenVK support and SIGBUS handling (#11252) 2021-12-12 21:35:56 +01:00
Malcolm Jestadt 2f93df480b SPU LLVM: Disable affineqb shufb paths temporarilly 2021-12-10 19:32:10 +03:00
Megamouse 56fe450959 Qt: fix screenshot path creation 2021-12-10 17:27:52 +01:00
clienthax 6f9adbd162 Debug SPRX check 2021-12-10 14:23:26 +01:00
Megamouse f48c535802 cellAudio: Recover XAudio on failed initialization 2021-12-09 01:46:44 +01:00
Megamouse 5f7e5a9844 cellAudio: relax FAudio error handling 2021-12-09 01:46:44 +01:00
Megamouse 3f3b4bc363 cellAudio: recover Cubeb on failed initialization 2021-12-09 01:46:44 +01:00
Megamouse 68466f05b6 cellAudio: move some stuff to cpp 2021-12-09 01:46:44 +01:00
Megamouse e6b4655142 cellAudio: use members instead of config values 2021-12-09 01:46:44 +01:00
xddxd f690d55045 Remove unnecessary define 2021-12-09 01:21:11 +01:00
kd-11 d523f9cc6b rsx: Avoid skipping input mask checks due to static flow control 2021-12-08 23:58:32 +03:00
kd-11 7ca15c60bb rsx: Improve image aspect tests
- Replace old format-based detection with proper aspect test.
  Explicit image aspect has been available for a long time, but older
  code was not updated.
2021-12-08 23:58:32 +03:00
Nekotekina 8abd3e8bb4 PPU LLVM: fix bitcast usage to enable constant folding 2021-12-07 15:35:51 +03:00
Nekotekina 6730dc1dc4 LLVM DSL: print some debug info in get_const_vector<v128> 2021-12-07 13:21:24 +03:00
Nekotekina 6b40d69a8f Introduce coroutine support (util/coro.hpp)
Implement coroutine types `lazy` and `generator` in stx namespace.
Implement fs::list_dir_recursively.
2021-12-07 13:04:10 +03:00
Nekotekina d6420b8803 Put std::hash specialization out of std 2021-12-07 13:04:10 +03:00
Megamouse a4ad0a9468 cellVideoOutConfigure: treat unknown aspect as AUTO 2021-12-06 20:50:57 +01:00
Malcolm Jestadt 0617e9e14b SPU LLVM: Fix vgf2p8affineqb usage
- Reverse the order of the bytes in the selection masks. Previously it was assumed that byte 0 would determine the output of bit 0, but byte 7 determines the output of bit 0.
2021-12-06 12:34:11 +03:00
Nekotekina e3e39e8de3 PPU LLVM: rewrite and optimize saturation bit
Use vector accumulator
2021-12-03 00:14:06 +03:00
Nekotekina 209b14fbac PPU LLVM: inline remaining vector instructions 2021-12-03 00:14:06 +03:00
Nekotekina 04c9d01390 PPU LLVM: modernize most vector instructions
Rewritten VSUM instructions:
VSUMSWS, VSUM2SWS, VSUM4SBS, VSUM4SHS, VSUM4UBS
2021-12-03 00:14:06 +03:00
Nekotekina c9d8e59dbf PPU LLVM: allow to drop setting SAT flag (optimization, module-wide)
Implement ppu_attr::has_mfvscr (partially, module-wide search).
If this instruction isn't found, allow to drop setting SAT flag.
It's based on presumption that only MFVSCR can retrieve SAT flag.
2021-12-03 00:14:06 +03:00
Nekotekina 86b194014b PPU LLVM: rewrite more packing instructions
Rewritten VPKUHUM, VPKUHUS, VPKUWUM, VPKUWUS.
Decoupled saturation test from sat pack pattern.
2021-12-03 00:14:06 +03:00
Nekotekina e7c827f73b PPU LLVM: rewrite some packing instructions
Rewritten VPKSHSS, VPKSHUS, VPKSWSS, VPKSWUS.
Decoupled saturation test from sat pack pattern.
2021-12-03 00:14:06 +03:00
Nekotekina abe498f35c PPU LLVM: modernize some code with new DSL
PPU: rewritten instructions VMHADDSHS, VMHRADDSHS
PPU: added optimized path for VPERM (ra=rb)
2021-12-03 00:14:06 +03:00
DH 49c02854f5 [rsx] reduce size of config structs 2021-12-02 21:36:57 +03:00
DH cccfb89aa0 [Config] Use std::less<> for std::map<...>
Reduces amount of string copies
[Utilities] fmt::replace_all: avoid creation of temporary strings
2021-12-02 21:36:57 +03:00
DH 2981867375 sys_spu_thread: Removed unused field access 2021-12-02 21:36:57 +03:00
DH 56d922999f Fixed debug build compilation errors
const_str_t constructor without arguments shoud be constexpr for usage as default initializer in constexpr functions
2021-12-02 21:36:57 +03:00
kd-11 02832d9623
rsx: Add some sensible fallbacks (#11219)
* rsx: Add some sensible fallbacks

* Update GLPresent.cpp

* Update VKPresent.cpp

* Update rsx_utils.h

* Update rsx_utils.cpp
2021-12-02 16:02:08 +03:00
Eladash 0ab36ef44d
sys_spu: Implement SPU image segment info checks (#11211) 2021-12-02 13:17:10 +03:00
kd-11 9bb46aa944 rsx: Simplify unconstrained aspect ratio conversion
- There is a reason resolutions are defined by only a height variable.
2021-12-01 21:55:53 +01:00
Megamouse 474baca6d8 rsx: default initialize RsxDisplayInfo 2021-12-01 21:55:53 +01:00
Megamouse 88d0b7d135 cellAvconfExt: add some trivial param checks 2021-12-01 21:55:53 +01:00
Megamouse aea1ec2594 avconf: Add const to fxo references 2021-12-01 21:55:53 +01:00
kd-11 22a7b026e7 rsx: Fix image scaling
- Specifically fixes a corner case where double transforms are required.
  Technically this can be made more readable using transformation matrices:
  * M1 = transform_virtual_to_physical()
  * M2 = transform_image_to_virtual()
  * M3 = M1 * M2
  * Result = Input * M3
  But we don't use a CPU-side matrix library and it is not reasonable to do this on the GPU.
2021-12-01 21:55:53 +01:00
Megamouse c8d4a0dcdc VK/GL: honor game's aspect ratio when scaling 2021-12-01 21:55:53 +01:00
Eladash f16949c292
fs::file: always use strict reading mode for large reads (#11206) 2021-12-01 19:09:07 +03:00
Vestral e5005597fe CellAudio fixes 2021-11-29 20:43:00 +01:00
kd-11 38bfefcdfa vk: Fix incorrect mixed transfer modes for mipmapped VTC 2021-11-28 01:44:21 +03:00
kd-11 44fe6f6d39 rsx: Fix sloppy format matching test 2021-11-27 17:47:41 +03:00
RipleyTom 4fe17fcecf
sys_usbd improvements (#11202) 2021-11-27 01:49:35 +00:00
RipleyTom 276ee81da8 Ignore Log subsection for config obsolete check 2021-11-25 19:42:12 +01:00
RipleyTom 5e158bd3f2 Impl sys_usbd_get_device_location 2021-11-25 00:53:00 +01:00
clienthax 2b924175aa
Emulated v406 usio 2021-11-24 21:59:48 +01:00
Vestrel 37a722cc1d
Audio backend improvements
Callback based audio update.
Upgraded common backend interface.
Added Cubeb backend.
Support multiple audio providers.
Dropped pulse, alsa, openal backends.
2021-11-24 19:41:05 +01:00
orbea a84223bdc6 rpcs3: Fix the DATADIR path for AppImage
Even when DATADIR is defined the other paths may still be correct.

Fixes: https://github.com/RPCS3/rpcs3/issues/11195
2021-11-24 19:14:06 +01:00
kd-11 4df1a938b1 Unused var 2021-11-24 16:02:24 +03:00
kd-11 94a3b1cfe8 rsx: Roll back some optimizations
- Just use RGB565 for all blit targets. Avoids really dumb transforms done by GPU hw.
- When X16 is used, all the channels get written to R channel alone. CmdBlit does perform format conversion!
- gl: Force image copy when blit is requested with compatible targets. Avoids format conversion issues.
2021-11-24 16:02:24 +03:00
kd-11 a21c6c4628 rsx: Fix handling of scaling requests for packed formats
- One does not simply interpolate RGB565 components as U16 data!
2021-11-24 16:02:24 +03:00
kd-11 58f0fa3ca5 gl: Enable handling of X16 blit targets 2021-11-24 16:02:24 +03:00
kd-11 97bd8f7bc1 rsx: Update sampler format class when inheriting mipmap slices/sections 2021-11-24 16:02:24 +03:00
clienthax 4c0ef37a5c Stub uvc camera init 2021-11-23 23:41:13 +01:00
AniLeo 1df8f52a9f vk: Remove lavapipe workaround
Current lavapipe version now has support for 
shaderStorageBufferArrayDynamicIndexing
2021-11-23 22:48:46 +01:00
shockdude f9434091c3
sys_usbd: make emulated turntable interrupt transfer as fast as possible
Also add missing mutex
2021-11-23 02:19:36 +00:00
orbea 59f253ba24 cmake: Use GNUInstalldirs 2021-11-22 21:45:55 +01:00
Eladash c52d447381 sys_fs: Place all path-format checks upfront, implement more checks 2021-11-22 21:03:07 +03:00
Eladash 524b065bc8 Debugger: Show PPU reservation data
Asterisk marks the offset of data that had been given to the guest PPU code.
2021-11-22 14:48:34 +03:00
Eladash f7b55ec8d4 lv2: Add missing reservation disowning in lv2_obj::yield 2021-11-22 14:48:34 +03:00
Megamouse e7fc2bfa3b Input: Log path on hid_open_path error 2021-11-22 09:41:12 +01:00
Megamouse 22e3075c64 cellSaveData: always log setList and setBuf
For debugging
2021-11-20 08:43:46 +01:00
Megamouse 09ead539a5 improvise CELL_SAVEDATA_ERRDIALOG_NOREPEAT 2021-11-20 08:43:46 +01:00
Megamouse 5272dd951b Qt: simplify callbacks.resolve_path 2021-11-20 08:43:46 +01:00
Megamouse 7eee9e7b05 overlays: simplify backup icon copy procedure 2021-11-20 08:43:46 +01:00
Eladash e5eb727110 Memory Searcher: Peek full string in log, fix case-insensitive search 2021-11-20 07:57:34 +01:00
Eladash 7352a5a495 GUI: Rename memory string searching tool to "Memory Searcher" 2021-11-20 07:57:34 +01:00
Megamouse de2be90636 Qt: only show prefix for fatal messages
Always messages are supposed to be humanly readable
2021-11-17 22:53:20 +01:00
Artur 9f35c3f52d Properly recognize triggers and axes for evdev pads. 2021-11-17 21:29:24 +01:00
RipleyTom 22910c02a9
Implement sceNpManagerGetPsHandle (#11164) 2021-11-17 18:02:01 +00:00
Megamouse 0f7534c755 VK: fix NVIDIA driverVersion check 2021-11-16 09:31:16 +01:00
Megamouse 4d0330bf82 rsx: fix possible segfault 2021-11-16 09:31:16 +01:00
Megamouse 026efd96b2 cellKbCnvRawCode: use proper constants
and comment out unreachable code
2021-11-16 09:31:16 +01:00
Megamouse f6af5ff13a cellRtcGetDaysInMonth: fix param check 2021-11-16 09:31:16 +01:00
Megamouse 0d7b7585a8 Some typo/warning fixes 2021-11-16 09:31:16 +01:00
Eladash 6283600b84
Qt: Fix log prefix in log_frame 2021-11-16 09:02:43 +01:00
Megamouse f6e04ffdd2 overlays: add stick input to native dialogs 2021-11-16 01:38:33 +01:00
Megamouse 44b42f68fd overlays: add R3, L3 and PS buttons
Unused at the moment
2021-11-16 01:38:33 +01:00
Megamouse 56241838c0 input: add made up CELL_PAD_CTRL_PS enum
And remove useless comment about 0x0 buttons. It's a bitmap, so 0x0 is literally useless.
2021-11-16 01:38:33 +01:00
Megamouse 26475f8f40 cellGem: add comment about hack 2021-11-16 01:38:33 +01:00
Megamouse ff5e31f396 overlays: add system sounds 2021-11-15 23:03:30 +01:00
kd-11 59b1c324a9 rsx: Properly implement immediate mode rendering
- Treat the draw commands as being consumed on-the-fly with ATTR0 as provoking attribute
- Analysing streams sent to RSX and the results implies they are consumed fully inline.
  This only makes sense if a provoking attribute is present. The 'static' register is truly the immediate register for the draw.
2021-11-15 18:14:15 +03:00
kd-11 1f627caa81 rsx: Clear some leaking register state between runs 2021-11-15 18:14:15 +03:00
Megamouse 7dc3a50ddf Fix headless mode 2021-11-14 17:07:18 +01:00
Eladash cfe08de951
Account empty EDAT (#11146)
* Improve sys_fs_open logging
2021-11-14 02:15:27 +03:00
Eladash 48ad959697
sys_event: Fix PPU queue forced uproot of waiters (#11147) 2021-11-13 20:22:54 +03:00
陈俊嘉 05881ffa62
Disable vulkan in Windows build when HAVE_VULKAN is off and other cmake build fixes. (#11118)
* Make WolfSSL build support multi-config generator.
Fix a build error in Windows when using QT's moc.
Disable vulkan in Windows build when HAVE_VULKAN is off.

* add WIN32_LEAN_AND_MEAN definition to VS project.
add HAVE_VULKAN definition to VS project.
Define NTSTATUS in main.cpp.
2021-11-13 16:11:49 +01:00
Megamouse 8b3ed7b599 Qt: fix initial pad settings dialog size and position 2021-11-11 23:06:57 +01:00
Megamouse cbec04cd0f Curl: fix --verbose-curl option 2021-11-11 17:37:22 +01:00
Malcolm Jestadt 3fde455932 SPU LLVM: Optimize branch following ORX
- test the input of ORX directly for zeroes, instead of the result
2021-11-11 12:58:38 +03:00
RipleyTom ba727e13ae Fixes rpcn_client.h func ptr comparison warning 2021-11-11 08:11:14 +01:00
Megamouse 2359ba9aed curl: add verbose logging
and really verbose logging i you use --verbose-curl
2021-11-11 00:36:42 +01:00
RipleyTom b736691bde Special nullptr optParam->cbFunc case fix 2021-11-10 20:03:11 +01:00
RipleyTom 50bf528f3f NP: add signaling_handler wakeup on connect queue 2021-11-10 12:43:45 +01:00
kd-11 7e3eab9915 rsx: Fix texture state propagation between unrelated draw calls
- Older games can load all textures before a draw sequence and then swap shaders for different draws.
- Optimizations in texture state streaming make it so that only referenced data is carried forward.
2021-11-09 12:39:49 +03:00
RipleyTom dc0793b731 NP: Implement sceNpMatching2DeleteServerContext 2021-11-08 13:10:40 +03:00
RipleyTom c194804fec NP: Implement sceNpBasicGetFriendListEntry 2021-11-08 13:10:40 +03:00
RipleyTom d41e405420 NP: Cache Manager + improvements 2021-11-08 13:10:40 +03:00
RipleyTom 516cb959cb rpcn: new allocator + refactoring of np_handler 2021-11-08 13:10:40 +03:00
RipleyTom 704e74b904 rpcn: extra changes 2021-11-08 13:10:40 +03:00
Nick Renieris b70f08d850 The Velocity Improvements: RoomData/RoomMemberData commands & fixes
modules/np2: Correct some SceNpMaching2 ptr type endianness
np/handler: Use STL .contains() method
Ignore USECRYPTO & USESIGNATURE in recvfrom/sendto
Implement RoomData/RoomMemberData commands
2021-11-08 13:10:40 +03:00
Malcolm Jestadt 7573d7289b SPU LLVM: Hook up 128 bit spu verification
- Also fix FMA enablement for sapphirerapids
2021-11-06 21:12:12 +03:00
Megamouse f9abe40494 Qt: fix initial TSX selection 2021-11-06 13:47:43 +01:00
Megamouse 88bb26afb4 vk: make upscaler dynamic
The config option was marked as dynamic, but was never actually changed ingame
2021-11-06 01:02:54 +01:00
Megamouse dac0baac0d Qt: improve fsr tooltip area 2021-11-06 01:02:54 +01:00
kd-11 f7eacf70ec rsx: Restore shader disassembler to working state 2021-11-05 23:55:07 +03:00
Megamouse 067b35217a Qt: Consider TSX-FA in settings dialog 2021-11-04 23:34:10 +01:00
Megamouse af3ef02ca0 fix npDrmIsAvailable 2021-11-04 21:41:07 +01:00
Eladash c49ebba648 Fixes of PS3 filesystem EDAT/SDAT handling
* Return EFSSPEIFIC if encountered corrupted EDAT or an unmatched key in sys_fs_open and sys_fs_read.
* Fix validate_dev_klic() for license-free EDAT.
* Fix EDATADecrypter::ReadData() for when size + pos > file_size but pos < file_size.
* Try to save up to 16 decryption keys. Educated guess based on NPDRM file descriptors count llimit.
* Return LICENCE_NOT_FOUND if needed RAP file is not found in sceNpDrmIsAvailable.
* Check additional sys_fs_open errors for sceNpDrmOpen. (EISDIR, ENOTMOUNTED)
2021-11-04 21:32:15 +03:00
kd-11 933d96af5f vk: Do not clip region using renderpass renderarea, we have scissor for that 2021-11-04 21:05:15 +03:00
Whatcookie bf6044fced
SPU/SYSINFO: Disable TSX by default for TSX-FA cpus (#11105)
- Also detect the new RTM_ALWAYS_ABORT bit in cpuid
- This new bit indicates that RTM is disabled in the microcode
- On cpus with RTM_ALWAYS_ABORT TSX can be renabled by writing 0x4 to the msr 0x0000010F
2021-11-04 16:44:25 +00:00
Ani 1a0392bf15
CPUTranslator: Enable FMA for alderlake CPUs (#11106) 2021-11-03 19:31:46 +00:00
kd-11 ad00c44231 rsx: Configure pitch correctly for pitch-zero textures (1D) 2021-11-03 16:58:30 +03:00
Nekotekina 69f321a471 LLVM 13 2021-11-02 20:11:08 +03:00
Malcolm Jestadt 37383f4217 SPU ASMJIT: Disable 512 wide spu verification
- Apparantly this crashes every game.
2021-11-01 20:04:26 +03:00
Eladash b84e95d768 rsx: Fixate time stamp of VBLANK 2021-11-01 10:04:53 +01:00
Eladash 4369fb234e rsx: Fix typo in VBLANK processing regarding emulation pause 2021-11-01 10:04:53 +01:00
Eladash 58040d478a rsx: Implement NTSC fixup mode, improve VBLANK accuracy 2021-11-01 10:04:53 +01:00
AniLeo 46a54f5474 rpcs3_version: Bump to 0.0.19 2021-11-01 03:05:52 +00:00
Eladash e31173e33e
GUI: Always show thread name for fatal messages (#11090) 2021-10-31 13:24:41 +01:00
kd-11 5b0ef401f7 rsx: Fix sampling in X when 0 pitch is given
- A pitch of 0 still allows 1-dimensional addressing.
2021-10-31 14:32:42 +03:00
Megamouse 1650dd1c7d overlays: fix graph offset error after applying new config
I already had this figured out last time but forgot the dynamic config use case.
2021-10-31 10:14:08 +01:00
Megamouse 84f123041a overlays: fix offset of right edge oriented graphs when detail level is none 2021-10-31 10:14:08 +01:00
Megamouse f258ae795c Add more logging for Emulator Stop events
This should give us more insight into the conditions that cause emulation stops.
This may also help find false issue reports.
2021-10-31 04:12:47 +01:00
Megamouse 33e80a733d overlays: fix trophy notification sound in queue 2021-10-30 22:44:30 +02:00
Megamouse 20331a77ce Qt: multithreaded trophy icon refresh 2021-10-30 22:44:30 +02:00
Megamouse 4e6b37ca04 Qt: fix missing vfs mount 2021-10-30 22:44:30 +02:00
Eladash 646ad3eed4 SPU DisAsm: Force decimal point insertion for constant floats 2021-10-30 21:33:06 +02:00
Eladash edcc2a9e0d PS3 String Searcher: Implement instruction searching in embedded SPU images 2021-10-30 21:33:06 +02:00
Megamouse 0e20acdf55 overlays: add optional sound to trophy popup 2021-10-30 17:16:45 +02:00
Megamouse f262e77fbd overlays: add fade to trophy notification pop-ups 2021-10-30 17:16:45 +02:00
Megamouse 244aa6879a overlays: fix trophy notification pop-up locations 2021-10-30 17:16:45 +02:00
Megamouse e9fe90244f Emu: Move VFS mount to Init 2021-10-29 19:46:11 +02:00
Eladash a90376a7c4 SPU DisAsm: Print SPU floats 2021-10-29 19:15:21 +02:00
Megamouse aff7d8a994 Qt: fix QSvg deployment 2021-10-28 23:54:56 +02:00
Megamouse 7f4b6b1ae7 Qt: Use svg instead of png 2021-10-28 21:01:27 +02:00
kd-11 78bcb0fd53 rsx: Do not reuse/destroy sections that have references held
- Avoids a situation where blit-dst and blit-src have overlapping ranges. Uploading blit-dst destroys blit-src and vice-versa.
  This is not the end of the world, but blit-src should be kept around until the operation is completed to avoid stale references!
2021-10-27 12:30:43 +03:00
kd-11 c733e794de gl: Use real image dimensions when decoding compressed textures
- Image size is already correctly calculated using block dimensions
2021-10-27 12:30:43 +03:00
kd-11 99fc90648b gl: Disable shader interpreter if hardware does not support bindless textures 2021-10-27 12:30:43 +03:00
kd-11 2587545eed gl: Fix decoding of wide, swizzled textures
- Handle pre-byteswapped data (swizzled usually) in the compute-safe path
2021-10-27 12:30:43 +03:00
capriots ac300c7356 Correct channel order
Documentation says the order is Front L, Front R, Center, LFE, Surround L, Surround R, Rear L, Rear R
2021-10-27 10:24:02 +03:00
Megamouse 2af2db2cbf Lower some log spam
These functions probably aren't perfect, but they spam a lot of unnecessary log messages.
2021-10-27 00:25:27 +02:00
Megamouse d5ca9dacb6 Qt: add sound-effect to screenshots 2021-10-26 09:18:37 +02:00
Megamouse 5e436984a2 cellCamera: fix qt handler crash if object is destroyed from another thread 2021-10-24 15:01:43 +02:00
Megamouse be972f04ac cellGem: hook up camera 2021-10-24 15:01:43 +02:00
illusion0001 00c87a8fc9 Screenshot: add Title ID to filename 2021-10-24 13:12:01 +02:00
Megamouse e51656e070 Qt: Add camera settings dialog 2021-10-24 11:32:35 +02:00
Megamouse 9dc6d920ce cellCamera: don't flip qt image vertically by default 2021-10-24 11:32:35 +02:00
Megamouse e67cf68321 cellCamera: fix compilation on linux 2021-10-24 11:32:35 +02:00
Megamouse 60d35e17ac cellCamera: support all formats and set RGB32 if possible 2021-10-24 11:32:35 +02:00
Megamouse d161d8c545 cellCamera: add some more logging and fix some warnings 2021-10-24 11:32:35 +02:00
Megamouse f66b29f043 cellCamera: Implement dynamic camera selection 2021-10-24 11:32:35 +02:00
Megamouse 77f6db2543 cellCamera: fix some typos (fixes camera attachment in Kung Fu Live) 2021-10-24 11:32:35 +02:00
Megamouse 5eabe9aa33 cellCamera: silence some log errors 2021-10-24 11:32:35 +02:00
Megamouse 76c1681173 cellCamera: fix regular YUV422 conversion of qt camera handler 2021-10-24 11:32:35 +02:00
Megamouse 67ba381dfe cellCamera: fix qt camera handler format 2021-10-24 11:32:35 +02:00
Megamouse 9a6285942b cellCamera: fix buffer allocation 2021-10-24 11:32:35 +02:00
Megamouse d93f16fe87 cellCamera: log qt camera handler status strings 2021-10-24 11:32:35 +02:00
Megamouse 214c1ccc7e cellCamera: move camera handler interaction to seperate functions 2021-10-24 11:32:35 +02:00
Megamouse d1ac92fd99 cellCamera: improve image conversion speed 2021-10-24 11:32:35 +02:00