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