Megamouse
210999b874
perf_overlay: fix guide line locations
...
The guide lines falsely started from the top and not from the bottom, as all datapoints do.
2021-05-29 08:17:30 +02:00
Megamouse
046d029e89
try to fix pad interception
2021-05-29 07:43:09 +02:00
Eladash
7d89938624
cellPad: do not use recusrive mutex
2021-05-28 20:25:16 +03:00
Eladash
6ff9aab2ca
Fix cpu_thread::check_state() cpu_flag::temp support
2021-05-28 20:25:16 +03:00
Eladash
5f47730fc0
Fix reservations handling in logs
...
Remove reservation cb.
2021-05-28 20:25:16 +03:00
kd-11
9e62e98f79
rsx: Minor refactoring ( #10358 )
...
- Fix some misnomers.
- Allow finer grained control over texture section creation routines.
2021-05-27 23:44:07 +01:00
kd-11
763828837b
vk: Forcefully unmap DMA blocks before destroying them ( #10359 )
...
- While the vulkan spec explicitly allows destroying mapped blocks, GPUOpen vma_alloc does not.
- Strangely, this issue does not afflict linux users, only windows.
2021-05-27 23:03:46 +01:00
kd-11
f9d9d12f11
vk: Fix slow bo upload + copy when using RADV
...
- This reverts commit dbcf1b5a03bfef18f404aa6827515af319abd744.
- Avoid unmapping buffers used for GPU upload/download. It is very slow
on some platforms.
2021-05-27 22:49:13 +03:00
kd-11
56f7359da4
vk: Workaround for slow bo transfer (pinned<->VRAM) when using RADV
...
- perf shows extremely high number of cycles wasted in memmove glibc method
2021-05-27 01:27:15 +03:00
Megamouse
6fed80333c
perf_overlays: only calculate metrics on update
...
This should give a significant performance boost
2021-05-26 23:26:12 +02:00
Megamouse
befd38d9ae
perf_overlays: only compile dirty graphs
...
This should give a small performance boost
2021-05-26 23:26:12 +02:00
Megamouse
98b668b3a8
perf_overlays: add avg and 1p high/low
2021-05-26 23:26:12 +02:00
Eladash
f103004aa0
sys_prx/overlay: Fix disambiguator of module names opened by FD ( #10340 )
...
Don't append zero offset.
2021-05-26 23:38:17 +03:00
polar
177933e212
Refactor hidapi submodule ( #10346 )
...
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2021-05-26 22:03:53 +03:00
Megamouse
83d3658ef0
scale debug overlay based on current dpi settings
...
Depending on the dpi settings, the debug overlay was almost unreadable.
I also took the liberty to refactor some redundant client size calls and to add some margin to the left of the debug text.
2021-05-26 20:31:29 +02:00
Eladash
44f0ca08e2
Simplify PPU exit
2021-05-25 22:47:23 +03:00
kd-11
338dc62474
vk: Fixup on linux + RADV combo ( #10341 )
2021-05-25 20:40:53 +01:00
kd-11
a736350859
rsx/vk: Use backend configuration to track options that can be modified on a per-device basis
2021-05-25 20:54:17 +03:00
kd-11
156b092dc9
vk: Lock passthrough DMA behind the async streaming option
...
- Without async streaming this option can introduce artifacts.
The correct fix for it is to use async streaming which allows the GPU to process texture data in parallel with rendering.
Without streaming enabled the GPU can sometimes pull stale data via DMA when rendering and find the CPU has modified it.
2021-05-25 20:54:17 +03:00
kd-11
122bb4d829
vk: Avoid repeated chip_class lookup by using generic global function
2021-05-25 20:54:17 +03:00
kd-11
7508949ca8
vk: Add workarounds to disable incompatible options
2021-05-25 20:54:17 +03:00
Megamouse
ac59073071
perf_overlay: update interval config update
2021-05-25 11:04:45 +03:00
Nekotekina
7311c161f6
vm_native: fix Linux/Posix sparse file check
...
Fix fast path condition (xnor is not ==, facepalm).
Increase probe size.
Should fix #10334
Closes #10335
Co-authored-by: Jan Beich <jbeich@FreeBSD.org>
2021-05-25 09:55:43 +03:00
Eladash
9ba3e6d3f7
sys_mmapper: Fix IPC-enabled instances memory consumption
2021-05-24 23:16:06 +03:00
Nekotekina
5db38c0127
vm_native: improve sparse file check (Linux/BSD)
...
Use lseek(FIND_DATA) to check for sparse file support.
2021-05-24 18:21:52 +03:00
Nekotekina
191cb92300
vm_native: improve sparse file implementation (Win32)
...
Fix sparse attribute set/check, improve logic.
Implement actual check of file data.
Ask to restart RPCS3 first time (Win7 bug).
2021-05-24 18:21:52 +03:00
Nekotekina
2491aad6f2
types.hpp: implement min_v<>, max_v<>, SignedInt, UnsignedInt, FPInt concepts
...
Restrict smax to only work with signed values for consistency.
Cleanup <climits> includes.
Cleanup <limits> includes.
2021-05-23 19:43:51 +03:00
Nekotekina
4b239a0b87
types.hpp: rewrite _u16-_u64 suffixes
...
_u48 is unused and gone, blends into _u64.
2021-05-23 07:33:54 +03:00
Nekotekina
2768727e2f
types.hpp: replace custom std::bit_cast
...
Remove memcpy version.
Use builtin instead.
2021-05-23 07:33:19 +03:00
Eladash
309759b725
kernel-explorer: Save self mem-container ID and use it
2021-05-23 05:37:37 +03:00
Nekotekina
160b131de3
types.hpp: implement smin, smax, amin, amax
...
Rewritten the following global utility constants:
`umax` returns max number, restricted to unsigned.
`smax` returns max signed number, restricted to integrals.
`smin` returns min signed number, restricted to signed.
`amin` returns smin or zero, less restricted.
`amax` returns smax or umax, less restricted.
Fix operators == and <=> for synthesized rel-ops.
2021-05-22 12:10:57 +03:00
Nekotekina
613777afde
vm_native: try to workaround another bug (Win32)
...
Resize sparse file gradually.
2021-05-22 08:16:54 +03:00
Eladash
dcfd29c2d9
kernel-explorer: Implement PPU scheduler state information
2021-05-21 18:12:36 +02:00
Eladash
a7d0c4fb1e
kernel-explorer: Fix horrible performance
2021-05-21 16:37:29 +02:00
Eladash
3a2b9f83ec
TROPUSR: Optimization
2021-05-21 16:43:34 +03:00
Eladash
48870f3e8b
TROPUSR: Loader Improvements
...
* Replace invalid TROPUSR.DAT with empty new ones. (+report an error)
* Fix return code of Load whenever TROPUSR.DAT hadn't existed before.
* Add header magic test.
* sceNpTrophyRegisterContext will abort if TROPUSR.DAT generation failed.
2021-05-21 16:43:34 +03:00
David Carlier
1f93fc902b
crypto light refactoring.
...
using volatile f/p guaranting assembly will generate call* instruction on memset for secure buffer zeroing. usage in sha1 api as well.
2021-05-21 16:34:38 +03:00
Nekotekina
c646476ca8
logs.hpp: another fixup for RPCS3.log
...
Don't print channel names for initial messages.
2021-05-21 00:41:37 +03:00
Nekotekina
de94f6c2f6
logs.hpp: fix fatal typo
2021-05-20 19:10:51 +03:00
Eladash
f0c4aa6777
Fix bugs due to clocks scale setting being dynamic
2021-05-20 13:38:36 +02:00
Eladash
0811d2d527
Fix bug of sys_rsx_context_attribute
...
Mistake of reversing.
2021-05-20 09:25:51 +03:00
Eladash
3abf14beef
Update sys_rsx_context_attribute
2021-05-20 09:25:51 +03:00
Eladash
638f20c80f
Improve get_current_cpu_thread()
2021-05-20 09:25:51 +03:00
Nekotekina
04cac6cd33
logs.hpp: refactoring (logs::message)
...
Make .error/.warning/... callable objects which can be pointed to.
Make .always() more hard to access.
Memory layout optimizations.
2021-05-20 01:08:32 +03:00
Nekotekina
1d0f6eebdc
Improve error_code (new formatting constructor)
...
Minor cleanup in formatting utilities.
2021-05-19 22:41:16 +03:00
Nekotekina
16620f6835
vm_native: sparse file fixup (Win32)
...
Clear file if it occupies blocks.
Makes it more fool-proof and fixes possible bug.
2021-05-19 22:41:16 +03:00
Nekotekina
4b11a4256e
Add supporters
2021-05-19 22:41:16 +03:00
Megamouse
1dc00ccedd
edat: Remove redundant logging
2021-05-19 21:09:18 +02:00
Megamouse
7832acbceb
Minor change in msg_dialog_frame
...
This shouldn't have any impact
2021-05-19 20:24:06 +02:00
Lctrs
0042f4e16e
metainfo: move away from deprecated appdata
2021-05-19 19:55:58 +03:00
Lctrs
ffc9211ce2
metainfo: make license explicit
2021-05-19 19:55:58 +03:00
Nekotekina
8217840acc
Simplify error_code class
...
Remove "not an error" detection trait. Use fixed CellNotAnError class.
Use constructor overload to disable reporting it.
2021-05-19 00:48:45 +03:00
Nekotekina
6e497ae372
vm: disable sparse files on win7
2021-05-18 13:31:46 +03:00
Malcolm Jestadt
52780e65e7
SPU LLVM: Optimize branching
...
- Detect a pattern where vpmovmskb and a check against the sign bit can be used instead of checking against zero
2021-05-17 16:59:20 +03:00
Eladash
57cd4ff3c6
Move HLE table address to FXO ( #10284 )
2021-05-17 14:22:27 +03:00
Eladash
2e28e2d293
lv2: Fix overflows of periodic timers
2021-05-17 13:17:45 +03:00
kd-11
a84cf030bb
Fixup
...
FreeBSD + concepts = fail
2021-05-15 23:51:12 +03:00
kd-11
af05ebe428
Update cmakelists
2021-05-15 23:51:12 +03:00
kd-11
c5a06dab0a
rsx: Refactor program texture state handling to be persistent across shader swaps
2021-05-15 23:51:12 +03:00
polar
11bace8804
BUILD: Move buildfiles & improved prop includes ( #10251 )
...
* moved buildfiles to subdirectory
* fix msvc build
* fix cmake build
2021-05-15 20:20:12 +02:00
Eladash
7a9a46e093
kernel-explorer: Implement SPU ports/interrupt tags information
2021-05-15 09:00:12 +03:00
Eladash
8bd58b1ad4
Remove lv2_event_queue::check(weak_ptr)
2021-05-15 00:31:14 +03:00
Eladash
c681395fb2
sys_interrupt: weak_ptr -> shared_ptr
2021-05-15 00:31:14 +03:00
Eladash
33580e0aa1
sys_timer: weak_ptr -> shared_ptr
2021-05-15 00:31:14 +03:00
Eladash
47436bd774
sys_spu: weak_ptr -> shared_ptr
2021-05-15 00:31:14 +03:00
Eladash
a992a5fba9
cellAudio: weak_ptr -> shared_ptr
2021-05-15 00:31:14 +03:00
Eladash
94e2f464e3
CPU Profiler: weak_ptr -> shared_ptr
2021-05-15 00:31:14 +03:00
Eladash
56471f4ad4
SPU: Optimize SPU ports/queues
2021-05-15 00:31:14 +03:00
Eladash
cacb852a1e
Emulation stopping bugfix
2021-05-14 15:35:07 +03:00
Nekotekina
6dca588370
SPU LLVM: improve MPYH instruction
...
Rewritten to use 16-bit multiplication, as in SPU ASMJIT.
2021-05-13 23:16:53 +03:00
Nekotekina
2a26bc6668
Fix page mapping rights to file mapping
2021-05-13 13:49:24 +03:00
Paul
4e12e70929
Add Intel's Rocket Lake 11th gen cpu. ( #10205 )
...
This does nothing but may be required later.
2021-05-13 11:34:37 +03:00
Nekotekina
f0ad20a250
Implement const_str_t<> helper
2021-05-13 10:23:33 +03:00
Nekotekina
8ae727ca04
lv2_obj::create: fix pessimizing move
...
Could have been preventing copy elision.
2021-05-13 10:23:33 +03:00
Nekotekina
126141cdce
vm_native: improve sparse file handling
...
Don't specify O_TRUNC every time.
Add portable support test (Linux/Unix).
Use PAGE_WRITECOPY (Windows).
2021-05-13 10:23:33 +03:00
octopoulo
fe17c83020
reverted comment
2021-05-12 15:28:30 +03:00
octopoulo
b8928d230a
gl: Intel GPU shader fix
2021-05-12 15:28:30 +03:00
kd-11
675c9a7945
vk: Ensure MSAA surfaces are in RW state before attempting to transfer data.
2021-05-12 13:04:09 +03:00
kd-11
1a73b0a0da
rsx: Fix transfer barriers not triggering resolve target initialization
2021-05-12 12:32:24 +03:00
Nekotekina
0bd64a0e72
Don't fatal on sparse file initialization failure
...
Also try two different locations (Win32).
2021-05-10 00:39:28 +03:00
Eladash
acded1e08a
rsx: Move sys_rsx info to rsx::thread ( #10258 )
2021-05-09 19:16:14 +01:00
kd-11
a4f4b81e6b
vk: Add some more debugging utils for RDC captures
...
- Labels make life so much easier
2021-05-09 13:07:47 +03:00
kd-11
0b18ec8208
vk: Allow flipping without wait
2021-05-09 13:07:47 +03:00
kd-11
e3944bc67f
rsx: Handle transfer_read differently from transfer_write
...
- Transfer writes are expected to clobber surface cache contents. Do NOT reload from CPU memory for writes.
- TODO: During transfer write to surface cache objects, lock memory if it was unlocked to avoid silly problems.
2021-05-09 13:07:47 +03:00
kd-11
b085284c55
rsx: Ignore write-to-self via blit engine.
2021-05-09 13:07:47 +03:00
Eladash
31b55e0030
event queue: Structure size efficiency
2021-05-09 10:58:14 +03:00
Eladash
7a4918e4a4
kernel explorer: Implement interrupt handler/service information
2021-05-09 10:58:14 +03:00
Eladash
1e1880893a
sys_interrupt: Save ID of self tag/handler
2021-05-09 10:58:14 +03:00
Eladash
363cc60c82
sys_event: Save ID of self event queue
2021-05-09 10:58:14 +03:00
David Carlier
b09970f159
couple of warning build fixes
2021-05-09 09:25:40 +02:00
Megamouse
52930a7597
VS: fix some filters
2021-05-07 22:51:08 +02:00
Megamouse
96fa531566
Qt: allow renaming of the current user
...
Since the dialog cannot be opened ingame, there should be no reason to disable the rename user option.
2021-05-07 22:51:08 +02:00
Eladash
64997662d2
LV2: Fixup for IPC
...
* Fix typo in lv2_obj::create.
* Always save ipc_key as 0 for non-shared object creations, regardless of thbe value set by creation attribute.
* Show IPC key of shared memory (sys_mmapper) memory objects in kernel explorer.
2021-05-07 14:58:22 +03:00
Eladash
900ebf6583
sys_event: Typo fix ( #10246 )
2021-05-07 09:34:25 +01:00
polar
ce94a4ecea
BUILD: Refactor libpng submodule ( #10238 )
...
* relocate libpng files
* fix cmake build
* fix MSVC build
2021-05-07 10:07:42 +02:00
Eladash
7b6482c01d
LV2: Improve IPC support ( #10206 )
...
* Remove custom event queue's IPC management of favour of universal LV2 approach.
* Move ipc_manager to FXO.
* Fix ipc_manager internal storage memory leak: deallocate entry when IPC object destroyed.
* Rewrite lv2_obj::create to be simpler (remove many duplicated code).
* Always execute lv2_obj::create under both IPC and IDM mutexes at once (not in non-atomic single-steps). Fixing potential case where concurrency can cause IDM to contain 2 or more different objects with the same IPC key with SYS_SYNC_NOT_CARE (instead of the same object).
* Do not rely on smart ptr reference count to tell if the object exists. Use similar approach as event queues as it makes error checkings accurate.
* Optimize lv2_event_port by using std::shared_ptr for queue which wasn't allowed before.
2021-05-07 09:58:30 +03:00
David CARLIER
f56ecb6d3f
stblib: disable another unsupported clang warning ( #10244 )
2021-05-07 01:26:21 +01:00
Nekotekina
e24ada37bf
fs: implement fs::get_temp_dir() (Win32)
...
Trying to workaround issues with sparse files (#10231 )
2021-05-05 19:38:36 +03:00
Nekotekina
546b52200b
vm: disable locking main/video/stack for now (TODO)
2021-05-04 19:18:57 +03:00
Nekotekina
327c000c82
Implement s128 type (based on u128)
2021-05-04 18:02:52 +03:00
Nekotekina
1b0b2fe21e
vm: add "hook" memory (32G)
...
Implement overcommit emulation for shm.
2021-05-04 18:02:52 +03:00
Nekotekina
e327d47169
vm_native: add cow flag to map functions
...
CoW is copy-on-write mapping type.
2021-05-04 09:53:19 +03:00
p01arst0rm
35ee550171
changed discord-rpc to discordRPC
2021-05-04 01:27:41 +02:00
p01arst0rm
2447fdb90d
relocated stblib files
2021-05-04 01:27:41 +02:00
p01arst0rm
c6c5faa95c
buildsystem refactoring cleanup
2021-05-03 08:01:25 +02:00
polar
df39bac449
BUILD: Refactor asmjit submodule ( #10230 )
...
* relocated asmjit files
* fix cmake build
* fix MSVC build
2021-05-02 19:59:38 +02:00
HerrHulaHoop
c3bf9bd4a0
Correct mismatched licenses in Crypto
...
5 files in Crypto were licensed under GPL-3.0-only which is
incompatible with our project's GPL-2.0-only license. They have now
been corrected to use GPL-2.0-or-later.
2021-05-02 13:39:50 +03:00
polar
b09b0bc43b
BUILD: Refactor curl submodule ( #10228 )
...
* relocate curl files
* fix cmake build
* fix MSVC build
2021-05-01 21:56:56 +02:00
Eladash
0224c7a9eb
SPU TG: Simplify state of saved SPU image data
...
Save only entry points instead of sys_spu_image structure.
2021-05-01 19:43:00 +03:00
p01arst0rm
ca0d38d19d
fix relative links to common_default* props
2021-05-01 18:38:42 +02:00
polar
b62ac7a046
BUILD: Refactor 7zlib ( #10222 )
...
* relocate 7z files
* fix MSVC build
* fix cmake build
2021-05-01 18:07:28 +02:00
Eladash
daa53b77cf
Simplify named_thread construction
2021-05-01 18:08:03 +03:00
Ani
b8477a470f
rpcs3_version: Bump to 0.0.16
2021-04-30 21:42:14 +01:00
Ani
37331d8ead
stblib: Ignore new 3rdparty warnings
2021-04-30 17:07:05 +01:00
Megamouse
71d58e3a67
rsx: remove unused tile functions
2021-04-30 08:23:16 +02:00
Megamouse
37425d6fcd
GL: Remove unused copy functions
2021-04-30 08:23:16 +02:00
Megamouse
1f295bba5b
VK: ReSharper warning fixes
2021-04-30 08:23:16 +02:00
Megamouse
a50be7a912
GL: resharper findings (too lazy for const functions)
2021-04-30 08:23:16 +02:00
Megamouse
d331ff3193
overlays: implement text_align::right
2021-04-30 00:30:26 +02:00
Megamouse
035a187c42
user-overlays: add sanity check for enter button
2021-04-30 00:30:26 +02:00
Megamouse
3c37036f7a
save-overlays: add entry size info
2021-04-30 00:30:26 +02:00
Megamouse
14b6d6291b
save-overlays: add localization
2021-04-30 00:30:26 +02:00
Megamouse
5720a32bc5
save-overlays: change list entry contents.
...
There's no need to tell the user that the entry is for game xy, they are already playing that game.
On a real PS3 only the subtitle and the date are displayed.
2021-04-30 00:30:26 +02:00
Megamouse
11f57f259c
cellSaveData: keep focus after confirmation cancel
...
It was very annoying to be thrown to beginning of the list after cancelling the confirmation.
2021-04-30 00:30:26 +02:00
Nekotekina
3fc6375ec5
Use consteval (experimental)
2021-04-29 23:16:43 +03:00
Nekotekina
f8e05f8e3c
Remove redundant operators !=
2021-04-29 22:57:40 +03:00
polar
dece8a69f6
BUILD: Refactor libusb submodule ( #10169 )
...
* relocate module files
* fix cmake errors
* moved & updated libusb MSVC build file
2021-04-29 16:50:18 +01:00
Nekotekina
5724d2d4c7
Simplify umax
...
Add operator less and conversion operator.
2021-04-29 12:21:12 +03:00
Nekotekina
b1736b6411
Simplify utils::umulh64 (MSVC)
2021-04-29 09:45:57 +03:00
Nekotekina
703ec474f5
Fixup for sys_time_get_timezone (3rd path)
...
Also simplify Linux path a bit.
2021-04-29 00:07:22 +03:00
kd-11
1d9dd8d29d
vk: Add support for tagging objects to ease debugging
...
- Makes use of VK_EXT_debug_utils
2021-04-28 16:53:02 +03:00
kd-11
8b0e1d6c03
rsx: Make renderdoc compatibility mode a general option
2021-04-28 16:53:02 +03:00
Megamouse
f1a9f6263e
Rename Rockband to Rock Band
2021-04-27 23:33:46 +02:00
Nekotekina
a049c6fd6b
Implement sys_time_get_timezone syscall
...
Try to get system timezone automatically.
Attempt to address #10195 .
2021-04-27 22:21:58 +03:00
kd-11
9609767c51
vk: Refactor render target code
2021-04-26 00:33:05 +03:00
Nekotekina
86a8e0716f
Test alterable aggregates via overriding be_t
...
Checking how it might look like without introducing too many changes.
Alteration of its behaviour as a "template template" argument allows:
- normal access
- easier aggregate inspection
- memory access interception
2021-04-25 19:00:16 +03:00
Nekotekina
4d9a167f56
u128: add multiplication support (for MSVC)
2021-04-25 18:17:38 +03:00
Nekotekina
b704cc8375
shared_ptr.hpp: implement make_single_value(), make_shared_value()
...
A function that constructs single_ptr from its argument.
Type can be deduced from the argument (unlike make_single).
2021-04-25 18:17:38 +03:00
Nekotekina
e34c956196
shared_ptr.hpp: add invoke operator
2021-04-25 18:17:38 +03:00
clienthax
7197dd751a
Fcntl e0000025 ( #10172 )
...
Co-authored-by: Eladash <elad3356p@gmail.com>
2021-04-24 21:43:09 +03:00
David Carlier
0b9e4ffe54
Mac OS build update and simplification, recent releases of macOS has clock_gettime support.
2021-04-24 12:55:21 +03:00
Megamouse
486ba6121d
Qt: fix window position of update dialog
2021-04-24 11:46:51 +02:00
Megamouse
1015c126d7
fix formatting (somehow broken by copy pasta)
2021-04-24 11:46:51 +02:00
Megamouse
1caf81811a
Move unspecific Emulator code out of System.cpp
2021-04-24 11:21:22 +03:00
kd-11
4c2a11b6d0
vk: Fix broken FBO swizzle for depth textures. WDB was basically broken for these.
2021-04-24 00:19:50 +03:00
Megamouse
8fd3b26308
sys: more constants
2021-04-23 22:46:15 +02:00
Megamouse
617d21fa84
sys_prx: more constants
2021-04-23 22:02:52 +02:00
Megamouse
4a88ffe250
Fix typo causing unreachable code
2021-04-23 22:02:52 +02:00
Megamouse
41b68ef353
some more constants
2021-04-23 22:02:52 +02:00
Eladash
72c85744b9
kernel-explorer: Show bound queue to port information
...
Show its IPC key or ID, depends on the queue's type.
2021-04-23 21:34:05 +03:00
Eladash
c7b5bbd467
Fix emulation restart
2021-04-23 20:59:02 +03:00
David Carlier
082bbc7336
Following up on MacOS build fix.
...
Specialisation of llvm_value_t to allow build with LLVM this time.
2021-04-23 15:20:40 +03:00
Megamouse
087dccd194
Implement most of cellUserInfo
2021-04-23 05:50:19 +03:00
Nekotekina
67649d7976
SPU LLVM: restore lost comment
2021-04-21 13:33:44 +03:00
Malcolm Jestadt
6247969ede
SPU LLVM: Absolute final fixes for icelake shufb paths
...
- The constant mask was accessing bits in reverse order of what was expected
2021-04-21 11:00:02 +03:00
Malcolm Jestadt
efd38fa940
SPU LLVM: Improve byteswap elimination
...
- Use the data before it has been swapped rather than relying on a second byteswap to cancel out the first
2021-04-20 23:24:21 +03:00
Malcolm Jestadt
551472220e
SPU LLVM: Remove icelake shufb paths for now
2021-04-20 23:24:21 +03:00
p01arst0rm
01703b1350
moved cmake_modules to project root
2021-04-20 21:38:47 +03:00
p01arst0rm
e9d785475e
removed redundant cmake version check
2021-04-20 21:38:47 +03:00
p01arst0rm
bcfae17219
unified missmatched indentation in CMake files
2021-04-20 21:38:47 +03:00
dio-gh
ddea45160b
GUI: take out some unwise shortcuts
...
Removes the ability to stop or restart emulation via keyboard shortcuts
while the game is running. Prevents loss of work that can happen due to
the current bindings conflicting with very-widely established shortcuts.
Ctrl+C and Ctrl+E will now be unbound, and Ctrl+R will now mean Resume.
Strings that mention these keybinds were adjusted accordingly.
2021-04-20 19:46:47 +03:00
Malcolm Jestadt
53f13a9721
SPU LLVM: Final fixup for icelake shufb paths
...
- The cause of the problems was due to the constant mask for gf2p9affineqb being used as the first argument, instead of the second argument.
2021-04-20 13:07:24 +03:00
Megamouse
3e33f064bf
overlays: hotfix for dialog interaction
...
Turns out there was an undocumented reason for this.
Nobody warned me that "It's a trap!".
I wonder how this hasn't summoned a shitstorm yet.
2021-04-20 00:42:11 +02:00
Megamouse
aa0afc9a4e
Input: avoid mouse events when unused
2021-04-20 00:06:23 +02:00
Eladash
a0d1cf26d0
Reduce precompilation failure log level (error -> notice)
2021-04-19 23:18:31 +03:00
Megamouse
01d14aed80
fix null chars in hostname log message
2021-04-19 21:54:27 +02:00
Megamouse
3c4c830e20
Qt: Speed up Log Viewer
2021-04-19 21:25:19 +02:00
Nekotekina
0c9c481cee
Use requires syntax in more places
...
Change style in some places.
2021-04-19 16:51:40 +03:00
Nekotekina
7dae376646
Implement fill_array() utility
2021-04-19 12:33:32 +03:00
Nekotekina
ccb89bd76a
MSVC: disable throwing new
2021-04-19 12:33:32 +03:00
Megamouse
b2317543c8
Qt: Fix initial gs_frame position on multi-monitor
2021-04-19 10:44:48 +02:00
p01arst0rm
b812ef2771
removed space between and its opening parentheses
2021-04-19 08:59:28 +03:00
David Carlier
7618e7f3fb
FreeBSD/clang update proposal.
...
silence few build warnings, VKDMA: disable Intel chipset for host buffer as it requires root privilege.
2021-04-18 19:56:21 +03:00
David Carlier
b6732fbae9
MacOs build fix proposal.
...
Made on Big Sur, removing few unnecessary old specifics.
Build with LLVM homebrew.
2021-04-18 17:18:09 +03:00
clienthax
68fa377d13
Add dev_flash2+3
2021-04-18 14:49:29 +03:00
Nekotekina
7a9561b966
vm_native: document some unmap_critical behaviour (posix)
2021-04-18 13:13:15 +03:00
Nekotekina
c061991c43
vm_native: supply only one madvise flag at a time
2021-04-18 13:13:15 +03:00
Megamouse
bdac1d9bfd
Qt: fix type mismatch crash of game grid items
2021-04-18 09:58:54 +02:00
David Carlier
266c4209c4
VM: FreeBSD c_madv_no_dump/dump constants support.
2021-04-17 20:47:36 +03:00
Nekotekina
fb26da1cb0
bs_t<>: create BitSetEnum concept
...
Try concepts instead of SFINAE.
2021-04-17 19:23:19 +03:00
Nekotekina
d623720f4d
Fix condition for -Wno-attributes (regression)
2021-04-17 16:26:41 +03:00
Nekotekina
9d4fcbf946
bs_t<>: fix/cleanup some operators
2021-04-17 15:54:33 +03:00
p01arst0rm
896db3806d
replaced CMAKE_COMPILER_IS_GNUCXX with CMAKE_CXX_COMPILER_ID
2021-04-17 15:54:27 +03:00
Megamouse
691b986e36
keyboard pads: release all keys on FocusOut event
2021-04-17 14:03:50 +02:00
Megamouse
5416f60643
basic keyboard: release all keys on FocusOut event
2021-04-17 14:03:50 +02:00
Eladash
67e2e154fa
Replace simple_type with std::common_type
2021-04-17 10:27:55 +03:00
Megamouse
330dea181a
Qt: unify some movie hover code and fix cellLeave
2021-04-16 23:18:13 +02:00
Megamouse
7bc673002f
overlays: fix dirty state of message dialog
2021-04-16 23:18:13 +02:00
Megamouse
ae8d1a3a60
Qt: smoother scrolling in savedata manager
2021-04-16 21:26:24 +02:00
Megamouse
27975e9dfd
Qt: remove uncritical deprecated notes and titles
...
This also fixes a savedata notes bug.
The detail section notes were always taken from the deprecated settings.
2021-04-16 21:26:24 +02:00
Megamouse
bff938ccf5
Qt: optimize game list repaint with new logic
...
We now pass a shared pointer to the icon items, so there is no need to trigger a full refresh of the list anymore.
Sadly this doesn't apply to the game grid.
2021-04-16 11:21:04 +02:00
Megamouse
53f317e076
Qt: use gifs as icons on hover if available.
2021-04-16 11:21:04 +02:00
Malcolm Jestadt
0a7df9d02e
SPU LLVM: add AVX-512 SPU verification
...
- This is hidden behind a new setting, as some cpus may downclock agressively when executing 512 wide instructions
2021-04-16 09:35:26 +03:00
Nekotekina
408ffd3d2c
fxo: add debug name to the typeinfo
2021-04-15 20:01:29 +03:00
Nekotekina
a211895e28
shared_ptr.hpp: use for fs::virtual_device
...
Add new constructors for single_ptr and shared_ptr.
Change virtual device prefix format.
2021-04-15 17:26:47 +03:00
Nekotekina
19763f8973
Remove unnecessary default:breaks
2021-04-15 15:23:59 +03:00
Desterly
99d6f9c7a9
Skylander - Traptanium portal cleanup
...
- Remove "Status" query responses from reset request
- Add additional request types for newer portal
2021-04-15 12:10:22 +02:00
Desterly
63e4ac80bd
Skylander - Change portal version
...
Switch emulation to the Traptanium portal. This portal is universal
and works with all games.
2021-04-15 12:10:22 +02:00
polar
24983ea329
removed whitespace
...
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2021-04-15 11:37:35 +02:00
p01arst0rm
6cab5b5591
removed extra perentheses pair
2021-04-15 11:37:35 +02:00
p01arst0rm
c9d2aed286
small collection of fixes
2021-04-15 11:05:15 +03:00
Eladash
a16cc3ac8a
lv2: Remove flags from IPC-supported objects
2021-04-15 10:31:40 +03:00
TotalCaesar659
ba1699a831
Fix typo
2021-04-14 20:01:18 +02:00
Megamouse
20c69a0e3e
overlays: make auto-repeat buttons configurable
...
and properly reset the auto-repeat timer whenever a new button was pressed
2021-04-13 20:57:05 +02:00
Megamouse
bdc5ed094b
overlays: implement OSK password mode
2021-04-13 20:57:05 +02:00
Megamouse
088d22675b
overlays: fix osk placeholder
2021-04-13 20:57:05 +02:00
Megamouse
fc9b3c13e6
misc: fix old some style casts and redundancies
2021-04-13 20:57:05 +02:00
kd-11
14a64e2529
rsx: Handle rare rounding issue where position.w is very close to zero
2021-04-13 21:26:23 +03:00
Megamouse
f5415fb4ac
overlays: dynamically change dialog background
2021-04-13 19:13:56 +02:00
Megamouse
20076ed57e
Qt: Properly disable perfoverlay datapoint sliders
2021-04-13 19:13:56 +02:00
kd-11
8d1fc18941
vk: Fix mip level packed pitch calculation
2021-04-13 00:14:16 +03:00
kd-11
06dc99ab85
rsx: Fix decompression of RB_RG textures.
...
- Removes several subtle hacks that hid the real issue.
A compressed texture has more than one texel per 'block'.
2021-04-11 21:36:36 +03:00
p01arst0rm
4048b1e515
added inline suggestion to settings_location to prevent duplicate includes
2021-04-11 18:38:02 +03:00
Nekotekina
ccb46df905
Minor fixups (removed unnecessary code)
2021-04-11 16:36:02 +03:00
Megamouse
a16d8ba3ea
More random changes
2021-04-11 14:01:51 +03:00
Eladash
56d34e0e80
Enforce backslash at the end of emulated drives paths
2021-04-10 23:51:49 +03:00
Eladash
5ca6381624
Implement "PPU LLVM Precompilation" control setting
2021-04-10 18:06:46 +03:00
Megamouse
7a105333dc
Qt: fix vfs dir remove button enabled state
2021-04-10 15:18:16 +02:00
Megamouse
332eb5fbd6
Log firmware after Emu was initialized
2021-04-10 15:18:16 +02:00
Megamouse
5b0dac797c
Remove deprecated user management code
2021-04-10 15:18:16 +02:00
Eladash
86ddc00bb1
Suggest adding RPCS3 to anti-virus whitelist on firmware/PKG installation failure
2021-04-10 10:37:20 +02:00
Nekotekina
3107f37864
Fix psf::load error for error::stream
2021-04-10 00:43:08 +03:00
Megamouse
17f5fec538
sceNp: fix rap file regression ( #10084 )
2021-04-09 21:37:57 +01:00
Megamouse
03b76b4606
Emu: some cleanup
2021-04-09 21:03:49 +02:00
Eladash
a3e8a61547
PSF: Fix string_view optimization
...
Avoid redundant copies of std::string.
2021-04-09 20:58:30 +03:00
Eladash
a8d5a8734a
Loader/cellGame: Do not crash on invalid PSF files
2021-04-09 20:58:30 +03:00
Nekotekina
10bbb7fa1f
Fix some warnings (deprecate enum arithmetics)
2021-04-09 10:26:13 +03:00
Nekotekina
8c5f2b249c
shared_ptr.hpp: further fixes
...
Improved is_same_ptr() trait (added third "maybe" category).
Fallback to pseudo-runtime check in certain cases (if "maybe").
Fix single_ptr moving assignment operator.
2021-04-09 10:26:13 +03:00
Nekotekina
332c512eed
shared_ptr.hpp: minor optimization (GCC hotfix)
...
Use thread_local for dummy objects (doesn't work on MSVC).
Couldn't find better way to remove fake static objects completely.
In a sense that they don't appear in object files.
2021-04-09 10:26:13 +03:00
Megamouse
d10584ac6c
DRM: Search all user directories for rap files
2021-04-09 08:47:59 +02:00
Eladash
d2b761b7de
Log error about HG games booted outside of /dev_hdd0
2021-04-08 23:57:00 +03:00
Eladash
49c5ce30cc
Emulation: Fix boot path resolving
...
* Fix /dev_flash executables path arg. (/host_root is wrong for it)
* Fix usage of /host_root for homebrew applications when it is not mounted, use /app_home.
* Fix path source detection. (don't get fooled by path slashes repetitions, symlinks, '.', ".." and ('\' on Windows))
* Unescape tail of /dev_hdd0 paths.
2021-04-08 23:57:00 +03:00
Nekotekina
95725bf7fc
Add -Werror=missing-noreturn (GCC, clang)
...
May be useful to diagnose functions which fail assertions unconditionally.
2021-04-08 10:29:47 +03:00
Nekotekina
94c62b1eec
shared_ptr.hpp: improve is_same_ptr<> trait
...
Don't always return true on MSVC.
2021-04-08 10:29:47 +03:00
Megamouse
02febd3f65
Workaround: Skip progress_dialog during gameplay
2021-04-06 21:39:34 +03:00
Megamouse
497fbb17a8
progress_dialog fixes
2021-04-06 21:39:34 +03:00
Nick Renieris
396c129d41
vm: Flag names (refactoring)
2021-04-06 13:07:54 +03:00
Eladash
4a9be0a8d2
core: Move IDM to FXO
2021-04-04 17:29:32 +03:00
Megamouse
bf1756448e
overlays: fix taskbar progress reset
2021-04-04 13:38:10 +03:00
Nekotekina
ed8f60431f
Fixup for progress dialog closing logic
...
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2021-04-03 23:25:02 +03:00
Nekotekina
6f1f75bc8f
Minor progress dialog refactoring
...
Add rsx::overlays::progress_dialog class (identical to message_dialog).
Don't use Emu.CallAfter() for native dialogs.
Make g_progr_ptotal waitable.
2021-04-03 22:38:04 +03:00
Nekotekina
963d150e93
Fix some -Weffc++ warnings (part 2)
2021-04-03 21:54:15 +03:00
Nekotekina
1ddeef71c6
Fix some typos
2021-04-03 21:54:15 +03:00
Megamouse
b7eefeac8b
hotfix: skip progr dialogs if msg dialogs are open
2021-04-03 20:37:40 +02:00
Eladash
e57f36fc5b
Quick sys_sm_get_params implementation
2021-04-03 17:23:40 +03:00
Eladash
32116086b3
Implement _sys_prx_register_module loading imports/exports functionality
2021-04-03 17:23:40 +03:00
Eladash
878da3b474
Implement get_cellos_appname()
...
Identifying vsh.self and possibly other operating system executables in the future.
2021-04-03 17:23:40 +03:00
Eladash
73320d4180
Output all fatal log messages to Console/debugger as well
2021-04-03 08:47:58 +02:00
Eladash
a1d31f640a
Set userland firmware SPRX directory as the default PS3 decryption tool path
2021-04-02 20:54:33 +02:00
Megamouse
9c7230e79f
cli: set user-id per command line
2021-04-02 11:50:28 +02:00
Megamouse
98687d474b
Move system info to extra line
2021-04-02 07:14:23 +02:00
Eladash
7b57b8f2ca
debugger: Implement ability to pause entire emulation on breakpoint
2021-04-01 19:11:55 +03:00
Eladash
55c98bfaef
Fix #9879 and fix firmware confirmation dialog when auto-start is disabled
2021-04-01 14:09:02 +03:00
Nekotekina
e9a45a2f45
Implement scoped_progress_dialog
...
Create Emu/system_progress.hpp
Remove atomic g_progr_show
2021-03-31 23:40:09 +02:00
Nekotekina
2212a131ef
Fix some -Weffc++ warnings (part 1)
2021-03-31 11:27:09 +03:00
Nekotekina
deacf05769
Enable -Wdeprecated-copy
...
Some classes violated the Rule of 3(5) in their special operator definitions.
2021-03-31 11:27:09 +03:00
Megamouse
870224cde0
Emu/overlay: ingame native overlay PPU compilation
2021-03-31 09:38:30 +02:00
Megamouse
e557c962fb
Qt: gs_frame position updates
2021-03-30 19:09:01 +02:00
Eladash
1e71deb0db
rsx: Compile shaders when CELL is not running
2021-03-30 11:13:47 +03:00
Eladash
dea1d01de2
Fix Emulator::Stop race with IDM
...
Newly created threads' state could have not been flagged with exit.
2021-03-30 10:21:54 +03:00
Eladash
e9bea1c742
Emu: Do not obey auto-exit setting after creating firmware cache
2021-03-30 10:21:54 +03:00
Eladash
d51bb8b1cc
Fix Emulator::Pause race with IDM
2021-03-30 10:21:54 +03:00
Eladash
aad5283786
Fix Emulator::IsPaused()
2021-03-30 10:21:54 +03:00
Megamouse
66df38957b
add AppIcon to fatal_error_dialog
2021-03-29 23:32:15 +02:00
xddxd
7cbafd603a
Get rid of non-LLVM build configurations ( #10030 )
...
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2021-03-29 22:45:48 +03:00
dio-gh
3e48c9744b
upgrade icons to a modern design
...
Credits go to @DAGINATSUKO, and @hcorion for the svg version.
2021-03-29 22:24:40 +03:00
Megamouse
a982280400
Qt: Drop int for QT_SCALE_FACTOR_ROUNDING_POLICY
2021-03-29 20:37:33 +02:00
Megamouse
d62983e1a2
Qt: Properly set QT_SCALE_FACTOR_ROUNDING_POLICY
2021-03-29 20:37:33 +02:00
Megamouse
90ac24e524
Qt: set find_dialog "next" button to default
2021-03-29 19:19:24 +02:00
Megamouse
0b2ba98238
Qt: add option to hide the log prefix
2021-03-29 19:19:24 +02:00
xddxd
b978aa6dca
Wording changes and tooltip fix for unsupported CPUs
2021-03-26 18:56:16 +01:00
Megamouse
6565855005
Qt: clean global cfg before adding custom cfgs
2021-03-26 09:08:30 +01:00
Megamouse
9f80a55652
Qt: don't show updater if booted with cli arg
2021-03-25 23:39:42 +01:00
xddxd
9d895e6b15
Scheduler overhaul
2021-03-26 00:29:44 +03:00
Megamouse
a7acb84b8b
Qt: Remove unused GUI entries when saving a config
2021-03-25 20:34:00 +01:00
Megamouse
8d54453981
Qt: Fix debugger breakpoint deletion
2021-03-24 20:47:51 +01:00
Megamouse
452fb59c74
Qt: select target item in debugger list
...
This should make it easier to spot the item
2021-03-24 20:47:51 +01:00
Megamouse
ba45daff35
Qt: some cleanup in debugger
2021-03-24 20:47:51 +01:00
Nekotekina
b3fb6d7d18
Add and fix -Wredundant-decls (GCC)
2021-03-23 22:48:57 +03:00
Nekotekina
5dc3467337
vm: fix reservation_update notification
...
Rare function.
2021-03-23 21:09:37 +03:00
Nekotekina
729757b1dd
atomic.hpp: allow raw notify_all by pointer
2021-03-23 20:58:42 +03:00
Nekotekina
393f9d329d
atomic.cpp: allow non-standard sizes in atomic wait (>16)
2021-03-23 20:52:56 +03:00
Nekotekina
820390b7ed
atomic.cpp: remove raw_notify and simplify internal logic
...
Also permit zero size in waiters.
2021-03-23 20:19:10 +03:00
Nekotekina
e0790f758e
Add some warnings (GCC, clang)
2021-03-23 16:40:44 +03:00
Eladash
2f333424a6
Improve ELF/Trophy loader's error checking
2021-03-23 16:05:23 +03:00
Eladash
a67b347966
debugger: Fix SPU memory viewing ( #10007 )
...
* debugger: Fix SPU memory viewing
* Fix terminal recovery from page faults (hack allocation)
2021-03-23 13:33:07 +03:00
Megamouse
dedf09017a
VS: try to unbreak debug builds
2021-03-23 09:11:04 +01:00
Megamouse
cd07ab5b5f
VS: fix release build
2021-03-23 00:46:26 +01:00
Megamouse
6892cb1c7e
Qt: prepare for removal of deprecated GUI settings
...
If you remove a custom name and already had a deprecated name before, you'll never get rid of it.
This applies to all of the deprecated settings.
2021-03-22 23:47:11 +01:00
Megamouse
b518a9a338
VS: fix release Optimization
2021-03-22 20:19:36 +01:00
Megamouse
54d078f379
VS: fix AdditionalIncludeDirectories
2021-03-22 20:19:36 +01:00
Eladash
b0a0533a4f
Memory string searcher improvements
...
* Search the entire PS3 4GB address space instead of a small area of memory which is meant mostly for PRX/SELF memory aka vm::main segment. This limitation rendered string searcher nearly useless.
* Implement hexadecimal byte-string, hexadecimal integer, float and double value search formats.
* Multi-thread searching.
* Optimize searching algorithm vastly.
* Fix crash on empty string, report an error.
* Implement case-insensitive string search.
2021-03-22 18:37:26 +03:00
Megamouse
399f20ae54
Qt: Fix debugger step shortcuts
2021-03-22 10:44:30 +01:00
Megamouse
554ba9d6a6
Qt: Allow package installation through cli
...
Adds --installpkg cli option
2021-03-21 18:44:11 +01:00
Megamouse
2c05e9719d
cfg: simplify get_nodes
2021-03-20 20:54:26 +03:00
Megamouse
cb9e7358d2
cfg: log unused config entries
2021-03-20 20:54:26 +03:00
Megamouse
70c98fff19
Make cli fw installation more foolproof
2021-03-20 11:57:04 +01:00
Romain TISSERAND
b5698ee101
Add command-line option to install firmware
2021-03-20 11:57:04 +01:00
Nekotekina
379138af27
Fix NtSetTimerResolution in no-gui mode (Win32)
...
Add dummy persistent timer with 10ms period.
Replace QTimer invocation with Emu.CallAfter().
This way, headless and no-gui modes should be affected by it.
2021-03-19 22:26:48 +03:00
Eladash
1864419561
Fix SPU mapped memory page size
2021-03-19 22:25:08 +03:00
Eladash
a9ddb1d3b3
GUI: Implement full extraction of PUP
...
* Implement full extraction of PS3UPDAT.PUP.
* Implement TAR extraction via GUI.
* Use VFS to implement missing PS3 filesystem characters escaping.
* Use VFS to error on illegal paths. (illegal paths such as malware pointing to "/../../..and so on../C:/Windows")
2021-03-19 17:51:09 +01:00
Eladash
314670a347
Improve firmware installation error handling
...
* Add new error types and descriptions.
* Do not crash on missing 0x100 and 0x300 PUP file entries.
* Report an error on missing PUP package inner files.
* Fix overflow in file-size against header check.
* Move all header errors to pup_object class.
* Move verbose error descriptions to pup_object class.
* Minor optimizations.
2021-03-19 17:51:09 +01:00
Eladash
ad49c54531
Fix race in render_creator ( #9939 )
2021-03-18 12:09:42 +03:00
Megamouse
43ac33c2b4
cellSaveDataEnableOverlay
2021-03-18 11:11:34 +03:00
Nekotekina
ee4009e123
Add supporters
2021-03-17 23:53:10 +03:00
Nekotekina
2decf1ecda
Rename and move g_tls_current_cpu_thread inside cpu_thread
...
Don't declare extern inside get_current_cpu_thread().
Possible workaround for gcc-11.
2021-03-17 23:49:48 +03:00
Eladash
1d7fbd6a9a
Fix sceNpTrophyGet(Trophy/Game)Icon
2021-03-17 22:31:57 +03:00
Eladash
1213708b72
Replace some log errors ( #9980 )
2021-03-17 17:19:35 +03:00
Nekotekina
8fcebebae3
Implement lv2_mp_flag::cache
...
Identify /dev_hdd1 without unsafe path comparison.
2021-03-16 19:37:03 +03:00
Nekotekina
f801dc6558
Save all 8 syscall_args
2021-03-16 19:33:37 +03:00
Eladash
8716ac554f
Fix sys_raw_spu_destroy
2021-03-16 19:31:52 +03:00
Eladash
d7b4753007
Make gamedata installation atomic as real PS3
2021-03-16 19:31:52 +03:00
Eladash
a9b0d25c01
PPU Debugger: Fixup for syscall arguments ( #9932 )
2021-03-16 16:20:45 +03:00
shockdude
6a14849381
sys_usbd: DJ Hero Turntable Emulation ( #9965 )
...
* Initial Turntable Emulation
2021-03-14 23:48:50 +03:00
Megamouse
f93dbb8f49
Qt: dont scale small icons, deal with size instead
2021-03-14 19:56:11 +01:00
Megamouse
f83b19cecf
Qt: Fix wide game icons (weird copy pasta error)
2021-03-14 19:56:11 +01:00
Megamouse
1e09be19f5
Qt: Fix PaintedPixmap crash if icon is null
2021-03-14 19:56:11 +01:00
Megamouse
c1de0bc28c
workaround for clang compilation
2021-03-14 16:46:16 +01:00
Megamouse
1a5a0f5eca
overlays: Fix aspect ratio of custom bakground images
2021-03-14 16:46:16 +01:00
Megamouse
8b0cd60be9
Qt: Fix game icon canvas size
2021-03-14 16:46:16 +01:00
Megamouse
2239a52e9b
Qt: Import Custom Shader Loading Icons
...
and refactor icon import
2021-03-14 16:46:16 +01:00
kd-11
c9214ce6c0
vk: Disable async streaming by default
2021-03-14 16:39:55 +03:00
Nekotekina
bb9b5e6aff
Enable -Wtautological-compare
2021-03-13 23:01:37 +03:00
Nekotekina
0327ecc5c1
Enable -Wduplicated-cond (GCC)
2021-03-13 18:46:59 +03:00
Nekotekina
ccdea1c4ad
Enable -Wduplicated-branches (GCC)
2021-03-13 18:03:08 +03:00
Nekotekina
c22e1e71f0
Continue fixing strict aliasing warnings
2021-03-13 18:02:37 +03:00
Eladash
aff63028d4
SCE Decryption: Detect illegal RAP files
2021-03-13 11:51:40 +01:00
Eladash
7a7b168af3
GUI: Atomic RAP file installation
2021-03-13 11:51:40 +01:00
Eladash
bdf6a1c70e
GUI: Handle all PUP files in drag-and-drop
2021-03-13 11:51:40 +01:00
Eladash
d1e07434a1
GUI: Handle uppercase RAP file extension
2021-03-13 11:51:40 +01:00
Megamouse
c0d823f1d8
Qt: Fix square custom icons
2021-03-13 10:19:39 +01:00
Megamouse
8d0947f07f
Qt: Option for Custom Icons
2021-03-13 10:19:39 +01:00
Megamouse
161d8ef47a
Qt: Center Custom Icons
2021-03-13 10:19:39 +01:00
Megamouse
8c139206d7
Qt: Import Custom Icons
2021-03-13 10:19:39 +01:00
jtscott
e3a7fddddf
Resolve minor typo 'verion'
2021-03-13 01:16:01 +01:00
Eladash
923ba6f3bb
Fix sysutil_send_system_cmd at Emu.Stop()
2021-03-12 21:01:48 +03:00
Eladash
729cd9284e
debugger: Fix PPU threads pausing
2021-03-12 13:01:12 +03:00
kd-11
140c5bfc3e
Add asynchronous streaming to the GUI and auto-enable it
...
- Hopefully not many users are on very weak GPUs
2021-03-12 02:27:05 +03:00
kd-11
a5f0faefc3
vk: Check for uninitialized target before going into any scaling op
2021-03-12 02:27:05 +03:00
kd-11
608f8de347
vk: Solve GPU hang/reset due to waiting on events that are never signaled
...
- TODO: Some refactoring may be required to pair the primary and secondary CB and avoid such blunders
2021-03-12 02:27:05 +03:00
kd-11
3e8a00d264
Basic fixups
2021-03-12 02:27:05 +03:00
kd-11
7d5a72c9e0
vk: Add options to system configuration
2021-03-12 02:27:05 +03:00
kd-11
48d0f80a86
vk: Add an alternate async queue scheduler
...
- This version violates spec but does not rely on CPU threads to keep the GPU from hanging. It's ironically much safer to use.
2021-03-12 02:27:05 +03:00
kd-11
bd6c187fcd
vk: Tune event polling for higher throughput
2021-03-12 02:27:05 +03:00
kd-11
585837a3f0
vk: Support new fxo usage pattern
2021-03-12 02:27:05 +03:00
kd-11
b4e821c28d
vk: Flip on async texture uploads
2021-03-12 02:27:05 +03:00
kd-11
589ac1c5d4
vk: Optimization - avoid touching the mutex at all if possible even when there is no contention
2021-03-12 02:27:05 +03:00
kd-11
c9e8b87c60
vk: Properly clean up async scheduler
2021-03-12 02:27:05 +03:00
kd-11
41f5158247
vk: Sync main pipe with async jobs if any
2021-03-12 02:27:05 +03:00
kd-11
d2993474fb
vk: Lazy-initialize image resource on first use when owned by a separate queue
2021-03-12 02:27:05 +03:00
kd-11
77e312fb99
vk: Add the async task scheduler
2021-03-12 02:27:05 +03:00
Eladash
cd6ef2958b
Add information about unnamed/main threads in logs and fatal dialog
...
* If thread is unnamed, keep log name empty for main thread, otherwise print thread id. In fatal dialog, main thread can be handled differently (with special remark that it's main thread).
* Always print thread id in fatal dialog, regardless of thread type.
Co-authored-by: Nekotekina <nekotekina@gmail.com>
2021-03-11 22:55:06 +03:00
Megamouse
40f3adc45f
Overlays: Implement individual pulse
2021-03-11 20:48:12 +01:00
Eladash
cfa2d4aaa8
Loader: Log FNID of imported/exported functions
2021-03-11 15:23:58 +03:00
arabek
bdefeaf6f9
Use maybe_unused macro for chip var
...
Var chip is only used in the WIN32 ifdef block - use maybe_unused to silence the compiler warning about unused variable.
2021-03-11 14:33:04 +03:00
Eladash
0958c10f88
Improve TAR loader ( #9908 )
...
* Fix header magic test.
* Rewrite code to not use so many filesystem calls.
* Add many more error checks.
* Add missing NUL filetype.
* octalToDecimal(header.size) has been fixed to use fixed 12 characters range instead of endless string.
* Add many optimizations.
* Fix possible signed overflows with int, use the unisgned u64 type instead which allows for greater files as well.
* Log errors.
2021-03-11 02:26:39 +03:00
Nekotekina
4adf412049
Fix std::bit_cast misuse
2021-03-10 16:11:30 +03:00
Nekotekina
03332c340d
Implement utils::bless (pointer cast)
...
Tries to workaround strict aliasing troubles.
Don't confuse with std::bless which works differently.
2021-03-10 16:02:00 +03:00
Eladash
63ecb56b51
PPU interpreter hotfix
2021-03-10 13:41:13 +03:00
Megamouse
cbd895a29c
Move code to cpp ( #9938 )
...
* GL: move GLOverlays code to cpp
* GL: move GLCompute code to cpp
* VK: move VKOverlays code to cpp
* VK: move VKCompute code to cpp
2021-03-10 00:58:08 +01:00
Nekotekina
9cbe77904d
Revert changes in BufferUtils.cpp
...
Should fix #9933
2021-03-09 19:19:24 +03:00
Nekotekina
19b5b47b26
Add -Wnull-dereference (commented out)
2021-03-09 15:54:04 +03:00
Eladash
52a0b38379
Workaround segfaults in Vulkan enumeration thread ( #9935 )
...
* Workaround segfaults in Vulkan enumeration thread
2021-03-09 13:50:58 +01:00
Nekotekina
a4fdbf0a88
Enable -Wstrict-aliasing=1 (GCC)
...
Fixed partially.
2021-03-09 03:10:15 +03:00
Nekotekina
3990e2d3e6
Add -Wclobbered and -Wcast-function-type (no effect)
2021-03-09 03:10:15 +03:00
Nekotekina
53af2dbb3f
Add/fix warning -Wignored-qualifiers (GCC/clang)
...
Fix simple_array::const_iterator as a part of it.
2021-03-09 03:09:50 +03:00
Nekotekina
5bdd1cf837
Remove some redundant code
...
Potential fix for future warnings.
2021-03-09 03:09:50 +03:00
Megamouse
1a3c01154a
make from_hdd0_game check lowercase
2021-03-08 22:58:19 +03:00
xddxd
df338f0552
Move sys_crashdump to it's own file and make it a module itself
2021-03-08 22:57:35 +03:00
Malcolm Jestadt
e5d0e035d0
SPU LLVM: Rearange FM instruction for better performance
...
- Doesn't eliminate any instructions, but allows for better out of order execution.
2021-03-08 15:48:36 +03:00
xddxd
6d91a9fe6f
Possible workaround for mobile Kepler chips
2021-03-08 15:46:03 +03:00
Megamouse
935e398930
patch_manager: expand first search results
2021-03-08 12:05:00 +01:00
Eladash
2afc7cbaaa
GUI: Implement MSELF extraction tool ( #9909 )
...
* MSELF: fix overflow
* GUI: Implement MSELF extraction tool
* VS: fix mself files in vcxproj
* fix
* Update mself.cpp
* fixed
2021-03-07 17:59:37 +01:00
Megamouse
1b5cf118e7
Input/Qt: implement XInput battery level
2021-03-07 11:48:19 +01:00
Megamouse
a3a4c0a906
overlays: don't count initial garbage values.
...
This might also shave off some microseconds.
2021-03-07 00:52:11 +01:00
Megamouse
3ae7debc17
Qt: Do not allow updates during emulation
2021-03-07 01:56:25 +03:00
Megamouse
dab53f4e41
Cleanup Emu before the update reboot
2021-03-07 01:56:25 +03:00
Megamouse
9da7910fc9
Fix auto updates. Don't pass exe as arg0 to execl
2021-03-07 01:56:25 +03:00
Nekotekina
3609eb25c9
Implement thread_ctrl::is_main()
2021-03-06 23:10:31 +03:00
Nekotekina
ded828dfc9
sysinfo.cpp: Implement utils::main_tid (main thread id)
...
Careful.
2021-03-06 23:10:31 +03:00
Nekotekina
87af905018
Enable -Wunused-parameter
2021-03-06 18:07:08 +03:00
Megamouse
7205a93751
add some log messages for debugging
2021-03-06 18:06:21 +03:00
GitArUs
f8097a428c
Allow games to list all savedata ( #9547 )
...
* cellSaveData - allow games to list all savedata, not only those they own.
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2021-03-06 16:01:04 +03:00
Eladash
228988ca2b
Fix utils::get_firmware_version()
...
* Do not crash on invalid file contents.
* Do not crash on unexpected file.open() error.
2021-03-06 14:53:40 +03:00
Megamouse
d2b0b019ec
DualSense: Fix initial ingame LED update
2021-03-06 11:15:54 +01:00
Eladash
a5d74c5e96
GUI: Improve missing firmware handling
...
* Install PS3UPDAT.PUP at the spot when booting games whenever firmware is missing. The option to boot games without firmware is still supported when all firmware SPRX are HLEd in firmware settings.
* Pop-up a confirmation dialog in firmware installation if firmware is already installed.
2021-03-06 10:34:49 +01:00
Megamouse
3e7e077fad
DS3/DS4: fix battery LED update
2021-03-06 02:07:02 +01:00
Megamouse
dbb03ae2d7
dualsense: implement lightbar pulse (low battery)
2021-03-06 02:07:02 +01:00
Megamouse
06d2c5357b
dualsense: fix LED updates
2021-03-06 02:07:02 +01:00
Megamouse
c8e7530e37
dualsense: get hardware and firmware version
2021-03-06 02:07:02 +01:00
Megamouse
cdffaa1598
dualsense: implement battery level
2021-03-06 02:07:02 +01:00
Megamouse
b836d2497d
dualsense: minor cleanup
2021-03-06 02:07:02 +01:00
Megamouse
bdd94f053c
Qt: reset battery progress bar when not supported.
2021-03-06 02:07:02 +01:00
Megamouse
f88c3ae417
Qt: fix settings_dialog layout. Add stretches.
2021-03-05 14:46:52 +03:00
Megamouse
b09ac19e61
VS 16.9.0 compilation workaround
2021-03-05 14:46:52 +03:00
Timothy Redaelli
826dc7d5a6
Fix linking with system curl
2021-03-04 12:22:19 +03:00
Timothy Redaelli
fa5a2b6a85
SPUThread.cpp: remove "__attribute__((always_inline))"
...
cmp_rdata and mov_rdata are using __attribute__((always_inline)),
without inline, that is not supported on current g++ (see RPCS3#1546).
Moreover __attribute__((always_inline)) is a noop if used without inline so
just remove it.
A proper fix is to move the 2 functions in an header file as static
(with FORCE_INLINE) so it can be correctly inlined by the compiler.
2021-03-04 12:17:27 +03:00
Nekotekina
e6a3b59229
endian.hpp: simplify be_t/le_t constructors
2021-03-03 17:37:51 +03:00
RipleyTom
0eb0b1e1c9
Add some GT6 devices to whitelist
2021-03-03 17:30:16 +03:00
kd-11
1becd2f788
vk: Remove redundant double barrier
...
- Luckily it was not too harmful in single queue submissions
2021-03-03 13:17:04 +03:00
Megamouse
7c0b93f815
perf overlay: Don't allow 0 or 1 datapoint count
...
Doesn't render anyway
2021-03-03 00:33:46 +01:00
Megamouse
fa852c7dbe
perf overlay: add missing graph vertex
...
And fix potential division by 0
2021-03-03 00:33:46 +01:00
Megamouse
73ca2119ed
perf overlay: add datapoint settings to GUI
2021-03-03 00:33:46 +01:00
Megamouse
86dbb859b7
perf overlay: add datapoint count config settings
2021-03-03 00:33:46 +01:00
Megamouse
e1e370999e
perf overlays: fix dynamic font resize of graphs
2021-03-03 00:33:46 +01:00
Megamouse
038c708a0a
perf overlays: add detail level none (hides FPS)
2021-03-03 00:33:46 +01:00
Nekotekina
c71bc25090
PPU: remove artificial 0x20000000 barrier for debug stats
...
Change it to 0xE0000000 (SPU demarcation line)
2021-03-02 21:58:49 +03:00
Nekotekina
52fe86b56c
fixed_typemap.hpp: make it a bit fool-proof
...
Require objects to be non-copyable (move is still allowed).
2021-03-02 21:58:49 +03:00
Eladash
004ebfdaee
SPU debugger: Implement MFC journal
...
* Allow to dump up to 1820 commands with up 128 bytes of data each, using key D with the debugger.
2021-03-02 21:57:51 +03:00
Eladash
d0edd44a69
Atomic trophy status updates
2021-03-02 19:19:27 +03:00
Nekotekina
ea5e837bd6
fixed_typemap.hpp: return reference
2021-03-02 16:08:14 +03:00
Nekotekina
bbf52f3cea
named_thread: fix bugs in std::forward usage
...
Fix few misused threads and other bugs.
2021-03-02 16:08:14 +03:00
Nekotekina
d788b12a8e
fixed_typemap.hpp: reduce indirection
...
Backported some changes from auto_typemap.hpp
Implemented methods init(), reset(), clear()
Disabled recreation support.
2021-03-02 16:08:14 +03:00
Nekotekina
8a9320c4ef
auto_typemap.hpp: reduce indirection
...
Implement is_init() method.
Implement optional Size template arg for further optimization.
2021-03-02 16:08:14 +03:00
Nekotekina
5cc9bd7702
typeindices.hpp: upgrade with size and align info
...
This allows contiguous allocation (as in an aggregate).
2021-03-02 16:08:14 +03:00
Nekotekina
aa7e2376ec
shared_ptr.hpp: minor fixup for arrays
2021-03-02 16:08:14 +03:00
Megamouse
930895a218
DS3: fix LED battery status
2021-03-02 01:29:28 +01:00
Megamouse
3452e18da1
DS3: fix linux output report
2021-03-02 00:45:42 +01:00
Megamouse
b5d4b5a21c
DS3: fix regression: pad data is cleared even if there is no new data
2021-03-01 14:37:49 +01:00
Megamouse
2dc798d539
DS3: fix battery_level aquisition
2021-03-01 14:37:49 +01:00
Megamouse
805d52987f
Qt/Input: set player LED in pad settings
2021-03-01 14:37:49 +01:00
Megamouse
c2467b7b38
ds3: add led battery indicators (Linux only atm)
...
needs testing. maybe doesn't work
2021-03-01 14:37:49 +01:00
Megamouse
22b8cfd0ba
input: add some sanity checks
2021-03-01 14:37:49 +01:00
Megamouse
10a55f16cc
DS3: implement player LEDs
2021-03-01 14:37:49 +01:00
Ani
8e4451d1ab
rpcs3_version: Bump to 0.0.15 ( #9866 )
2021-02-28 23:32:23 +00:00
Megamouse
0b5c6350ae
cellScreenshot: fix overlay scaling ( #9867 )
...
* cellScreenshot: fix overlay scaling
2021-02-28 23:00:49 +00:00
Nekotekina
71e16bfac3
shared_ptr.hpp: minor fixup
2021-03-01 00:28:28 +03:00
Nekotekina
b7c579adf9
Tentative fix for -Wattributes
...
These warnings enabled conditionally for GCC 10.1+.
2021-03-01 00:22:32 +03:00
Eladash
461fa6a88a
Firmware installation bugfixes ( #9855 )
...
* Fix race condition in PUP installation abortion.
* Fix freezes of emulator in case the PUP installation failed due to filesystem errors.
* Use fs::create_path as opposed to fs::create_dir as it is can create upper directories in case they are missing and is better in error handling.
* Report TAR errors on failure to create directories.
* Fix pup_object constructor to not crash on invalid PUP file header. (report an error)
* Fix pup_object::validate_hashes to not crash on invalid PUP file entries. (report an error)
* Do not call Qt functions inside a named_thread because it is wrong.
2021-02-28 22:59:27 +03:00
Florin9doi
dfee46604a
Buzz settings
2021-02-28 22:36:47 +03:00
Megamouse
a7c9827ad4
Improve cellScreenshot ( #9851 )
...
* Fix screenshot logging
* Update libpng to 1.6.37
* cellScreenshot: Write text chunks
* cellScreenshot: add overlay image
* screenshot_manager: add /dev_hdd0/photo/
* read_png_file: use deleter instead of manual close
* cellScreenshot: use Qt for overlays
* cellScreenshot: don't apply overlay to regular img
* screenshot_manager: add mount hack for VFS
* cellScreenshot: escape the whole path
2021-02-28 22:05:04 +03:00
Nekotekina
f580bee32c
Rewrite cellNetCtlNetStartDialogLoadAsync hack
2021-02-28 20:20:17 +03:00
Nekotekina
de9d859f4a
named_thread: implement task queue
...
atomic_ptr: implement push_head()
thread_ctrl::state() triggers task queue execution.
2021-02-28 20:20:17 +03:00
Nekotekina
3aaa0172d5
named_thread: implement "default" event loop
...
Fixup "sleepy" thread at startup on Windows.
Permit threads which lack operator()() overload.
2021-02-28 20:16:13 +03:00
Megamouse
7cb32a3680
Qt: set parent for QThread
...
This may or may not have caused a leak
2021-02-28 18:48:34 +03:00
Megamouse
a4d4ab1df9
remove unused variable
2021-02-28 18:48:34 +03:00
kd-11
4bef176e9b
vk: Fix inadvertent self-assign
2021-02-28 18:00:20 +03:00
kd-11
d2de8a87bf
vk: Explicit initialization of command pool queue family
2021-02-26 15:08:14 +03:00
kd-11
12cad7c393
vk: Add per-queue-family scratch resources and double buffer them
2021-02-26 15:08:14 +03:00
kd-11
be1238cc95
vk: Add support for queue family migration and refactor some texture upload code
2021-02-26 15:08:14 +03:00
RipleyTom
67378c7dea
Add CELL_NET_CTL_INFO_DHCP_HOSTNAME impl
2021-02-26 11:58:42 +03:00
Eladash
c13039396c
Fix stop count incremention in Emu.Stop ( #9843 )
...
Until emulation is completely stopped, further CallAfter callbacks may be issued with incorrect stop count memorized.
2021-02-25 14:37:31 +03:00
Megamouse
e940632d93
Fix Nan in cpu_stats::get_usage
...
And apply same logic to linux and windows
2021-02-25 13:08:27 +03:00
Megamouse
6db25aa7fa
overlays: Fix cpu usage in low detail mode
2021-02-25 13:08:27 +03:00
Eladash
0012f39384
Fix TTY handling of control characters
2021-02-24 16:42:39 +03:00
kd-11
0e7e5b59ae
vk: Handle old GPUs without proper async queues
2021-02-23 23:22:41 +03:00
kd-11
d459da1378
Formatting fixes only
...
- Mostly remove camelcase usage in old code.
- Properly annotate vulkan API imports with _vk prefix to make it clear they are not regular variables.
2021-02-23 23:22:41 +03:00
Nekotekina
3063369322
vk::render_device::create: try to remove failing assertion
2021-02-23 19:46:37 +03:00
Nekotekina
a90ad62fc0
Remove garbage SPUW perf report
2021-02-23 18:24:50 +03:00
Nekotekina
cd01a1eb09
Move CPUStats.h -> util/cpu_stats.cpp
2021-02-23 18:24:50 +03:00
Nekotekina
090a769bf6
Implement fs::sync (Linux/POSIX)
2021-02-23 18:24:50 +03:00
Nekotekina
014846cf31
cellSaveData: fix minor issues
2021-02-23 18:24:50 +03:00
Megamouse
b83cb2dbf5
product_info: add Harmonix Pro-Drum Kit ( #9822 )
...
Co-authored-by: DrGeelfood <79338929+DrGeelfood@users.noreply.github.com>
2021-02-23 18:23:53 +03:00
Eladash
112b7f6571
Fix Emulation::CallAfter
...
Most CallAfter usages were extremely wrong when ordered after Emu.Stop(). could result in anywhere from emulation stopping hangs to even segfaults.
track_emu_state = true is now the default, I haven't found cases which need need it disabled.
2021-02-23 17:55:36 +03:00
Eladash
68a878264c
Minor GUI fix for PPU interpreter at "precompilation"
2021-02-23 17:35:45 +03:00
Megamouse
a771f168eb
overlays: fix perf overlay switching detail levels
...
The body was lagging behind the text. This was fixed by calling an updated version of init() on settings change.
This introduced spikes in the frametime graph, so the data had to become members and m_force_update was adjusted to not interfere with data aquisition.
2021-02-23 13:27:54 +03:00
Megamouse
79b5b79de1
overlays: fix initial size of perf_overlay body
...
You could see that it was not properly adjusted in the first frame in high detail mode.
2021-02-23 13:27:54 +03:00
Megamouse
7cc8380330
overlays: fix perf_metrics_overlay division by 0
2021-02-23 13:27:54 +03:00
Megamouse
e91df31f8c
overlays: Fix perf_metrics_overlay visibility
...
Also change auto type to compiled_resource in order to silence a warning about accidental copy by value
2021-02-23 13:27:54 +03:00
Megamouse
663b2c9c5e
overlays: Fix frametime graph spikes
...
The frametime_timer was restarted at the end of the update method, instead of immediately after reading its value.
This means that the frametime was lower than expected when an expensive task was executed in-between.
2021-02-23 13:27:54 +03:00
RipleyTom
801467e565
Fix rpcn registration
2021-02-23 13:17:49 +03:00
Eladash
447d2b6f93
Atomic RSX capture writes
2021-02-23 11:29:23 +03:00
Eladash
9ccf39b27f
Atomic SPU LS capture writes
2021-02-23 11:29:23 +03:00
Eladash
d4af8dd89a
Fix atomicity of savedata/trophy data writes
2021-02-23 11:29:23 +03:00
Eladash
932f31e37b
Atomic PARAM.SFO writes
2021-02-23 11:29:23 +03:00
Megamouse
0878db4e17
remove unused variable
2021-02-23 05:03:38 +01:00
Megamouse
037586d7bb
fix no-gui crash if no firmware was installed
...
It's a bit mysterious, but the confirmation box doesn't like being called in this mode.
So let's just return false.
2021-02-23 05:03:38 +01:00
kd-11
cb7cf40b5e
vk: Move queue family management from swapchain to logical device
2021-02-23 00:04:53 +03:00
kd-11
3632412c48
vk/dma: Simplify map_dma interface
2021-02-23 00:04:53 +03:00
Nekotekina
4b858648e5
Add supporters
2021-02-22 19:37:42 +03:00
Nekotekina
ad1027455a
Fix minor inconsistency in utils::memory_reset (Linux)
2021-02-22 13:00:01 +03:00
Nekotekina
9dc238187f
Simplify utils::align() a bit
...
std::is_unsigned implies std::is_integral I believe.
2021-02-22 13:00:01 +03:00
Eladash
73d45f3bf0
Remove vm::cleanup_unlock
2021-02-22 12:47:45 +03:00
Eladash
96400234a8
Remove cpu_thread destructor
2021-02-22 12:47:45 +03:00
Megamouse
2e5f321583
evdev: fix build
2021-02-22 10:45:40 +01:00
Megamouse
5a9b29b73a
hid: log more info when adding a device
...
And minor format changes
2021-02-22 10:45:40 +01:00
Megamouse
1b2260132b
only call hid_exit when all hid_handlers are done
2021-02-22 10:45:40 +01:00
Megamouse
1479468730
Input: fix build
2021-02-22 10:45:40 +01:00
Megamouse
f0b7afd7cc
cellPad: minor optimization
2021-02-22 10:45:40 +01:00
Megamouse
870d26f9d8
Input: replace a bunch of static_pointer_cast
2021-02-22 10:45:40 +01:00
Megamouse
f6d465667a
Input: unify some more code
2021-02-22 10:45:40 +01:00
Megamouse
aaae30cb84
DS3: inherit from hid_pad_handler
2021-02-22 10:45:40 +01:00
Megamouse
fbb9396813
DualSense: inherit from hid_pad_handler
2021-02-22 10:45:40 +01:00
Megamouse
b9a4abce0e
DS4: inherit from hid_pad_handler
2021-02-22 10:45:40 +01:00
Megamouse
d0cc5c0fc7
DS4: enumerate devices periodically
2021-02-22 10:45:40 +01:00
kd-11
b7c2bfbcde
vk: Fix cyclic read-write in dma_block::load/flush
...
Some DMA block entries are stubs whose parents are DMA_block_EXT
entries.
Performing load() in this case becomes a memcpy(address,
same_address_again, length) which wastes performance and introduces
bugs.
2021-02-22 01:13:31 +03:00
RipleyTom
8be2a55ccc
Add mutex lock for NP changes
2021-02-21 18:04:55 +03:00
RipleyTom
81270f3142
Remove now useless code from sys_bnet_connect
2021-02-21 18:04:55 +03:00
Eladash
eb0d006168
Fix most of "[x] thread is too sleepy" at Emu.Stop() ( #9813 )
...
* Fixes some thread sleep/wait calls
2021-02-21 16:43:02 +03:00
Oschowa
a47bda026b
Audio/AL: Request our default sampling rate (48kHz) from AL when creating the
...
context.
Otherwise AL might downsample and output in 44.1kHz unnecessarily, which
happens at least on my system. Also tested on an audio device that
doesn't support 48kHz to makes sure that still works.
2021-02-20 14:31:38 +03:00
RipleyTom
5129d0da45
check alcGetString return pointers
2021-02-20 07:39:56 +01:00
Eladash
b86ec2ffcf
Fix potential overflows in utils::aligned_div, utils::rounded_div
2021-02-19 16:10:03 +03:00
Eladash
20eb4352fb
debugger: Fix single stepping ( #9793 )
2021-02-19 14:53:09 +03:00
Nekotekina
e76d8eb046
Fix -Wstring-aliasing (gcc)
2021-02-18 19:38:22 +03:00
Nekotekina
c8fefc4434
Fix -Wpessimizing-move (Clang)
2021-02-18 14:38:56 +03:00
Nekotekina
2c18d67769
Fix -Wsometimed-uninitialized (Clang)
2021-02-18 14:15:52 +03:00
Nekotekina
428771f1d7
Fix -Wself-assign (clang)
2021-02-18 14:07:22 +03:00
Nekotekina
038148bf06
Fix almost all GCC warnings
2021-02-17 22:59:04 +03:00
RipleyTom
6786734d95
Fix mic device default in config
2021-02-17 18:15:58 +03:00
Nekotekina
1446254a03
Add error on missing 'override'
...
For consistency.
2021-02-15 20:21:30 +03:00
Nekotekina
3bcd76bd4e
Fix regression (incorrectly removed specialization)
...
Changed CRLF->LF in VKPipelineCompiler.h
2021-02-15 17:05:51 +03:00
Nekotekina
0bcece4585
Make -Woverloaded-virtual an error
...
Had to devirtualize some functions.
2021-02-15 15:50:05 +03:00
Nekotekina
035ab590ec
Reset -ftemplate-depth to normal
...
It became obsolete.
2021-02-15 14:40:29 +03:00
Nekotekina
8e6e57de86
Enable -Wunused-function warning
2021-02-15 14:39:53 +03:00
Eladash
4c1026436f
Log "Missing Firmware" if firmware is missing
2021-02-15 09:50:52 +01:00
kd-11
9f97bab717
vk: Fixup and refactor for exclusive fullscreen stuff
2021-02-15 10:27:36 +03:00
13xforever
76518d4c59
add a hidden option to prevent switching to exclusive full screen mode
...
this is helpful for people streaming RPCS3, or to prevent disabling HDR mode in Windows
2021-02-14 22:01:33 +03:00
kd-11
eba7d3b172
rsx: Add duplicate section detection when there are too many sections in the surface cache
...
- Check for useless sections.
Helps in games that create a bunch of sections randomly for one-time use
2021-02-14 20:42:34 +03:00
kd-11
b8311caa6b
vk: Silence some compiler warnings
2021-02-14 20:42:34 +03:00
Eladash
5b044a93c1
Fix vm::falloc() for misaligned args ( #9764 )
...
Force addr/size alignment.
2021-02-14 13:19:14 +03:00
Eladash
f009d36811
Update log messages of PPU/SPU hashes and patches applied
2021-02-14 09:35:42 +01:00
Eladash
f43260bd58
Atomic waiting refactoring ( #9208 )
...
* Use atomic waitables instead instead of global thread wait as often as possible.
* Add ::is_stopped() and and ::is_paued() which can be used in atomic loops and with atomic wait. (constexpr cpu flags test functions)
* Fix notification bug of sys_spu_thread_group_exit/terminate. (old bug, enhanced by #9117 )
* Function time statistics at Emu.Stop() restored. (instead of current "X syscall failed with 0x00000000 : 0")
2021-02-13 17:50:07 +03:00
Eladash
cf384795d2
debugger: Improve PPU string constraints
2021-02-13 16:00:26 +03:00
Eladash
423cc1685c
PPU LLVM: Reduce PRX/OVL compilation memory usage a little
2021-02-13 13:05:41 +03:00
Eladash
5ed0cc293d
Fix PS3 process exit/exitspawn
2021-02-12 19:39:47 +03:00
Eladash
5401cb7392
kernel explorer: Display all PRX/OVL segments
2021-02-12 15:27:59 +03:00
Eladash
e26ae9899c
Reimplement/fix PRX patches
2021-02-12 15:27:59 +03:00
Alex Saveau
48296c2ba6
Fixup for multi-thread shader compilation (loading stage) ( #9762 )
...
* Multi-thread shader compilation
This offers a huge improvement in startup performance. With around 13,000 shaders we go from ~1:30 to under 10 seconds. It looks like this was the original intention of the author given the outer scope recompile variable.
Signed-off-by: Alex Saveau <saveau.alexandre@gmail.com>
2021-02-12 14:39:35 +03:00
Ani
b858fceb4f
vk: Support incomplete lavapipe
...
Disable features still unimplemented by lavapipe when using it:
- samplerAnisotropy
- shaderStorageBufferArrayDynamicIndexing
- wideLines
as of mesa 21.1.0-dev (aea36ee05e9, 2020-02-10)
2021-02-11 14:49:37 +03:00
kd-11
195fb1cf66
rsx: Improve texture cache invalidate
...
- Bunch of improvements
- Properly signal renderer to rebind textures!
- TODO: Range checks, should be pretty easy
2021-02-10 11:37:14 +03:00
kd-11
52acc23ecf
rsx: Fix protection bug
2021-02-10 11:37:14 +03:00
kd-11
0a34fc4bcd
vk: Offload garbage collection to offloader thread
2021-02-10 11:37:14 +03:00
kd-11
bec91aab7b
rsx: Relax inheritance checks a bit
...
- It is not a fatal error for a texture to be defined where a framebuffer once existed.
2021-02-10 11:37:14 +03:00
kd-11
6f4dbf4fcd
vk/vma: Always use aligned requests
...
- Performance optimization when combined with vma optimizations added by me
2021-02-10 11:37:14 +03:00
kd-11
bf66c36ba4
rsx/texture_cache: Add support for reusing dirty images if possible
...
- Avoids a silly situation where a texture is discarded and an identical copy created immediately afterward.
Unfortunately allocating memory blocks is really slow so avoid it as much as possible.
2021-02-10 11:37:14 +03:00
kd-11
0c10f47e85
rsx: Lower cache block length to 256 pages
...
- Drastically lowers time wasted iterating blocks when many small objects
are present
2021-02-10 11:37:14 +03:00
kd-11
1bad9a939f
rsx: Refactor texture cache utils
...
- Also lays groundwork for optional hashed sections
2021-02-10 11:37:14 +03:00
Megamouse
8d6504d6e3
GUI: initial log viewer
2021-02-09 22:56:28 +01:00
Ivan
04c187deb5
Revert "Replace GetEmuDir() with GetExeDir() in handle_rpcs3"
...
This reverts commit f9eb6a31bd .
2021-02-09 22:24:09 +03:00
Megamouse
bc938ce630
dualsense: implement player LEDs
2021-02-09 19:21:37 +01:00
Megamouse
e5f95a450d
dualsense: update description
2021-02-09 19:21:37 +01:00
Megamouse
b31d38eef7
LED settings: set modal and add has_battery check
2021-02-09 19:21:37 +01:00
Megamouse
db402cb8af
dualsense: add player LED support
2021-02-09 19:21:37 +01:00
Megamouse
1af6550db7
dualsense: add lightbar support
2021-02-09 19:21:37 +01:00
Megamouse
7795f5207f
dualsense: fix switched motors
...
The left one seems to be the large motor
2021-02-09 19:21:37 +01:00
Megamouse
a9b8a50c31
dualsense: add output report structs based on linux driver
2021-02-09 19:21:37 +01:00
Megamouse
a9418fa1e7
dualsense: implement SetPadData for rumble in GUI
2021-02-09 19:21:37 +01:00
Megamouse
08f48d27e8
Input: minor simplification
...
This might prevent some copy paste error in the future
2021-02-09 19:21:37 +01:00
Megamouse
25a66da4ca
Input: rename some functions
2021-02-09 19:21:37 +01:00
Megamouse
ff61bc9e7c
dualsense: add mic button
2021-02-09 19:21:37 +01:00
Megamouse
3e8f4ba018
dualsense: add gyro support
2021-02-09 19:21:37 +01:00
Jordy Vieira
f9eb6a31bd
Replace GetEmuDir() with GetExeDir() in handle_rpcs3
2021-02-09 20:06:26 +03:00
Nekotekina
4f8cac731b
Fix SAFE_BUFFERS attribute for GCC
2021-02-09 12:33:50 +03:00
Nekotekina
3e496f6625
Add -fstack-protector (Non-MSVC)
2021-02-09 12:06:17 +03:00
kd-11
2d62f9c4c5
vk: Improve spec compliance ( #9748 )
...
- Always comply when running under strict mode
- Only allow hacky transport for known-to-work GPUs
2021-02-08 22:11:01 +00:00
Eladash
78811b8816
GUI: Always remove manually added fonts in OnChangeStyleSheetRequest()
2021-02-08 21:38:53 +01:00
Eladash
e38cd5149a
Fix firmware updating/reinstallation
2021-02-08 21:38:53 +01:00
Megamouse
dc2a1e270a
Qt: Repaint log on stylesheet change
2021-02-08 13:24:07 +03:00
Megamouse
44ab50553d
Qt: Replace relative paths in stylesheets instead of changing the working directory
2021-02-07 20:07:58 +03:00
Megamouse
7c683c368d
Qt: Fix weird naming issue on linux
2021-02-07 20:07:58 +03:00
Megamouse
62ca7a9b60
Qt: Simplify stylesheet logic
2021-02-07 20:07:58 +03:00
Nekotekina
632e36ab44
Qt: fix stylesheets on various platforms
...
Replace relative paths to resources.
Paths should start from GuiConfigs.
2021-02-07 14:09:50 +03:00
Nekotekina
0057c89eaa
PPU Analyser: follow fallbacks in some cases
...
Fallback is an "invisible" branch to the next instruction.
This may be necessary for certain cases when patches are used.
2021-02-07 11:02:45 +03:00
Nekotekina
9e9a55df46
PPU LLVM: compile instructions from patches
...
For now, only as a single instruction at a time.
2021-02-07 11:02:31 +03:00
Nekotekina
9463238490
PPU Analyser: minor fixups for end pointer
...
Add more sanity checks for sections.
Remove some redundancy.
2021-02-07 11:02:31 +03:00
Nekotekina
b7ff2ecffb
Patch system: export some info for future use
...
For now it's just a list of addresses.
For now it's not used (just a stub).
2021-02-07 11:02:31 +03:00
Eladash
fad89f1c3b
Fix tiny race in PPU breakpoints ( #9731 )
...
If the PPU has just being paused by the debugger, before it entered the breakpoint handler, the PPU would continue onto the next instruction skipping the breakpoint but then being paused on it instead.
2021-02-07 00:25:40 +03:00
Nekotekina
5063eefa96
Fixup for downloader
2021-02-06 15:21:00 +03:00
Nekotekina
25827c12a3
Make out of source builds get copy of /GuiConfigs/, /git/, etc.
...
Reduce quality of kot-bg.jpg.
2021-02-06 12:55:14 +03:00
Nekotekina
cb32fd15ee
Add supporters
2021-02-06 00:37:53 +03:00
Nekotekina
d6dcab443d
Updater: add minor sanity check
2021-02-06 00:37:53 +03:00
Nekotekina
c32fec774f
Create mini-cache for commits
...
Located in bin/git/commits.lst;
Created with GitHub API with --get-commit-db key.
Can be lazily appended with the same key.
2021-02-06 00:37:53 +03:00
kd-11
ddac4686a7
rsx: Clear vertex output register if nothing is written to it
...
- On NVIDIA GPUs, gl_Position is not initialized. Always clear to 0 to avoid on-screen crap
2021-02-05 22:22:07 +03:00
Megamouse
2865865382
Don't use std::exit during Qt initialization
2021-02-05 17:32:48 +01:00
Eladash
7ce835e878
Support logger stopping at std::exit ( #9722 )
2021-02-05 17:07:17 +03:00
Megamouse
7e0fdbbe99
Fix rpcs3.vcxproj
2021-02-04 23:11:05 +01:00
Megamouse
fd1f2ca1c6
Rename some variables to snake_case
2021-02-04 23:11:05 +01:00
Nekotekina
a6a92f7b6b
Qt: remove Q_OBJECT for mouse/kb handlers
...
Had to move QObject in parent list for g_fxo changes.
2021-02-04 23:11:05 +01:00
Eladash
4f85f151fd
SPU: Always signal the debugger about termination
2021-02-03 15:05:38 +03:00
Eladash
478ae0715e
Tiny fix for zombie PPU threads
2021-02-03 15:05:38 +03:00
Megamouse
714eb6dcc5
Disable LimitCacheSize option in custom configs
...
It doesn't make sense on a per game basis and is used before loading them anyway
2021-02-02 18:37:18 +01:00
Megamouse
89942ed92a
optimize add_only boot process
...
No need for hardcore stuff while adding games to the list
2021-02-02 18:37:18 +01:00
Megamouse
6ed9251f44
Remove tooltip event filter from gamelist
...
Fixes a weird issue where tooltips for the wrong game would popup.
I don't know why the event filter was needed.
Maybe the tooltips didn't work otherwise back then or it was just some copy paste from google.
2021-02-02 15:46:42 +01:00
Megamouse
2c32a721fc
Allow BootGame with indirect paths
2021-02-02 13:21:26 +01:00
Nekotekina
08aaae7999
PPU LLVM: workaround patch handling
...
Try to address #9704
2021-02-02 10:33:13 +03:00
Eladash
2005c89baa
memory viewer: Implement RSX mode
...
* Set the ground for RSX modes of register editor and insttruction editor, do not use shared ptrs directly.
* Make register editor and instruction editor modeless to allow to copypaste values from thread context etc in the background.
2021-02-02 01:05:36 +03:00
Megamouse
8c6aa9db31
Print report_fatal_error to cmd
...
useful if used like:
start /w ./rpsc3 --headless <path>
2021-02-01 21:44:23 +01:00
Nekotekina
58eef983e2
PPU Analyser: fix constraints for all elfs.
...
Added for main executable and OVLs.
Forgot to use it not just for SPRX.
2021-02-01 19:14:24 +03:00
Nekotekina
390b192f0a
TSX: workaround for check_state freezes
2021-02-01 19:14:24 +03:00
Nekotekina
7b40859eff
Remove unused header
2021-02-01 19:14:01 +03:00
Nekotekina
d0126f0fa0
Fix freezes in HLE Vdec and SPU LLVM precompilation.
...
Freezes could accidentally occur on close or ingame.
Deprecate range-for loop on lf_queue.
This is a part of PR #9208
Co-authored-by: Eladash <elad3356p@gmail.com>
2021-02-01 19:14:01 +03:00
Nekotekina
0c034ad7de
PPU LLVM: upgrade to GHC call conv
...
Get rid of some global variables.
Implement ppu_escape (unused yet).
Bump PPU cache version to v4.
2021-02-01 11:30:50 +03:00
Nekotekina
aeeceb7d0b
Minor fixups
2021-02-01 11:30:50 +03:00
Nekotekina
d5f16ce272
PPU Analyser: better constraints for SPRX
2021-02-01 11:30:50 +03:00
Nekotekina
c89362f6a2
PPU LLVM: don't use module name as PRX indicator
2021-02-01 11:30:50 +03:00
Nekotekina
8a029159cd
PPU Analyser: compile certain functions on per-instruction basis
...
PPU LLVM: optimize small blocks
2021-02-01 11:30:50 +03:00
Nekotekina
891ebd0cb1
PPU Analyser: use reloc info (disabled for now)
...
Add blocks from relocations.
2021-02-01 11:30:50 +03:00
Nekotekina
382509d778
PPU LLVM: Implement inline __add_get_ov
2021-02-01 11:30:50 +03:00
Nekotekina
f9ee8978ff
PPU LLVM: improve analyser
...
Compile possibly executable holes between detected functions.
Add unused "PPU LLVM Greedy Mode" option (for future updates).
Add "nounwind" attribute to compiled functions (reduces size).
2021-02-01 11:30:50 +03:00
Eladash
e71c2df39d
Debugger: Add some more shortcut descriptions in F1 helper
2021-02-01 00:21:50 +03:00
Eladash
cfc7865f82
Debugger: Allow to unpause a thread which has been paused by global pause
2021-02-01 00:21:50 +03:00
Nekotekina
cf6606065d
PPU: fix some typos in asm code
2021-01-31 20:00:04 +03:00
Megamouse
9feb92df1b
More informative Error message on Vulkan driver crash
...
The message might not be the only reason, but at least it might help someone like me, who had no idea what he was looking at.
2021-01-31 15:51:21 +01:00
Megamouse
be26810cd7
RSX: Implement set_value for progress dialogs
2021-01-31 15:02:26 +01:00
Megamouse
df79b6c238
RSX: update shader loading dialog at 60 fps
...
Looks much smoother
2021-01-31 15:02:26 +01:00
Eladash
82c86ed2f7
Implement standalone OVL (overlay) loading mode
...
* Allow to load OVL alone.
* Add error checks in ppu_load_exec(), do not crash on error.
* Fix crash on exit from standalone PRX mode, allow kernel explorer to work with it as well for the added OVL mode.
2021-01-31 15:47:05 +03:00
Eladash
9077563dac
Add missing destructor of progress dialog
2021-01-31 12:55:20 +01:00
Eladash
8d15f44b33
Fix ppu progress dialog percentage
2021-01-31 12:55:20 +01:00
Eladash
b3fbada10e
Fix potential crash of progress dialog
2021-01-31 12:55:20 +01:00
Megamouse
31cdd7bdd2
Prevent minor race in Progress Dialog Server
2021-01-31 12:18:32 +03:00
Megamouse
c464e90d5d
Fix stop exit of check_only ppu_initialize
2021-01-31 12:18:32 +03:00
Megamouse
670d2b191c
Minor optimization for check_only ppu_initialize
2021-01-31 12:18:32 +03:00
Megamouse
7bddb87306
Simplify compile threads
2021-01-31 12:18:32 +03:00
Megamouse
2025f02105
Search for more game data directories.
...
Also properly remove duplicate paths
2021-01-31 11:42:33 +03:00
Megamouse
1078626eea
Fix ppu compilation progress dialog
...
We could only increase the value because we completely based the dialog on cellMsgDialog.
This led to an issue where the dialog would increase its maximum and thus decrease the current percentage.
It then couldn't decrease and was stuck on the old percentage.
2021-01-30 21:34:16 +01:00
Eladash
16c6b44f55
Fix #9680 ( #9687 )
...
Fix regression from #9680
2021-01-30 19:05:02 +03:00
Eladash
6b3b06df25
rsx: Set frame limit to auto by default
2021-01-30 16:53:14 +03:00
Eladash
e3b3b0cda7
PPU LLVM: Precompile all executable (PRX, MSELF, overlay) code at startup ( #9680 )
...
* Precompile LLVM cache at startup of games, like the GUI "Create PPU Cache" option.
* Allow OVL (overlay) precompilation as well (used by certain games).
Co-authored-by: Megamouse <studienricky89@googlemail.com>
Co-authored-by: Nekotekina <nekotekina@gmail.com>
2021-01-30 16:08:22 +03:00
Nekotekina
bb2cc196a6
Fixup for preloading SPRX from MSELF
...
Forgot to append the offset.
Forgot to use different loop variable.
2021-01-29 21:26:34 +03:00
Eladash
d3bc96a201
Fix minor issue with usage of STL thread::hardware_concurrency()
2021-01-29 18:23:29 +03:00
Nekotekina
11ba6e45ab
Add MSELF support to SPRX precompilation.
...
Add ppu_precompile() function in PPUThread.cpp
Co-authored-by: Eladash <elad3356p@gmail.com>
2021-01-29 13:34:43 +03:00
Eladash
a742501a4f
Do not account RSX for TSX pauses
2021-01-29 10:31:15 +03:00
Eladash
70346028c5
Fix GCM HLE
...
Oops.
2021-01-29 10:31:15 +03:00
Megamouse
3359458175
Handle missing cases of Emu.BootGame failure
2021-01-28 20:54:27 +01:00
Nekotekina
6784301376
Check for rsx::thread existence in Emu.Stop/Pause/Resume
2021-01-28 20:23:13 +03:00
Megamouse
51d19e7c31
Input: remove debug error
2021-01-28 18:02:23 +01:00
Eladash
0652870204
New RSX Debugger
2021-01-28 17:40:26 +03:00
Nekotekina
67dd6754a6
Seal cereal includes in util/cereal.cpp
2021-01-28 10:48:53 +03:00
Nekotekina
34274ec391
Purge unused typeid() invocations
2021-01-28 10:23:29 +03:00
Nekotekina
53267e283b
PPU LLVM: implement ppu_finalize
...
Properly free certain compiled PRX/OVL modules (except dev_flash)
2021-01-27 18:03:49 +03:00
Nekotekina
15ed963a29
UI: Add supporters
2021-01-27 14:23:26 +03:00
Nekotekina
ee288340b0
Implement thread_ctrl::scoped_priority
...
RAII priority control (+1, or -1)
2021-01-25 21:49:16 +03:00
Nekotekina
a69248299d
SPU: Don't use shm::map_critical in SPU LS allocations
...
Use shm::try_map instead until proper area is found.
2021-01-25 17:45:47 +03:00
Nekotekina
caa83d20f7
vm_native.cpp: implement shm::try_map
...
Treats addr as a hint, emulating windows behaviour.
2021-01-25 16:55:19 +03:00
Malcolm Jestadt
486d48e4f8
SPU LLVM: Optimize ROTQBY family for VBMI
...
- Avoid masking pshufb index by 0xf by using vpermb instead.
- Also fix conversion of vperm2b index to ShuffleVector index.
2021-01-25 13:18:23 +03:00
Ani
7c62574e59
spu: Restore workers priority after initialization
2021-01-24 16:40:59 +03:00
kd-11
22584fb2d1
vk/dma: Disable pasthrough DMA for NVIDIA+windows
...
- The driver seems to cache page mapping as long as allocation has not been removed
- This is undesirable as we cannot stop the emulator to remove stale allocations every time a page is unmapped
2021-01-24 14:24:55 +03:00
kd-11
90ac9165e2
vk/dma: Unmap pages from GPU when they are unmapped in Cell
2021-01-24 14:24:55 +03:00
kd-11
bcb69a54b2
gl: Avoid type shenanigans used to fake byteswap for select formats
...
- Just use the reversed type instead.
The new uploader backend combines swizzle+swap so there is no need for tricks anymore
2021-01-24 14:24:55 +03:00
kd-11
f93cb262ba
vk/dma: Fix multiple logical bugs
...
- Fix range chaining.
- Add validation checks that no overlaps exist.
2021-01-24 14:24:55 +03:00
kd-11
67949bb5b7
vk/dma: Allow interoperability between pass-through and write-back DMA caching types
2021-01-24 14:24:55 +03:00
kd-11
e56da4eb46
vk: Workaround for amdgpu kernel driver
2021-01-24 14:24:55 +03:00
kd-11
f7fdfe52bc
vk: Fix custom event signals
2021-01-24 14:24:55 +03:00
kd-11
7de0ff337b
vk: Polishing and cleanup
...
Some spec violations fixes
Make the option dynamic
2021-01-24 14:24:55 +03:00
kd-11
e1c0a917fa
vk/dma: Modify default page size to 64k
2021-01-24 14:24:55 +03:00
kd-11
ead180aa60
win32: Be a bit more optimistic with allocated ranges; we get contiguous ranges more often than not
2021-01-24 14:24:55 +03:00
kd-11
58d367d704
vk: Add host-imported DMA buffers
2021-01-24 14:24:55 +03:00
kd-11
a1ab6c28c1
vk/rsx: Fix some more bugs
2021-01-24 14:24:55 +03:00
kd-11
59e46f09b7
vk/dma: Disable memory inheritance
...
- It is not possible to emulate passthrough memory cleanly, and we don't need to
A stupid race condition appears when trying to synchronize DMA blocks with memory inheritance.
Since the usage pattern is to acquire a range and then load or write+flush, this new data is going to be..
overwritten by the commandbuffer execution sequence later. Acquiring a scratch buffer to hold CPU content during the transition is not worth the effort..
as the data will be destroyed anyway during the transfer process immediately afterwards.
Fixes data corruption when moving data around using the emulated DMA passthrough
2021-01-24 14:24:55 +03:00
kd-11
7766076042
rsx/vk: DMA stuff
2021-01-24 14:24:55 +03:00
Eladash
b96864c7e6
rsx: Improve gs frame exit workaround
...
Move to close(), hide before potential hanging at Emu.Stop()
2021-01-23 12:45:53 +03:00
Eladash
79513f06a4
rsx/gui: Delay game window pop-up until first frame
2021-01-23 12:45:53 +03:00
RipleyTom
00ff53499a
fix UserInfo2_to_SceNpUserInfo2
2021-01-22 20:51:10 +03:00
Eladash
142b44d4be
debugger: Implement F1 helper
2021-01-22 00:39:41 +01:00
Eladash
7f28489c70
Improve ppu_thread_cleaner a bit
...
Always join thread.
2021-01-21 21:32:13 +03:00
Eladash
a58c12db0b
SPU: fixup after #9630
...
Co-Authored-By: Ivan <nekotekina@gmail.com>
2021-01-21 21:32:13 +03:00
Eladash
12e1be2626
Implement thread_ctrl::wait_on (see #9208 )
2021-01-21 18:31:51 +03:00
Eladash
f81674232e
Remove SPU and PPU destructors
2021-01-21 18:31:51 +03:00
kd-11
eb086b0e3f
rsx: Add support shadow1D and shadowCube
2021-01-21 10:24:49 +03:00
kd-11
b6b9085773
rsx: Use unsigned variables to avoid sign problems when calculating stipple bits
2021-01-21 10:24:49 +03:00
Nekotekina
241989c5fa
Fix new warnings
...
Added CELL_GCM_CONTEXT_DMA_NOTIFY_MAIN_0+ enums.
Added CELL_GCM_CONTEXT_DMA_TO_MEMORY_GET_NOTIFY0+ enums.
Co-authored-by: Eladash <elad3356p@gmail.com>
2021-01-20 12:27:37 +03:00
Nekotekina
f944573b3c
Fix old warnings: remove strncpy
...
Use strcpy_trunc instead.
Change some sce structs.
2021-01-20 12:26:09 +03:00
RipleyTom
5662867730
Change the way skylander ID is generated
2021-01-20 08:46:39 +03:00
Eladash
dbecf0fa50
Introducing RSX debugger entry (main debugger)
2021-01-19 22:55:12 +03:00
Megamouse
62cb532460
Qt: hotfix for downloader
...
I accidentally broke the download progress bar in the last related PR.
I should've put more trust in the sanity of the younger version of myself.
This should fix it.
2021-01-18 22:41:31 +01:00
Nekotekina
f9bc682115
Refactor some 'offending' code a bit (no effect)
...
It appears linkage errors were rare even in debug mode (GCC/clang).
2021-01-18 21:58:28 +03:00
Nekotekina
8a2a76da1e
texture_cache: fix some warnings in AUDIT
2021-01-18 13:49:59 +03:00
Malcolm Jestadt
a2e8e3090c
SPU LLVM: Optimize FSM following comparison
...
- FSM following a comparison instruction can be optimized to a single shuffle instruction
2021-01-17 16:52:44 +03:00
Nekotekina
0ac68def49
vm_native.cpp: minor compilation fix
2021-01-17 15:14:11 +03:00
Nekotekina
def364fe28
SPU LLVM: add splat_scalar helper
...
Unrolls into zshuffle from the preferred slot.
2021-01-17 15:13:28 +03:00
Alex James
d7a8d385d8
CMake: Use find_package to find SDL2
...
This ensures that the SDL2 uses an absolute library path, which is
necessary when SDL2 isn't present in the default link directories (e.g.
on macOS).
2021-01-17 13:51:03 +03:00
Nekotekina
aaaeb66cc8
vm: Minor fix in vm::close
...
Supplied size was wrong.
2021-01-15 20:12:30 +03:00
Nekotekina
4ed76a15ff
Use different approach in shm::unmap_critical (Linux)
...
For now, set protection to PROT_NONE.
Attempt to address #9609
2021-01-15 20:11:09 +03:00
Nekotekina
b5837d1271
Memory: use MADV_DONTDUMP if available (Linux)
...
Also refactor other madvise() usage
2021-01-15 19:54:41 +03:00
Eladash
e4c3b1c2bd
vm: Remove vm::dealloc_verbose_nothrow
2021-01-15 17:37:52 +03:00
Nekotekina
ea916fd7e1
Memory: fix critical bug in shm::unmap_critical (Linux)
...
It was leaving holes in reserved areas.
Windows is unaffected.
2021-01-14 18:04:29 +03:00
Nekotekina
4bee8dc37f
Crypto: modernize key_vault.h
...
Use constexpr, remove warning guards
2021-01-14 15:23:52 +03:00
Nekotekina
8b01d05146
Crypto: modernize ec.h
...
Add const, use u8
2021-01-14 15:17:07 +03:00
Nekotekina
376e564cff
Crypto: make global vars in ec.cpp thread_local
2021-01-14 12:01:41 +03:00
Nekotekina
caf02d1841
Crypto: don't modify EDAT_IV (all zeros)
...
I didn't notice where it gets restored to zeros.
2021-01-13 21:57:38 +03:00
Nekotekina
6cf73fad13
Crypto: workaround -Wunused-variable
...
Ignore for key vault for now.
2021-01-13 19:02:14 +03:00
Megamouse
cfe660ab35
Qt/curl: fix segfault in curl
...
The QThread lived longer than the m_curl object.
This lead to a crash when closing RPCS3 while the download is still in progress.
2021-01-13 19:01:58 +03:00
Megamouse
8eaf76394c
Qt/Input: Use ellipsis as "mouse deadzone"
...
This is experimental and smoothens the existing square shaped deadzone
2021-01-13 11:25:33 +01:00
Megamouse
a692adefd7
Remove legacy patch support
2021-01-13 10:39:17 +01:00
Eladash
e05f1c37ad
memory viewer: Close all instances after emulation exit
2021-01-12 23:57:36 +03:00
Eladash
923fcc3b3d
utils::shm: Hotfix after #9578
2021-01-12 23:57:36 +03:00
Eladash
c50b9bc4b4
utils::shm: Make map_self() atomic ( #9578 )
2021-01-12 19:53:18 +03:00
Eladash
e1f95ceb54
sceNpTrophy: Fix sceNpTrophyRegisterContext for handler abortion ( #9586 )
...
* Implement handler abortion during context registration.
* Fixed recursive calls to sceNpTrophy functions such as by callbacks from registering context.
* Turns out the reader lock for context registeration was incorrect because ctxt->tropusr and trophy directory are being modified. Made it an exclusive lock after callback.
2021-01-12 19:14:51 +03:00
Megamouse
eb77495d5f
Implement richtext_item_delegate
...
And use it in pkg_install_dialog
2021-01-12 14:13:15 +01:00
Megamouse
270d602a26
Add filename to multi pkg installation
...
Some packages are indistinguishable otherwise
2021-01-12 14:13:15 +01:00
Megamouse
dd41ee68de
Simplify numbered_widget_item
2021-01-12 14:13:15 +01:00
Megamouse
46dc40f3f1
Add filename to single pkg installation
...
Some file info is indistinguishable otherwise
2021-01-12 14:13:15 +01:00
Megamouse
7c7af2e102
fix rebase conflicts
2021-01-12 14:13:15 +01:00
Megamouse
36189b8c3b
Try to distinguish between Update and DLC (Part 2)
2021-01-12 14:13:15 +01:00
Megamouse
cde802b16c
Move blocking code in order to free the explorer
2021-01-12 14:13:15 +01:00
Megamouse
1500e5f588
Try to distinguish between Update and DLC
2021-01-12 14:13:15 +01:00
Megamouse
fbe91fb245
fix linux compilation
2021-01-12 14:13:15 +01:00
Megamouse
321e7d6977
Don't hide the PKG install progress dialog after each package
2021-01-12 14:13:15 +01:00
Megamouse
56488a4ac9
Use boolean values in unedat
2021-01-12 14:13:15 +01:00
Megamouse
4a75f44d47
Minor include cleanup in utlis.h
2021-01-12 14:13:15 +01:00
Megamouse
deb4b03200
Add VERSION fallback to GetPkgInfo
2021-01-12 14:13:15 +01:00
Megamouse
df94c906da
Add more info to PKG install progress dialog
...
And fix installation of single packages
2021-01-12 14:13:15 +01:00
Megamouse
4d50d9daa4
unpkg: add missing break and some cleanup
2021-01-12 14:13:15 +01:00
Megamouse
0624bdc72d
Use package reader in pkg_install_dialog
2021-01-12 14:13:15 +01:00
Megamouse
ccec6e53c0
Rename package_reader member variables
2021-01-12 14:13:15 +01:00
Megamouse
68d411918d
Read patchsets from compat db
2021-01-12 14:13:15 +01:00
Nekotekina
0af452720e
RSX: Fix possible bug in memory streaming utils
2021-01-12 15:06:31 +03:00
Nekotekina
db8e6fe7a7
Enable -Wunused-variable
2021-01-12 14:34:14 +03:00
Nekotekina
631d7d0ce7
Enable -Wunknown-pragmas
2021-01-12 13:01:17 +03:00
Nekotekina
ed345e5b65
Enable -Winvalid-offsetof
2021-01-12 13:01:17 +03:00
Nekotekina
d3a66af7d6
Enable -Wcomment warning
2021-01-12 13:01:17 +03:00
Megamouse
52deff06ba
Random stuff ( #9589 )
...
* minor coding style adjustment
* Qt: simplify osk dialog buttons
* replace std::find_if with convenience functions
* RSX: use sv in swizzle comparison
idk, I'll remove this if it was intentional.
* overlays/osk: rename enter to return
This one confused me and make me look for a bug that caused the "enter" key to be disabled, while it was actually the return key (obviously xD).
2021-01-12 12:59:50 +03:00
Megamouse
838cbe1840
tiny include fix
2021-01-11 13:04:46 +03:00
Eladash
70804e2ba6
kernel explorer: Make it single-instance tool
2021-01-10 20:30:23 +01:00
Eladash
07c925223b
rsx: Fix index array offset bits
2021-01-10 18:40:02 +03:00
kd-11
c2cbc62be6
vk: Refactor some uber-headers
...
- VKHelpers was the rug everything was swept under for a long time.
This commit essentially deprecates its usage across most of the backend.
2021-01-10 12:04:31 +03:00
Nekotekina
9d74d42f2a
Fix compilation for gcc-11
...
In response to #9557
2021-01-09 14:38:01 +03:00
Eladash
bf6f43ec3a
Utils: Rewrite fmt::split
2021-01-08 22:23:48 +03:00
Megamouse
36159c2bd4
Add comment for deprecated avcodec_register_all
...
Apparently this is now done automatically and doesn't even need to be called at all
2021-01-08 14:36:49 +03:00
Megamouse
72e1d03860
Qt: ugly fix for ugly deprecation warning
...
Apparently Qt wants us to implement each comparison on our own, and there is no simple replacement for this.
2021-01-08 14:36:49 +03:00
Megamouse
ed1b8f2545
game_list: fix deprecation warning
...
We only need to check if the data is valid for clicks on empty space in the game grid. I don't remember why I initially checked < 0
2021-01-08 14:36:49 +03:00
Nekotekina
1ad0f24ecd
Fix or silence Qt warnings
2021-01-07 13:18:48 +03:00
Nekotekina
586440622b
Silence another warning (clang)
2021-01-07 12:46:45 +03:00
Nekotekina
6231b07d2a
Silence one warning (clang)
2021-01-07 12:42:15 +03:00
Nekotekina
1dcf5e4f85
Error on no return type warning
...
Added non-existing noreturn destructor to fmt::throw_exception (for clang).
2021-01-07 11:56:16 +03:00
Nekotekina
9ba8f4795c
Remove redundant #pragma once
2021-01-06 23:33:37 +03:00
Eladash
951fe3491e
PS3 Loader: Fix sections memorizing
2021-01-06 23:21:38 +03:00
Nekotekina
6ae1f1b02c
VFS: fixup handling . and .. after #9528
2021-01-05 16:16:01 +03:00
Nekotekina
673e84920b
fixed_typemap.hpp: remove useless reporters
2021-01-05 16:16:01 +03:00
Eladash
d1e1c14dc3
VFS: Escape path components which end with space or period
2021-01-05 16:15:47 +03:00
Megamouse
11db3151ae
VK refactoring Part 2 ( #9542 )
2021-01-05 10:49:03 +03:00
matoro
187216096d
Build: Add include for building on certain configs
2021-01-04 10:04:51 +03:00
kd-11
3f9b699eef
rsx: Fix ambiguous call to min(float16_t, float)
2021-01-04 02:28:24 +03:00
kd-11
cbe0000d23
Improved Zen chip detection
2021-01-03 19:31:18 +03:00
Eladash
0e278d2299
rsx: Make FP shader cache load lock-free
2021-01-03 01:47:07 +03:00
Eladash
21d725daa5
rsx: Fix shader cache of 2 or less pipelines
2021-01-03 01:47:07 +03:00
Eladash
247e90b3d0
rsx: Shaders cache loading and saving bugfixes
...
* Fixed crash whenever files are missing from the cache.
* Fixed crash whenever files are empty.
* Fixed crash whenever file creation/overwrite of cache files failed. (handled by fs::write_file)
* Fixed crash whenever there are any subdirectories inside the pipelines cache directories.
* Overwrite invalid shader cache files if encountered such.
* Optimizations have been added.
2021-01-03 01:47:07 +03:00
Ani
2b8eb8deb6
rpcs3_version: Bump to 0.0.14
2020-12-31 23:15:54 +03:00
Megamouse
7262f3d0b7
VK: make static chip_family_tables const
2020-12-31 22:57:17 +03:00
Megamouse
6f80fd0063
VK: move static chip_family_tables to cpp
2020-12-31 22:57:17 +03:00
Megamouse
7a51b7a019
VK: move helpers to vkutils
2020-12-31 22:57:17 +03:00
Megamouse
d9eb31000d
VK: refactoring part 1
2020-12-31 22:57:17 +03:00
Chris
f8589de476
Initial playlist-based custom soundtracks support ( #9362 )
...
* Initial playlist-based custom soundtracks support
This is the initial implementation of playlist-based (cellSearch) custom soundtracks support.
It is based on the initial work by @Megamouse and currently uses a directory-based approach to manage albums and utilizes FFMPEG to read audio metadata.
Background: The real PS3 can import music in XMB from USB into its internal storage (/dev_hdd0/music) and additionally stores metadata (artist, trackname, tracknumber, ...) in a database (/dev_hdd0/mms/db/metadata_db_hdd). Games can make use of imported music via cellSearch.
For the time being, this implementation does NOT make use of metadata_db_hdd as the db-format is not well understood and a folder-based approch is easier to use. Users only have to create folders inside /dev_hdd0/music and add music to it to create a "playlist". This playlists contents will be sorted alphabetically. As a result, users could prefix numbers to the audio-files to force a specific order.
The only really supported audio format is MP3. I also added support for AAC, AC3, WMA, ATRAC3 and ATRAC3 plus, however, non of these formats were successfully tested for several reasons. AC3 and WMA are not enabled in the current FFMPEG build which makes reading codec-specific data impossible. We could enable these later if we want to. AAC actually could work but I was not able to get it working in WipeOut HD Fury. My guess is that the game does not support AAC. Finally, I could not find any ATRAC3 (or Plus) music to test with.
This implementation currently only implements parts of cellSearchStartListSearch() and cellSearchStartContentSearchInList(). There are several other functions which are still completely unimplemented and will probably be needed by other games. However, this implementation is a starting-point and is enough for WipeOut and maybe a few other games.
A video which showcases this custom soundtrack support is available here: https://www.youtube.com/watch?v=4nu1OCtONTY
Next steps:
- Utilize sortKey in cellSearchStartContentSearchInList()
- Eliminate TODOs
- Implement the missing other functions
- Test on more games - I do not own many that support custom soundtracks
Signed-off-by: gladiac1337 <gladiac@gmail.com>
Co-authored-by: Megamouse <studienricky89@googlemail.com>
Co-authored-by: Ani <ani-leo@outlook.com>
Co-authored-by: Ivan <nekotekina@gmail.com>
2020-12-31 22:47:09 +03:00
Florin9doi
f1c61067bc
Buzz! emulated controller ( #9504 )
...
* Buzz emulated controller
Co-authored-by: Florin9doi <Florin9doi@users.noreply.github.com>
Co-authored-by: Ivan <nekotekina@gmail.com>
2020-12-31 21:02:03 +03:00
Nekotekina
8a5620592b
Implement util/fifo_mutex.hpp
...
Prototype. Uses 2 bytes.
Added minor fix to slow_mutex.hpp as well.
2020-12-31 20:07:50 +03:00
Nekotekina
5227e65808
vm: implement vm::atomic_op, fetch_op helpers
...
Can help to reduce lambda depth hell a little.
2020-12-30 20:11:02 +03:00
Eladash
c4c6dc19a5
memory viewer: Implement SPU mode, fix address GOTO
2020-12-30 15:42:56 +03:00
Eladash
7fc26b1fab
rsx: Implement Texture LOD Bias addend setting
2020-12-30 15:37:21 +03:00
Eladash
c0e121abef
rsx: Fix RSXTexture.h spacing
2020-12-30 15:37:21 +03:00
Eladash
7db13fdeff
rsx: Move Anisotropic Filter Override to RSX state
2020-12-30 15:37:21 +03:00
Malcolm Jestadt
c952e99f3e
SPU LLVM: Fix edgecase in icelake codegen
2020-12-29 22:01:11 +03:00
Nekotekina
35322b5d14
Remove deprecated _bit accessor from v128
...
Complicated (a lot of code), confusing (ambiguous)
2020-12-29 21:04:28 +03:00
Nekotekina
6b96807112
Reimplement utils::popcnt64
...
Implement utils::popcnt128
2020-12-29 15:28:02 +03:00
JohnHolmesII
e04b2eebc3
Warnings: Silence false warnings about fatal code paths
2020-12-29 14:17:34 +03:00
JohnHolmesII
02b684b810
Warnings: Warnings use kebab case, Mr. Kot
2020-12-29 14:17:34 +03:00
kd-11
18c120ab9f
rsx: Revert an accidental deletion
2020-12-28 21:49:11 +03:00
kd-11
f87dd91b52
rsx: Allow attempted fetch of non-existent surface
2020-12-28 21:49:11 +03:00
RipleyTom
4a8a161a43
Improve skylander portal emulator
2020-12-27 22:20:58 +01:00
Nekotekina
e3dec420a2
vm_native.cpp: conditionally define c_madv_free
2020-12-27 12:19:50 +03:00
Nekotekina
1e32311a65
Use MAP_NORESERVE when available in mmap (Linux)
...
Used in: memory_reserve, memory_decommit (vm_native.cpp)
2020-12-27 10:20:42 +03:00
Marin Baron
92e5bb88e8
Remove std typeinfo
2020-12-27 00:30:16 +03:00
Eladash
66581d115b
vm: Fix access violations on super memory, support super memory in vm::get_addr
2020-12-26 17:56:49 +03:00
Florin9doi
733f31f90e
Allow USB passthrough for THQ uDraw GameTablet
2020-12-25 14:27:24 +03:00
kd-11
a96b4412d3
rsx: Do not rely on program env state, instead, always use program ucode analysis results when doing codegen
...
- Some things can be present in program env but not ucode state
e.g A texture can be active and bound in a redirected manner but not actually be used in ucode
In such a case, only the ucode analysis or decompilation can decide whether to inject decoding routines
2020-12-25 02:39:08 +03:00
kd-11
bee76fc8d1
rsx: Refactor shader codegen and fix shadow sampling on depth-float
2020-12-25 02:39:08 +03:00
kd-11
d9cb1a6319
vk: Fix more spec violations
2020-12-25 02:39:08 +03:00
Nekotekina
567d23d856
Implement util/auto_typemap.hpp
...
Used in vm::block_t as an example.
2020-12-24 14:55:25 +03:00
Eladash
c94a98e15a
Fix minor typo
2020-12-23 20:50:33 +03:00
Eladash
72e6e87d82
Fix SPU ELF loader
2020-12-23 20:50:33 +03:00
Eladash
0055d84bd6
Partial revert of 43c87e99b0
2020-12-23 08:25:56 +03:00
Eladash
d17d22139e
SPU Debugger: Print reservation data
2020-12-23 08:25:56 +03:00
Eladash
87b6284275
memory viewer: Only allow "words" steps in powers of 2
2020-12-23 08:25:56 +03:00
Eladash
2c6b974f24
Fixup memory viewer SPU headers for RawSPU
2020-12-23 08:25:56 +03:00
Eladash
020acc8235
GUI: Rewrite GOTO address tools in debugger tools
2020-12-23 08:25:56 +03:00
Nekotekina
a8e0d261b7
types.hpp: more cleanup
...
Also fix compilation.
2020-12-22 19:08:09 +03:00
Nekotekina
6357b9a04f
perf_meter.cpp: register only named threads
...
Can workaround some possible problems.
2020-12-22 14:32:30 +03:00
Nekotekina
43a58df8a0
Butcher narrow cast a little (don't print value).
...
Also remove some forward declarations from util/types.hpp
If they don't work properly, it's easier to remove them.
2020-12-22 14:32:30 +03:00
Nekotekina
b7bf316c1a
Don't randomly include "stdafx.h"
...
It's file for precompiled headers.
Include what is used, don't rely on transitive includes.
2020-12-22 14:32:30 +03:00
Nekotekina
41ee792f95
MSVC: remove MemLeak build support
...
There are better memleak detection tools.
1) Requires to guard placement new and external libs
2) Doesn't work thoroughly
2020-12-22 14:32:30 +03:00
Fro Zen
acadaeed3a
Change skylander variants to use hex
2020-12-22 08:58:36 +01:00
Jan Beich
96bde3df81
atomic.hpp: revert Clang < 11 workaround for u128
2020-12-22 09:00:34 +03:00
Nekotekina
bd269bccaf
types.hpp: remove intrinsic includes
...
Replace v128 with u128 in some places.
Removed some unused files.
2020-12-21 21:11:25 +03:00
Nekotekina
5f618814f6
atomic.hpp: use u128 as storage for masks/values
2020-12-21 13:51:23 +03:00
Eladash
43c87e99b0
Debugger: Switch from NoThread when the emulation is running
...
And fix UpdateUnitList() when the emulation is stopped at initial startup.
2020-12-21 13:46:26 +03:00
Eladash
74a09a6338
PPU memory must be exec memory when using debugger's "Next Instruction" feature
2020-12-21 13:46:26 +03:00
Eladash
2b9c407dc3
Mask PC in debugger_frame::keyPressEvent for SPU
...
SPU only has 256kb of memory, need to work with this.
2020-12-21 13:46:26 +03:00
Eladash
59ed222205
Disasm: read instruction contents only once
...
Memory is volatile and may be changed by guest threads, ensure the decoded instruction matches with the data.
2020-12-21 13:46:26 +03:00
Eladash
2c06043617
Debugger: correctness fixes and cleanup
...
* Remove m_current_choice, it's not correct to rely on thread name entry. In extreme corner cases a newly thread can be created, old destroyed with the same entry name. (reoccuring LV2 SPU/PPU ID)
* Remove m_no_thread_selected, can be easily replaced with std::weak_ptr expired() function and is more accurate this way.
* In HandleBreakpointRequest: only remove breakpoint on valid PPU thread and not any thread! also fix potential nullptr deref if thread has recently been destroyed.
2020-12-21 13:46:26 +03:00
Eladash
ef884642e4
Cleanup disasm classes a bit
2020-12-21 13:46:26 +03:00
kd-11
e449111c33
vk: Fixup for renderpass issues
2020-12-19 12:58:44 +03:00
Megamouse
066e53da55
minor cleanup
2020-12-19 08:33:53 +01:00
Eladash
c74b2cb085
memory viewer: Fix resizing down
2020-12-18 21:00:09 +01:00
Nekotekina
eec11bfba9
Move align helpers to util/asm.hpp
...
Also add some files:
GLTextureCache.cpp
VKTextureCache.cpp
2020-12-18 18:07:42 +03:00
Nekotekina
d254a5736b
Fix bug with vector arg alignment in BIND_FUNC and callbacks.
2020-12-18 18:07:42 +03:00
Megamouse
b655e4aa47
Emu: implement on_exit callback
2020-12-18 16:05:40 +01:00
Nekotekina
1adec3d8e5
Hotfix: Emu.Quit after Emu.Stop
2020-12-18 13:37:14 +03:00
Nekotekina
db9b7db531
Cleanup and move sysinfo.h -> util/sysinfo.hpp
2020-12-18 12:55:54 +03:00
Nekotekina
05099e2ae1
Replace uint64_t with u64
2020-12-18 12:23:53 +03:00
Nekotekina
77352a2a86
Replace uint32_t with u32
2020-12-18 12:23:53 +03:00
Nekotekina
ae633292c0
Replace int32_t with s32
2020-12-18 12:23:53 +03:00
Nekotekina
d6042cf891
Replace uint16_t with u16
2020-12-18 12:23:53 +03:00
Nekotekina
534c63bf57
Replace uint8_t with u8
2020-12-18 12:23:53 +03:00
Nekotekina
fb29933d3d
Add usz alias for std::size_t
2020-12-18 12:23:53 +03:00
Nekotekina
360c4d1554
Simplify f16 type
2020-12-18 12:23:53 +03:00
Nekotekina
4cfa9b11f3
Move busy_wait() to asm.hpp
2020-12-18 12:23:53 +03:00
Megamouse
908465b274
memory viewer: improve layout and resize
2020-12-18 09:58:12 +01:00
Megamouse
a7f10d142e
fix warning
2020-12-18 09:58:12 +01:00
Megamouse
e855673802
memory viewer: check width and height in image viewer
2020-12-18 09:58:12 +01:00
Megamouse
112ac7bd13
memory viewer: fix RGB Image viewer crash
2020-12-18 09:58:12 +01:00
Megamouse
ec7963df3d
memory viewer: use enum for color formats
2020-12-18 09:58:12 +01:00
Megamouse
343d006ae2
memory viewer: more cleanup
2020-12-18 09:58:12 +01:00
Megamouse
ed8e5498d1
memory viewer: fix horrible overflow that freezes rpcs3
2020-12-18 09:58:12 +01:00
Megamouse
3cfead4ca6
memory viewer cleanup
2020-12-18 09:58:12 +01:00
Eladash
c8947eee6a
GUI: Make memory viewer address edit accept 0x/0X prefixes
...
Max length is 10, added regexp validator accordinally.
2020-12-17 22:57:13 +01:00
Eladash
6c1ca7d797
GUI: Polish the memory viewer
2020-12-17 22:57:13 +01:00
Eladash
2172974db9
Link the memory viewer with the debugger
2020-12-17 19:36:35 +01:00
Eladash
ba03df8511
GUI: Improve PS3 decryption tool
2020-12-17 18:49:04 +01:00
kd-11
fb47d1f788
vk: Register ampere GPU PCI IDs
2020-12-17 19:56:48 +03:00
Nekotekina
c16fb61bea
fixed_typemap.hpp: Fix assignment operator for g_ptr
...
Maybe RPCS3 hangs will finally be gone.
2020-12-17 16:47:25 +03:00
kd-11
235db57f0e
rsx: Do not reset vertex program texture mask when updating ucode analysis
...
- Fixes incorrect texture type detection in some games after program env/ucode separation
2020-12-17 09:36:20 +03:00
kd-11
cfbde005fb
vk: Force ampere GPUs to use the slower but spec-compliant depth-color resize route
...
- TODO: More investigation and optimizations
2020-12-17 09:36:20 +03:00
kd-11
0a865bd9dc
vk: Workaround for validation layers bug
2020-12-17 09:36:20 +03:00
Nekotekina
6b3f722ff0
Hotfix: useless error
2020-12-16 11:57:29 +03:00
Fro Zen
3dbecada4e
Almost all Skylander variants ( #9443 )
...
* Update skylander_dialog.cpp
* Fix formatting, sorted
* Support for skylanders variant
* Remove duplicate Legendary Hand of Fate
* Removed accidental Series 2 Dark Spyro
There is no series 2 dark spyro, also im removing these as im finding them so sorry if theres tons of commits
* Add LightCore Hex
* Remove Vehicle tag
* Add Big Bang Trigger Happy
Co-authored-by: RipleyTom <RipleyTom@users.noreply.github.com>
2020-12-16 11:02:59 +03:00
Megamouse
d21f87af5d
Fix unresponsive UI during SPU compilation
2020-12-16 11:01:51 +03:00
Megamouse
0bfec59af8
Fix stop during shader compilation
2020-12-16 11:01:51 +03:00
kd-11
035a76f26d
Fix build
2020-12-16 10:10:06 +03:00
kd-11
42f4e831a2
vk: Clean up some leftovers from shader decompiler rewrites
2020-12-16 10:10:06 +03:00
kd-11
d3686dbb75
rsx: Add some texture upload statistics to the texture cache
2020-12-16 10:10:06 +03:00
kd-11
fb1c790350
rsx: Make debug overlay dynamic
2020-12-16 10:10:06 +03:00
kd-11
0ef5743261
rsx: Fix sampler descriptor updates for framebuffer resources
...
- Each desc manages its own lifetime now instead of relying on global timestamp check
- Fixes situation where same object remains active without update for long
2020-12-16 10:10:06 +03:00
Nekotekina
e82bef425f
vm: fix warnings and add narrow cast for u64 ptrs
2020-12-15 20:10:16 +03:00
Nekotekina
24c246a9f6
Fix potential thread_pool crash on exit
...
Minor issue.
2020-12-15 20:01:26 +03:00
Nekotekina
e39348ad96
Make lf_queue<> compatible with atomic_wait
2020-12-15 19:19:36 +03:00
Nekotekina
ca5f0444bf
shared_ptr.hpp: add wait support for atomic_ptr<>
...
As well as default mask and value transformation function overload.
2020-12-15 12:52:21 +03:00
Nekotekina
4a883ba6ea
atomic.hpp: use SFINAE for waitable atomic detection
...
Add default_mask<> variable.
Refactor get_value<>().
2020-12-15 12:50:44 +03:00
Eladash
bfe1a8673a
PPU: Allow HLE execution from pure instruction decoder type interpreter
2020-12-15 11:18:51 +03:00
Eladash
0445ef393f
FW SPRX install: Fix IDM ID's leak
2020-12-15 11:16:45 +03:00
Eladash
7eb16e13bb
PRX loader: Fix libfs_155.sprx loading
...
Fix relocations' segments referencing when there are "empty" (memsize=0) LOAD segments.
2020-12-15 11:16:45 +03:00
Megamouse
03ad5c6830
Salvaging code ( #9432 )
...
* Minor input refactoring
* fix sys_config_unregister_io_error_listener log message
* Remove unused variables in RepaintTextColors
Co-authored-by: GermanAizek <GermanAizek@yandex.ru>
2020-12-14 14:33:43 +01:00
Megamouse
ab23e5ca0e
Minor tooltip grammar fix
2020-12-14 09:01:07 +03:00
Megamouse
35ecd00559
Remove BOM from new files
2020-12-14 09:01:07 +03:00
Eladash
e5603fec1e
Firmware libraries settings overhaul
2020-12-13 21:52:24 +03:00
Nekotekina
e321765c54
Split BEType.h to util/v128.hpp and util/to_endian.hpp
2020-12-13 16:34:45 +03:00
Nekotekina
62fdcf50ea
vm: initialize g_pages at vm::init
...
Can reduce compile time/overhead.
2020-12-13 15:39:36 +03:00
Nekotekina
09d293592e
shared_ptr.hpp: fix is_same_ptr<>() trait
...
Implemented as constexpr function.
2020-12-13 15:39:36 +03:00
kd-11
f83c2f0b6b
rsx: Restructure and simplify some header include chains
2020-12-13 15:38:35 +03:00
kd-11
d775c8dc73
rsx: Move shader analysis+prefetch to the end of the draw call
2020-12-13 15:38:35 +03:00
Fro Zen
8e07b19bc7
Add variant support for Skylanders ( #9424 )
...
* Update skylander_dialog.cpp
Co-authored-by: RipleyTom <RipleyTom@users.noreply.github.com>
2020-12-13 14:30:38 +03:00
Luke Barr
cb8ef46ec7
Initial DualSense Support ( #9308 )
...
* Initial DualSense Support
* Add Vibration Support
* Add CRC32 Validation to Incoming Bluetooth Packets
Cleanup report sizes
* Consistency, remove button comments, add two buttons.
Co-authored-by: Ani <ani-leo@outlook.com>
2020-12-13 00:00:45 +01:00
Fro Zen
ee814cfd0c
Update skylander_dialog.cpp ( #9419 )
2020-12-12 19:16:15 +03:00
Nekotekina
a6a5292cd7
Use uptr (std::uintptr_t alias)
2020-12-12 16:29:55 +03:00
Nekotekina
b59f142d4e
Move types.h to util/types.hpp
2020-12-12 15:12:01 +03:00
Nekotekina
666a18f5e5
Remove ceil2/floor2 from types.h
2020-12-12 15:12:01 +03:00
Nekotekina
dff4392c10
Move error_code to ErrorCodes.h
2020-12-12 15:12:01 +03:00
Nekotekina
b09b7c1184
Remove any_pod<> from types.h
...
Add simplified any32 to GCM.h
Add simplified cmd64 to PPUThread.h
2020-12-12 13:12:39 +03:00
Nekotekina
6e05dcadb6
Reduce std::numeric_limits dependency
...
Please, stop pretending...
You need these templates for generic code.
In other words, in another templates.
Stop increasing compilation time for no reason.
2020-12-12 12:35:18 +03:00
Nekotekina
bc7acf9f7a
RSX: remove overly long integer sequence (opcode_list)
...
Convert to constexpr array and move to gcm_printing.cpp
2020-12-12 11:38:35 +03:00
Nekotekina
cb19316a17
Fix u128 constructors (MSVC)
2020-12-12 09:54:39 +03:00
Nekotekina
33c3977036
endian.hpp: minor simplification
...
And stop pretending...
2020-12-11 22:00:26 +03:00
Nekotekina
7a015b6fc0
VKMemAlloc.cpp: use shared_mutex in vk_mem_alloc.h
...
Because it allows to use custom implementation.
Also fix compilation.
2020-12-11 19:05:11 +03:00
Nekotekina
aa3aef4beb
std::chrono cleanup: always use steady_clock
2020-12-11 19:01:56 +03:00
Nekotekina
72284b4530
Use atomic_t<> in VKMemAlloc
2020-12-10 18:58:11 +03:00
Nekotekina
65c04e4ddd
Remove constexpr from ppu/spu decoders.
...
We don't need them at compile time (yet).
But can reduce compile time and complexity.
2020-12-10 15:06:01 +03:00
Nekotekina
b382d3b3e9
Remove ASSUME macro
...
It's dangerous and sometimes bluntly misused feature.
Its optimization potential is near-zero.
2020-12-10 14:08:02 +03:00
Nekotekina
36c8654fb8
Remove HERE macro
...
Some cleanup.
Add location to some functions.
2020-12-10 12:30:22 +03:00
kd-11
d25c401aec
vk: Validate image creation inputs
...
- Should avoid things like res scaling breaking when very large scaling is in use
2020-12-09 21:30:08 +03:00
kd-11
aac874a842
vk: Add even more D32_SFLOAT missing locations
2020-12-09 21:30:08 +03:00
Nekotekina
5d934c8759
Improve narrow() and size32() with src_loc detection
2020-12-09 16:26:20 +03:00
Nekotekina
e055d16b2c
Replace verify() with ensure() with auto src location.
...
Expression ensure(x) returns x.
Using comma operator removed.
2020-12-09 15:43:38 +03:00
Nekotekina
38745e5782
SPU ASMJIT: fixup mfence replacement
2020-12-09 11:15:40 +03:00
RipleyTom
d0c271e534
Simplify g_pages
...
This was done because otherwise msvc runs out of heap space on azure.
2020-12-09 11:15:08 +03:00
kd-11
f8d2830ac7
vk: Properly register D32_SFLOAT as a depth-stencil format ( #9396 )
2020-12-09 02:06:27 +00:00
Megamouse
a7e5c255b4
Qt 5.15.2 ( #8867 )
...
* Qt15: replace deprecated stuff
* Use Qt 5.15.1
* Move windows to Qt 5.15.2
* Move Ubuntu to Qt 5.15.2
2020-12-08 22:22:08 +01:00
Nekotekina
062c605eb1
atomic.hpp: fixup (rsp addressing)
2020-12-08 08:51:27 +03:00
Eladash
2602be426f
Allow emulation to work without firmware ( #9367 )
...
* Allow emulation to work without firmware
* Fix HLE prx path detection.
* Fix manual list loading bugs.
* Fix HLE gcm
* GUI: Fix fonts search
* GUI: Hardcode sprx list
Do not depend on /dev_flash/sys/external/ contents.
2020-12-07 20:10:34 +03:00
RipleyTom
51dcb4a79d
Remove bom from .hpp files
2020-12-07 20:03:44 +03:00
Nekotekina
24e4e329ed
atomic.hpp: add atomic_t<bool> specialization
...
May be required in future, plus adds/hides some methods.
2020-12-07 17:13:12 +03:00
Nekotekina
eb66302907
atomic.hpp: replace std::atomic with atomic_t
...
Dual dependency is nothing good.
2020-12-07 17:13:12 +03:00
Nekotekina
b16cc618b5
atomic.hpp: add some features and optimizations
...
Add atomic_t<>::observe() (relaxed load)
Add atomic_fence_XXX() (barrier functions)
Get rid of MFENCE instruction, replace with no-op LOCK OR on stack.
Remove <atomic> dependence from stdafx.h and relevant headers.
2020-12-07 17:13:12 +03:00
Nekotekina
77aa9e58f2
shared_ptr.hpp: add trivial conversion for shared/single types
...
These conversions don't exist in std::shared_ptr-alike types.
But I don't want to bother with == operators until we have proper C++20.
Removed trivial conversion for atomic_ptr because it's heavyweight.
2020-12-07 15:33:28 +03:00
kd-11
3a0b3a85a5
rsx: Separate program environment state from program ucode state
...
- Allows for conservative texture uploads
- Allows to update a program object without running full ucode analysis for no reason
2020-12-07 00:45:27 +03:00
Eladash
15a12afe25
Debugger: Implement code flow tracking
2020-12-06 15:32:13 +03:00
Eladash
427cf91447
Debugger: rewrite GetPc()
2020-12-06 15:32:13 +03:00
RipleyTom
af8c661a64
Remove BOM markers
2020-12-06 15:30:12 +03:00
Nekotekina
d1e7837422
atomic_t: cleanup type requirements
...
Add C++17 requirements.
Remove alignment requirements (auto-align type).
What's missing is to detect padding and forbid it.
2020-12-04 19:11:36 +03:00
Nekotekina
8efc22bd45
atomic.hpp: simplify and unify bit test instructions
...
Also make them available on all platform.
Rename some rare methods.
2020-12-04 14:33:38 +03:00
Nekotekina
983439076b
shared_ptr.hpp: fixups and updates
...
Fix atomic_ptr load() edge case.
Implement atomic_ptr::peek_op() to make possible to reduce load() overhead.
Implement atomic_ptr::compare_exchange() and friends.
Implement null_ptr constant, remove nullptr_t assignment/construction.
2020-12-04 14:10:53 +03:00
Nekotekina
019f566239
atomic.cpp: more phase splitting in notify_all()
2020-12-04 14:10:53 +03:00
Nekotekina
332410d20b
shared_ptr.hpp: improve atomic_ptr methods
2020-12-04 14:10:53 +03:00
JoãoPaulo
c2a85bde08
Update FW 4.87 Latest Version ( #9366 )
...
Updates the latest FW version according to: https://www.playstation.com/en-us/support/system-updates/ps3/
List of changes:
・ Updated blu-ray keys for new movie releases
・ Minor security fix
2020-12-03 18:16:38 +01:00
Nekotekina
13a0b88755
atomic.cpp: improve hashtable access
...
Simplified, tried to use all ptr bits.
Try to prevent self-collisions (bug).
Hashtable size doubled (to 8 MiB).
2020-12-01 10:19:31 +03:00
Nekotekina
32f39fec1c
Make cpu_counter::remove() async
...
Remove both mutex and assertion from it.
2020-12-01 10:18:41 +03:00
Nekotekina
cad3a6c547
sceNp.cpp: fix some UTF-8 string mismatch
2020-11-30 03:21:34 +03:00
kd-11
2aa5c437e8
rsx: Fix upscaled image reconstruction
...
- Base the upscaling on the real source and not the "attr" parameter.
- In case of reconstruction, the source is much larger than the subslice in "attr"
2020-11-30 01:20:17 +03:00
kd-11
67f48ce21c
rsx: Fix uncaught depth-func changes
...
- Depth func of always or never usually disqualifies depth testing.
Invalidate contested surfaces when depth func is changed.
2020-11-30 00:46:36 +03:00
kd-11
845a7d9968
Fix RSX replay thread lifecycle
2020-11-29 22:39:52 +03:00
Nekotekina
e0635cf65c
Remove unneeded non-ASCII character (unedat.cpp)
2020-11-29 16:18:22 +03:00
Nekotekina
3b8e3a9714
stdafx.h: remove BOM from custom included headers
...
Also add warnings about adding them.
2020-11-29 15:35:05 +03:00
Nekotekina
2bee096246
Try to set 2-3 GiB working space and show error if it's failed (Windows)
2020-11-27 14:49:07 +03:00
Nekotekina
872655369a
shared_ptr.hpp: fix critical bugs
...
Fix array initialization.
Fix reference counting.
Fix offset to refctr.
Add some features.
2020-11-27 14:32:41 +03:00
Nekotekina
b5d498ffda
Homebrew atomic_ptr rewritten (util/shared_ptr.hpp)
...
It's analogous to C++20 atomic std::shared_ptr
The following things brought into global namespace:
single_ptr
shared_ptr
atomic_ptr
make_single
2020-11-26 20:11:26 +03:00
Nekotekina
bd90e3e37f
atomic.cpp: shrink and simplify main hashtable
...
Reduce collision detection to 1 or 0 for now.
I think it should be offloaded to notifiers.
2020-11-26 20:11:26 +03:00
Nekotekina
8b6d615aa6
atomic.hpp: remove/deprecate incomplete notify features
...
Notification with "phantom value" could be useful in theory.
As an alternative way of sending signal from the notifier.
But current implementation is just useless.
Also fixed slow_mutex (not used anywhere).
2020-11-26 06:31:36 +03:00
Megamouse
9e352da052
Handle some undefined behavior regarding null pads
2020-11-26 00:45:49 +01:00
Nekotekina
95b8467a76
perf_meter.hpp: move logic to noinline function
...
May improve performance if perf meter is disabled.
2020-11-25 10:41:17 +03:00
Nekotekina
2b674d4d8c
utils::shm: allow 2M hugepages on demand
2020-11-25 10:41:17 +03:00
Nekotekina
487b572aa6
Linux: remove assertions on MADV_HUGEPAGE
...
It's a hint and is allowed to fail.
2020-11-25 10:41:17 +03:00
Nekotekina
600c0ea5ba
atomic.cpp: fix windows/std path
...
Always check condition after rearming internal semaphore.
2020-11-25 10:41:17 +03:00
Nekotekina
00e64920c8
Implement "slow mutex" without spin-waiting.
...
Benefits: only 1 byte.
Testing atomic wait.
2020-11-25 10:41:17 +03:00
Megamouse
9efedbe76a
Minor changes related to Emu.Stop()
2020-11-25 00:11:07 +01:00
Nekotekina
d8e9382573
asm.hpp: constexpr refactoring
...
Removed asm (what an irony), made many functions constexpr.
Removed some unused function, readding them should be trivial.
2020-11-24 13:20:40 +03:00
Nekotekina
ab248e170c
vm_native.cpp: add MADV_HUGEPAGE
...
It enables Transparend Huge Pages for some regions on Linux.
Although it can't be actively useful, it seems to do something.
Maybe it's even harmful for recompilers.
2020-11-24 12:31:11 +03:00
Nekotekina
27097cbcfe
atomic.hpp: alter atomic_storage<>::store a bit
...
Always fallback to exchange. May improve codegen on gcc.
2020-11-24 12:31:11 +03:00
Nekotekina
43952e18e2
Implement prefetch_write() and prefetch_exec() wrappers
...
Do some refactoring to prefetch_read() in util/asm.hpp as well.
Make all these function constexpr because they are no-ops.
2020-11-24 12:31:11 +03:00
Megamouse
5076da8f77
Fix auto exit
...
- Don't quit on stop if force boot was set
- Don't stop the emulator on gs_frame close when it was already stopped. This would remove the force boot flag by mistake.
2020-11-24 11:17:03 +03:00
kd-11
8228a4adcd
gl: Disable depth test before rendering text to the backbuffer which does have a Z buffer
2020-11-24 11:10:43 +03:00
Eladash
3f028fbb83
Fix SPU LS MMIO
2020-11-24 03:44:30 +03:00
Nekotekina
f0cba1371c
vm: adjustments
...
Increase max range lock size (less than 512 MiB)
Remove "range_executable" flag, make it reserved.
2020-11-24 01:09:04 +03:00
Nekotekina
14fa96fdef
atomic.cpp: don't use empty notify callback
...
Instead, allow setting it to null and check for null.
Similar could be done for wait cb, but it's set for all named threads.
2020-11-24 01:09:04 +03:00
kd-11
f1c65dcefc
vk: Improve support for RDNA
...
- Add support for RDNA2
- Add RDNA MSAA workaround
2020-11-23 19:20:00 +03:00
Nekotekina
16cc88dd0e
atomic.hpp: fix atomic_wait::list regression
...
Typo-regressions. Also improve static asserts.
2020-11-23 09:26:25 +03:00
Nekotekina
280f5f0b54
atomic.hpp: redefine op::ne to actually mean "not equal"
...
WTF is "native endianness", it's native by default.
2020-11-23 09:24:16 +03:00
Nekotekina
f85c8584b0
Attempt to fix #9316
2020-11-22 12:57:50 +03:00
Nekotekina
6cf50f8f6c
Second attempt to fix hanging RPCS3 process
...
Now fix exit logic a bit.
Remove Init() call from Stop().
Remove Stop() call from Quit().
2020-11-22 12:45:19 +03:00
Nekotekina
d70ab11477
atomic.cpp: remove redundant constexpr
...
Static initialization is all-zeros anyway.
But constexpr was killing my intellisense.
And probably also affected compile time.
Also make some internal structures hidden ("static").
2020-11-22 12:07:49 +03:00
kd-11
cab4c78b7b
rsx: Some shader compiler threads tuning
...
- Allow more threads for wide CPUs
- Simplify 'auto' selection a bit
2020-11-21 20:43:15 +03:00
kd-11
14358d5e84
qt: Add shader compiler threads to GUI
2020-11-21 20:43:15 +03:00
kd-11
7553429130
gl: Thread shader source compilation dispatch
...
- glCompileShader is in itself much slower than anticipated
2020-11-21 20:43:15 +03:00
kd-11
3ddfa288cf
rsx: Use multithreaded shader compiler backend
2020-11-21 20:43:15 +03:00
Nekotekina
e89a568765
Attempt to fix Emu.Quit()
...
There was some kind of "initialization order fiasco" of g_fxo.
Not only should it be used after main, but also destroyed before exit.
2020-11-21 18:27:16 +03:00
Nekotekina
71f1021648
Fix thread pool entry point and get_cycles()
...
Fix possible race between thread handle availability.
Don't treat zero thread as invalid one.
Now entry point is full is assembly.
Attempt to fix #9282
Also fix some TLS.
2020-11-21 17:18:42 +03:00
Nekotekina
60cff6f3d4
Attempt to fix #9271
2020-11-21 07:09:48 +03:00
Nekotekina
5f010c2f4c
atomic.cpp: optimize "cond" allocation with TLS
...
Billions of events can reduce to thousands, saving CPU time a few s.
Only 4 slots are available (arbitrarily), and only 1 is usually used.
Other slots are used only for waiting on multiple atomics.
2020-11-20 19:13:22 +03:00
Nekotekina
6c18e00977
atomic.cpp: use deterministic "cond" allocation
...
Takes ~80 ns instead of ~40 ns, same about deallocation.
Loops don't exist here, only 4-level semaphore tree.
Worst case only happens with concurrence, not from looping.
This optimization is not really necessary at current state of RPCS3.
This is more like to test C++ compilers and MSVC u128 implementation.
2020-11-20 15:04:17 +03:00
Nekotekina
72ac1aa537
atomic.cpp: use some actual hash for hashtable (std::minstd_rand)
...
Should only take about 5ns for initialization.
Should also make collisions almost impossible.
I also suspect I fixed some bad bug in process...
2020-11-20 15:04:17 +03:00
Nekotekina
5bcaa25c02
CPU: remove descheduled threads from suspend_all list
2020-11-20 13:53:34 +03:00
Eladash
85880ffded
SPU: Log STOP full opcode ( #9292 )
...
Co-authored-by: Ani <ani-leo@outlook.com>
2020-11-20 13:53:16 +03:00
Megamouse
5b207c3b95
hotfix for infinite loop when booting game data
2020-11-19 23:53:10 +01:00
Megamouse
3087f15dd8
Update disc boot detection and hope it works
2020-11-19 21:55:06 +01:00
Nekotekina
292af1e4cd
CPU: use u128 in bit counter
...
Apparently, u64 was not enough.
2020-11-19 16:05:08 +03:00
Nekotekina
d4d5dc99f3
Fix perf_meter<> after adding thread pool.
...
Print and reset sorted information after emulation stop/pause.
Print useless average value.
2020-11-19 14:44:58 +03:00
Nekotekina
3e1344e4e4
vm.cpp: minor optimization for filling stack guards
...
Use REP STOSQ on all compilers.
2020-11-19 14:44:58 +03:00
Nekotekina
6d37bc62a5
CPU: remove cpu_counter from g_fxo
...
Convert it to a namespace, simplify add/remove functions.
Don't add() threads just creates, they are trapped in check_state() anyway.
Don't add() threads which are leaving check_state() because stopped.
2020-11-19 09:46:22 +03:00
Nekotekina
e9f7c100a0
CPU: update suspend interface (dummy)
2020-11-18 19:15:56 +03:00
Nekotekina
190676c982
CPU: Fix g_suspend_counter waiting logic
2020-11-18 14:38:01 +03:00
Eladash
28cbba5a7d
SPU LLVM: fix AND instruction family ( #9290 )
...
Incorrect immediate test (looks like copypasta)
2020-11-18 14:36:26 +03:00
kd-11
0e7a705254
rsx: Resolution scaling overhaul
...
- Enforce square pixels instead of per-axis scaling
2020-11-18 09:29:34 +03:00
Nekotekina
68931b4c43
Debugger: fill stack guard with STACKGRD
2020-11-17 16:32:59 +03:00
Nekotekina
65c81c5e83
Fix memory viewer for SPU LS
2020-11-17 15:22:04 +03:00
Nekotekina
ccd0d2046d
SPU: increase max SPU count
...
According to max SPU TG count.
2020-11-17 15:22:04 +03:00
Nekotekina
0fec99e75b
SPU: absolutely unacceptable hack for SPU LS
...
Make normal threads inaccessible in PS3 memory.
2020-11-17 15:22:04 +03:00
Nekotekina
f8d1f070f5
sys_memory: HORRIBLE HACK for sys_memory_get_page_attributes
2020-11-17 15:22:04 +03:00
Nekotekina
3dd48a24ce
atomic.cpp: remove tiny redundancy
2020-11-17 15:22:04 +03:00
Nekotekina
984e97cbdc
Potential fix for Linux compilation
2020-11-17 15:22:04 +03:00
Eladash
50ea1a12c9
Debugger: Fix scrolling in first registers panel
2020-11-17 09:39:39 +01:00
Eladash
992a372fc7
cellGame fixes
2020-11-17 09:04:35 +01:00
Nekotekina
d7e1cf7dd2
vm: respect initial protection for allocation mapping
...
Unused yet.
2020-11-17 05:33:46 +03:00
Nekotekina
ea5f5aea5f
vm: memory locking rewritten
...
Added vm::lock_sudo method (wrapper for utils::memory_lock).
Put locking outside of vm::g_mutex scope.
Prelock sudo memory for RSX, vm::stack, vm::main.
Prelock sudo memory for shared memory objects.
Don't check for TSX path.
2020-11-16 12:46:15 +03:00
Nekotekina
eaf0bbc108
SPU: don't allocate SPU LS in vm::main
...
Create its own shared memory object.
Use vm::spu to allocate all SPU types.
Use vm::writer_lock for shm::map_critical.
2020-11-16 12:46:15 +03:00
Eladash
b1710bb712
SPU Debugger: Implement float registers view + General debugger fixes ( #9265 )
...
* SPU Debugger: Fix try_get_insert_mask_info
* Debugger: Always update thread state on context's data change
No longer needing to press on thread's instructions for actions to work!
2020-11-15 08:45:28 +03:00
Nekotekina
dfae7bd073
SPU: Fix some stat printing
2020-11-15 04:41:16 +03:00
Nekotekina
333fe9a561
atomic.cpp: fix notification on windows
2020-11-15 04:40:44 +03:00
Nekotekina
badb3dc2dd
atomic.cpp/threads: remove old wait callback
...
Add new wait callback which simply collects statistics.
Shift workarounds towards actual problem detection.
2020-11-14 18:16:27 +03:00
Nekotekina
3ac819ee70
atomic.cpp: fix waiting on multiple variables
...
Silly bugs are so silly...
2020-11-14 17:25:02 +03:00
Nekotekina
00f877e812
atomic.cpp: fix rare overload scenario
...
If slot allocation fails, increase reference counter in every slot.
This prevents search routine from "losing" some slots.
2020-11-14 13:56:23 +03:00
Nekotekina
1e269751bf
Temporarily disable memory locking if TSX is not used
...
It's a very heavy operation that could cause some problem under mutex lock.
2020-11-14 11:12:58 +03:00
Nekotekina
5b69eda39a
Fix suspend_all bug (TSX, TSX-FA)
...
Could cause freezes.
2020-11-14 10:56:05 +03:00
Nekotekina
71ca413067
Don't add lonely cpu_flag::memory on TSX path (bug)
2020-11-14 09:03:33 +03:00
Nekotekina
ab365fe494
Fixed thread pool a bit
...
Use 128-bit allocator instead of queue.
When pool is full (128), threads just terminate as before.
2020-11-13 13:32:44 +03:00
Nekotekina
e48f160a29
atomic.cpp: continuation of fixing all-ones masks
...
Also added missing const noexcept.
2020-11-13 12:40:02 +03:00
Nekotekina
cfda4d0ade
atomic.cpp: optimize raw_notify() for unspecified pointer mode
...
Remove unnecessary optimization from cond_alloc().
Optimistic case was absolutely dominating anyway.
Although the whole function is a dirty hack.
Now scanning through all threads is faster.
2020-11-13 07:05:33 +03:00
RipleyTom
debfae06a8
Improve disconnected state handling of dns queries
2020-11-13 07:05:06 +03:00
RipleyTom
e6f2f8ad0d
Add some error checking in sceNp2.cpp
2020-11-13 05:28:00 +03:00
Nekotekina
67785a918c
Implement simple thread pool
2020-11-13 03:32:24 +03:00
Nekotekina
3888b0429c
atomic.cpp: print some stats on stop
2020-11-12 05:52:22 +03:00
Nekotekina
70761a4ef0
atomic.cpp: fix notification bug from few commits before
...
Make sure forced notification ignores mask comparison.
Also fix masks provided by smaller types to correct ones.
2020-11-12 05:01:44 +03:00
Nekotekina
e37df998e9
atomic.cpp: minor optimization
...
Silly MSVC emits unnecessary initialize-on-first-use code guards.
Didn't check other compiler. But workaround just works anyway.
2020-11-12 03:41:19 +03:00
Nekotekina
c30cdfb3a7
atomic.cpp: merge more atomic variables for simplicity
...
Compress 16-bit ref counter and two 48+64 bit slot allocators.
This allowed to remove some weird unnecessary logic paths.
Adjust hashtable size to keep it the same.
2020-11-12 03:39:05 +03:00
Nekotekina
350b704cd7
atomic.cpp: combine two atomics (ref ctr and wait ptr)
...
Should fit into cache line perfectly.
Also makes ptr check more robust.
2020-11-12 01:06:12 +03:00
Nekotekina
ad013d59f4
atomic.cpp: don't load actual memory on empty mask
...
It's not an optimization. It just allows some tricks safely.
2020-11-11 23:59:09 +03:00
Nekotekina
d391133524
atomic.cpp: minor notification improvement
...
Check mask before locking the reference.
Can help to not bother non-eligible waiters.
2020-11-11 23:51:41 +03:00
Nekotekina
4b823469f7
atomic.cpp: restore notify_all() behaviour
...
Restore batch notification with non-blocking attempts.
2020-11-11 22:43:13 +03:00
Nekotekina
7cd1e767be
atomic.cpp: implement some atomic wait operations.
...
Instead of plain waiting while equal to some value,
it can be something like less, or greater, or even bitcount.
But it's a draft and untested. Hopefully doesn't break anything.
2020-11-11 20:46:37 +03:00
Eladash
fefab50e06
Fix vm::range_lock, imporve vm::check_addr
2020-11-11 10:30:09 +03:00
Eladash
6e27ab60ca
Registers Editor: Implement SPU/PPU register value broadcast
2020-11-11 10:27:45 +03:00
Eladash
74274f6d77
Debugger: Improve SPU/PPU vector registers
2020-11-11 10:27:45 +03:00
RipleyTom
908b2703f3
Fix missing controller mapping
2020-11-11 07:16:45 +03:00
Nekotekina
c047ab6147
atomic.cpp: waitable atomics got brutally rewritten
...
Hashtable increased and flatten, tree-alike extensions removed.
Some things simplified, so it can actually decrease perf a bit.
But most platforms shouldn't be affected.
Removed limit of 56 waiters per pointer.
Real limit now is about 65535.
2020-11-11 05:35:27 +03:00
Eladash
52fa69d93d
SPU Debugger: Improve registers panel
2020-11-10 22:51:52 +03:00
RipleyTom
a83df01bfd
rpcn 0.3.5 ( #9227 )
2020-11-10 08:55:49 +00:00
Eladash
b32d989a10
Fix PPU stack contents on allocation
2020-11-10 06:30:35 +03:00
Nekotekina
d1ee7c651f
Make memory locking optional (mlock, VirtualLock).
...
Fix desired locking operation (to fix "sudo" memory).
It was discovered that some systems have outdated configuration.
With too tight limit, it's almost impossible to lock anything in memory.
2020-11-10 06:05:37 +03:00
Nekotekina
dcbe8ef5f4
Import VirtualAlloc2 if available (Win10+)
...
Import MapViewOfFile3 as well.
Unused, this crap is tricky.
2020-11-10 03:04:38 +03:00
Nekotekina
bd5253047b
Improve DYNAMIC_IMPORT
...
Don't call get_proc_address every time if if failed.
Also rename Utilities/dynamic_library.h to util/dyn_lib.hpp
2020-11-10 01:44:31 +03:00
Nekotekina
cdaa8cb5c4
CPU: Improve suspend_all g_suspend_counter handling
...
Increase in two stages, giving more chances to use it.
Second stage is when all wait flags have been seen.
2020-11-09 23:54:36 +03:00
Nekotekina
083397a555
vm: lock memory under "sudo" addr
...
Remove memory touching from transactions.
2020-11-09 23:54:36 +03:00
Nekotekina
e98eb4659e
Implement utils::memory_lock
2020-11-09 22:57:36 +03:00
Nekotekina
d1988d384c
vm: remove unnecessary memset() on stop
2020-11-09 22:57:36 +03:00
Nekotekina
bc61835d97
CPU: use unsigned (u8) priority in suspend_all
2020-11-09 22:57:36 +03:00
RipleyTom
8a50880613
Fix path not being saved on install pkgs
2020-11-09 14:23:54 +03:00
Nekotekina
b05d12df0e
Hotfix for shm->map_self()
...
Make sure mmap returns 64K-aligned results, as on Windows.
2020-11-08 22:15:59 +03:00
Nekotekina
733b46d51a
sys_semaphore: add state check to sys_semaphore_get_value
...
Also to sys_semaphore_create, although we don't do it.
2020-11-08 19:03:41 +03:00
Nekotekina
8bc9868c1f
SPU/vm: Improve vm::range_lock a bit
...
Use some prefetching
Use optimistic locking
2020-11-08 17:23:17 +03:00
Nekotekina
3507cd0a37
SPU: improve spu_thread::reservation_check
...
Use optimistic locking and optimistic loop (expecting 1 iteration).
2020-11-08 16:43:15 +03:00
Nekotekina
21ec32b465
vm: implement g_shmem for range locks
...
Renamed from g_shareable. Contains pointers instead of bits.
Used in range locks to prevent any "collision" between memory.
2020-11-08 16:43:15 +03:00
Nekotekina
1c99a2e7fb
vm: add map_self() method to utils::shm
...
Add complementary unmap_self() method.
Move VirtualMemory to util/vm.hpp
Minor associated include cleanup.
Move asm.h to util/asm.hpp
2020-11-08 16:43:15 +03:00
Nekotekina
b68bdafadc
vm: refactor vm::range_lock again
...
Move bits to the highest, set RWX order.
Use only one reserved value (W = locked).
Assume lock size 128 for range_locked.
Add new "Size" template argument that replaces normal argument.
2020-11-08 16:43:15 +03:00
Eladash
bacfa9be19
Debugger fixups ( #9226 )
...
Fix logic error in callstacks handling code, always set first to false after first iteration.
Add explicit check for zero return addresses. Current code validity checks may not check for it properly when it sits on interrupt handler entry point (which may contain valid code).
Do not allow 0x3FFF0 to be a back chain address because it needs space for LR save area, only 0x3FFE0 and below satisfy this criteria.
2020-11-08 16:42:20 +03:00
Eladash
5265eb81e0
kernel-explorer: Add basic process info
2020-11-08 09:17:13 +03:00
Eladash
516da4ecdd
Debugger: Improve SPU/PPU callstack handling
2020-11-08 09:17:13 +03:00
Eladash
3cb5fd8ebc
Debugger: Implement SPU callstack, fix PPU callstack
2020-11-07 20:45:57 +03:00
Nekotekina
fd7ea82965
atomic.cpp: fix 3-arg notify functions
...
Third arg forces comparison with itself, and possibly forced wakeup.
2020-11-07 19:18:14 +03:00
Nekotekina
0bd989b118
atomic.cpp: allow waiting on multiple variables simultaneously
...
Arbitrary maximum set to 8, but really we need 2, maybe 3.
Added atomic_wait::list object for multi-waiting.
Added atomic_wait::get_unique_tsc just in case.
2020-11-07 18:18:02 +03:00
Nekotekina
bd0b292b39
atomic.cpp: adjust assumed pointer mask
...
Increase waiter mask (allow 65535 waiters).
Assume 47-bit pointers instead of 48-bit.
2020-11-07 15:08:46 +03:00
Nekotekina
31f0a0c064
atomic.cpp: add minor safety check
2020-11-07 15:08:46 +03:00
Nekotekina
3e445eff8e
atomic.cpp: maintenance of wait() function
...
Move hashtable allocation into another function.
2020-11-07 15:08:46 +03:00
Eladash
6dcd482dd0
SPU reservations: Do not illegally dereference reservation data
2020-11-07 14:03:09 +03:00
Morgan Creekmore
a28ab0a408
Set AccountAge to 18 to fix age restriction checks, fix incorrect logged function name ( #9218 )
2020-11-07 09:47:44 +00:00
Megamouse
a3eb5c2d63
More Header cleanup
2020-11-06 22:14:05 +01:00
Nekotekina
0a5742587a
atomic.cpp: upgrade raw_notify()
...
Now it searches all semaphores if data arg is nullptr.
Also it tries to wake up all threads if thread_id is 0.
2020-11-06 17:15:40 +03:00
Nekotekina
ad4df2d946
atomic.cpp: refactor native signaling functions
...
Add native_alert() and try_native_alert()
2020-11-06 17:15:40 +03:00
Nekotekina
bfe9580551
atomic.cpp: fix cond_handle data structures
...
Fix a critical bug with possible id out of range.
2020-11-06 16:56:59 +03:00
Nekotekina
1e45437498
Remove unused atomic with lock bit
2020-11-06 16:48:43 +03:00
Nekotekina
557f0c5a8a
atomic.cpp: remove load() from notify functions
...
Only compare masks for overlap for second overload (with mask provided).
Explicit "new value" can be provided in new 3-arg overloads.
Also rename atomic_storage_futex -> atomic_wait_engine.
2020-11-06 04:44:31 +03:00
Nekotekina
9fb8d449fe
atomic.cpp: more improvements
...
Add ref counters for internal semaphores for concurrent notifying.
Lack of them could result in loss of notification.
2020-11-06 00:14:53 +03:00
Nekotekina
1bb7c74c93
atomic.cpp: various cleanups and fixes
...
Add pointer comparison to notifiers (to prevent spurious wakeups).
Fix a bug with a possible double notification in raw_notify().
Fix a bug with incorrect allocatin bit slots for cond_handle.
Add a semaphore counter to track max allowed number of threads.
Use #define for some constants to STRINGIZE them in errors.
Add some error messages when certain limits are reached.
Fix a bug with a wrong check simply throwing std::abort.
Use "special" notify_all patch with batch processing for every arch.
Fix Win7 bug who no one probably noticed.
2020-11-06 00:10:16 +03:00
Nekotekina
34fa010601
Improve cond_var notifiers
...
But nobody uses it anyway, so clean up includes.
2020-11-06 00:10:16 +03:00
Nekotekina
5248240e10
atomic.cpp: improvements.
...
Reduced static memory amount for waitable atomics.
Allow notifier to skip notifications if wait/notify masks don't overlap.
Improve raw_notify to wake up the thread by its id, add thread_id arg.
Add optional mask argument to notify_one() and notify_all().
2020-11-05 05:51:43 +03:00
Nekotekina
ba5ed5f380
Fix vm::lock_range wrong check
...
Minor header refactoring.
2020-11-04 14:59:26 +03:00
Nekotekina
8d5e119582
Improve cpu_flag::temp handling
...
Ignore cpu_flag::suspend
Ignore cpu_flag::signal
2020-11-04 14:59:26 +03:00
Nekotekina
d022e7cd27
sys_prx: add cpu_flag::wait
2020-11-04 14:59:26 +03:00
Nekotekina
5d7acda80e
vm: minor refactoring
...
Renamed internal main range locking method.
2020-11-04 14:59:25 +03:00
Nekotekina
9b595c68a5
Fix some switch warnings
2020-11-04 14:59:25 +03:00
Nekotekina
dea8aa675a
Optimize cpu check_state() a bit
...
Move cpu_flag::dbg_pause check from the start.
To the moment before it actually goes to sleep.
2020-11-04 14:59:25 +03:00
Megamouse
027eba2b59
Add Quadro to fast version of VK get_driver_vendor
2020-11-04 12:13:56 +01:00
Megamouse
91b8e7504e
Set some things to log level always
2020-11-04 12:13:56 +01:00
Megamouse
088931525d
Add option to log qDebug
2020-11-03 06:42:51 +01:00
Megamouse
ef9638e094
Log Qt version
2020-11-03 06:42:51 +01:00
Ani
09a9d08466
rpcs3_version: Bump to 0.0.13 ( #9192 )
2020-11-02 20:20:12 +00:00
Nekotekina
1b8bf081b5
Upgrade to LLVM 11 Stable
2020-11-02 21:23:25 +03:00
Nekotekina
06ecc2ae68
vm::range_lock cleanup and minor optimization
...
Removed unused arg.
Linearized some branches.
2020-11-01 23:29:33 +03:00
Nekotekina
46d3066c62
Optimize vm::range_lock
...
Only test address on `range_locked`
Don't check current transaction
Remove vm::clear_range_locks completely
2020-11-01 16:46:06 +03:00
Nekotekina
8d12816001
TSX: fix transaction limit settings
2020-11-01 14:58:04 +03:00
Nekotekina
fe03b55046
TSX: tiny optimization of transaction functions
...
Because new memory manager puts them in first 2G.
2020-11-01 14:44:59 +03:00
Nekotekina
ca57f25f26
Fix vm::page_protect and range flags
...
Should fix assertion in vm.cpp
Minor refactoring of internal locking
2020-11-01 02:30:10 +03:00
Eladash
3c639ff8e1
SPU: Fix Accurate DMA edge case
2020-11-01 00:35:48 +03:00
Nekotekina
78c986b5dd
Improve vm::range_lock
...
Not sure how it ever worked
Clear redundant vm::clear_range_lock usage
2020-10-31 23:53:14 +03:00
Megamouse
a42663b09b
Qt: Pass events to dialog when not remapping
2020-10-31 20:44:09 +01:00
Megamouse
36149fd986
overlays: kinda fix performance graph margins ( #9181 )
2020-10-31 16:32:31 +00:00
Eladash
c2c559f8d9
Disasm: do not allow to access previous instructions in non-interpreter mode
2020-10-31 17:15:47 +03:00
Eladash
5e8419af0d
SPU Debugger: SHUFB insertion patterns
2020-10-31 17:15:47 +03:00
Nekotekina
86fc842c89
TSX: new fallback method (time-based)
...
Basically, using timestamp counter.
Rewritten vm::reservation_op with the same principle.
Rewritten another transaction helper.
Add two new settings for configuring fallbacks.
Two limits are specified in nanoseconds (first and second).
Fix PUTLLC reload logic (prevent reusing garbage).
2020-10-31 15:34:14 +03:00
Nekotekina
80530e8aef
vm: rename g_addr_lock to g_range_lock
...
Reduce size to 29 bits and use 3 bits to communicate some information.
This information can be used to to a very cheap lock-free access tests.
2020-10-31 15:08:49 +03:00
Nekotekina
ba26e16411
Rename vm::reservation_light_op -> light_op
...
Rename vm::reservation_peek_op -> peek_op
Also remove overkill assertion for cpu_flag::temp.
2020-10-31 15:08:49 +03:00
Megamouse
2cee26c3e7
Cleanup some includes
2020-10-31 11:53:46 +01:00
Megamouse
5d55e509ec
cellSubDisplay: Add some constants ( #9178 )
2020-10-31 01:40:38 +00:00
Megamouse
4984e87776
implement interception for cellKb and cellMouse
...
this needs to be tested
2020-10-31 02:11:27 +03:00
Megamouse
c65b7d0aea
HLE: Add some constants
2020-10-31 02:11:27 +03:00
Megamouse
54fd224fd8
Add License Area Setting
2020-10-31 02:10:30 +03:00
Megamouse
5ca2b1200d
Qt: Fix Resolution combobox default value
2020-10-31 02:08:42 +03:00
Eladash
b5014d56ab
rsx: Fix transform contants load
2020-10-31 02:08:03 +03:00
Nekotekina
c4e89f8bb4
Actually start rsx replay thread
2020-10-30 22:25:33 +03:00
Nekotekina
7dd85b207f
vm: optimize range lock slot allocations
...
Doesn't seem to need a barrier.
2020-10-30 22:20:20 +03:00
Nekotekina
cb0431d960
sys_fs/sys_usbd: add cpu_flag::wait
2020-10-30 20:14:32 +03:00
Nekotekina
58adb6a1aa
sys_ppu_thread: add cpu_flag::wait
2020-10-30 18:27:15 +03:00
Nekotekina
13c564f2af
sys_memory: add cpu_flag::wait
2020-10-30 18:09:30 +03:00
Nekotekina
95aeebe4b5
sys_rsx: add cpu_flag::wait
2020-10-30 18:00:25 +03:00
Nekotekina
605d57c541
sys_event: cleanup (replace vm::temporary_unlock)
...
Also made minor changes in sys_rsx.cpp.
Removed unused exception std headers.
2020-10-30 17:49:07 +03:00
Nekotekina
f972fa26a4
Derive RSX Replay thread from cpu_thread
...
Its id is set to 0, so fix some id_type() usages.
2020-10-30 17:36:11 +03:00
Nekotekina
150e18539c
Allow cpu_thread& arg passed to the syscalls
...
Minor cleanup. cpu_mem(), cpu_unmem() removed.
2020-10-30 17:03:32 +03:00
Eladash
f03d4cf8fd
PPU: Optimize reservation load for success
2020-10-30 10:49:47 +02:00
Nekotekina
3419d15878
vm: add extern clear_range_locks function
...
Allows to wait for range locks to clear for specified range.
vm::range_lock now monitors specified reservation lock as well.
2020-10-30 07:58:16 +03:00
Nekotekina
0da24f21d6
CPU: improve cpu_thread::suspend_all for cache efficiency (TSX)
...
Add prefetch hint list parameter.
Workloads may be executed by another thread on another CPU core.
It means they may benefit from directly prefetching the data as hinted.
Also implement mov_rdata_nt, for "streaming" data from such workloads.
2020-10-30 05:22:09 +03:00
Nekotekina
e794109a67
perf_meter.hpp: fix double rdtsc bug, add restart() method
2020-10-30 03:19:13 +03:00
Nekotekina
006c783aba
SPU: make do_dma_transfer() static with _this arg
...
Instead of this, nullptr will be passed from another thread.
MMIO via MMIO is disabled if it even possible.
2020-10-30 02:58:39 +03:00
Nekotekina
4378a09867
PPU: reload old data on STCX failure
...
In 128-byte reservation mode, it can reload the whole cache line.
2020-10-30 02:58:39 +03:00
Nekotekina
fb24b06a5d
PPU: add LARX perf counter
...
Also refactor ppu_store_reservation a bit.
2020-10-30 02:58:39 +03:00
Nekotekina
425fce5070
SPU: load previous data on PUTLLC failure
...
Since it will most likely execute GETLLAR to load it again.
Only implemented for TSX at moment.
2020-10-30 02:58:39 +03:00
Nekotekina
d5667a859a
CPU: improve cpu_thread::suspend_all (TSX)
...
Try to make more clever busy-waiting on cpu_flag::pause.
2020-10-30 02:58:39 +03:00
Nekotekina
95dbcf2fd7
Logs: add callback for cpu_thread to set cpu_flag::wait
...
May improve waiting time in critical suspend_all ops.
2020-10-29 18:57:57 +03:00
Nekotekina
8ce0819b42
SPU: add stx/ftx counters
...
Just count pure transaction successes and failures.
2020-10-29 18:57:57 +03:00
Nekotekina
688a456642
TSX tweaks
...
Allow to do more in first-chance transactions.
Give PUTLLC +1 priority (minor change).
2020-10-29 18:57:57 +03:00
Megamouse
59b3a3d26b
Qt: Add "Configure Game Patches" to game list ( #9154 )
2020-10-29 06:02:05 +00:00
Nekotekina
280958ee74
Revert "TSX: adjust transaction logic"
...
This reverts commit ff550b5c3c .
2020-10-28 21:59:12 +03:00
Bevan Weiss
f4070731a8
NET: Add SO_RCVBUF / SO_SNDBUF defaults to .._bnet_socket
...
The OS defaults for SO_RCVBUF / SO_SNDBUF may not match what the defaults for the PS3 are.
And the code may be happy with the PS3 defaults, so may not set this explicitly.
So we'll do it when we establish the socket.
It also looks like the Windows recv behaviour is different for the MSG_PEEK option (and possibly in all situations where a smaller buffer is provided). I believe other platforms will return the size of the data received into the socket buffer, even if the supplied user buffer is smaller. Windows returns WSAEMSGSIZE instead. For the length of '1' MSG_PEEK request that is currently seen, we just mask this and return the full size of the buffer. This might need to be the case in all situations, I assume there will be applications that will supply an artificially small buffer and resize it as necessary based on the size of the received packet.
Add some additional translations from native->PS3 error codes
Rewrote handling of MSG_PEEK to just be a copy of what GalCiv suggested
Added WSAESHUTDOWN, and WSASetLastError as done by Cygwin
2020-10-28 20:54:29 +03:00
Eladash
e791678dfc
atomic.cpp: fix memory ordering loads and release stores
2020-10-28 20:45:13 +03:00
RipleyTom
6f5bbf550a
Revert part of CellHddGameCheck
2020-10-28 20:44:38 +03:00
Nekotekina
ff550b5c3c
TSX: adjust transaction logic
...
Allow more in first-chance transactions.
Allow abandonment of PUTLLC as in original path.
Make PUTLLUC unconditionally shared-locked.
Give PUTLLC +1 priority (minor change).
2020-10-28 14:00:09 +03:00
Nekotekina
d6daa0d05b
Fix cpu_flag::temp, make sure it removes cpu_flag::wait
2020-10-28 14:00:09 +03:00
Nekotekina
86785dffa4
SPU: make vm::check_addr checks safe under vm::range_lock
...
Reuse some internal locking mechanisms.
Also fix vm::range_lock missing check.
2020-10-28 14:00:09 +03:00
Nekotekina
c491b73f3a
SPU: improve accurate DMA
...
Remove vm::reservation_lock from it.
Use lock bits to prevent memory clobbering in GETLLAR.
Improve u128 for MSVC since it's used for bitlocking.
Improve 128 bit atomics for the same reason.
Improve vm::reservation_op and friends.
2020-10-28 03:47:41 +03:00
Nekotekina
c50233cc92
atomics.cpp: add support for waiting on 128-bit atomics
...
Complementarily.
Also refactored to make waiting mask non-template arg.
2020-10-28 03:47:41 +03:00
Nekotekina
13de773486
Remove some vm::reservation_lock instances
2020-10-27 17:56:19 +03:00
Nekotekina
4966f6de73
vm: improve range_lock and shareable cache (Non-TSX)
...
Allocate "personal" range lock variable for each spu_thread.
Switch from reservation_lock to range lock for all stores.
Detect actual memory mirrors in shareable cache setup logic.
2020-10-27 17:56:19 +03:00
Nekotekina
6806e3d5c7
atomic.cpp: implement notify callback
...
Notification can be very heavy, especially if we need to wake many threads.
Callback is set for cpu_thread in order to set wait flag accordingly.
2020-10-27 17:56:19 +03:00
Megamouse
0a121e9d26
DS4: Add error logging and remove some unused code
2020-10-27 15:25:08 +01:00
Megamouse
15e8cba398
Qt: fix never played nonsense
2020-10-27 12:50:43 +01:00
kd-11
b32eecb5a7
rsx: Driver compatibility improvements ( #9131 )
...
* rsx: Refactor vertex clip emit to avoid using f64 unnecessarily
- Fixes driver crash on intel
* vk: Add NVIDIA driver version check
- Warn if user has outdated drivers with known problems
2020-10-27 13:22:15 +03:00
Megamouse
8ce0eaa9d0
Qt: move TTY option to TTY tab ( #9147 )
2020-10-27 02:47:07 +00:00
Cebtenzzre
2b6a56c21c
Partially revert "Fix debug build gcc/clang linker."
...
This reverts commit 4599d58413 .
The issue this works around was fixed in 3265772 ("idm: Implement
creation/destruction invalidation counter") by making the variables
constexpr.
Fixes #6896
2020-10-26 04:12:04 +03:00
Nekotekina
f1e66085cd
Fixup for cpu_flag::temp
...
Wrong check_state() result was triggering assertion.
2020-10-26 01:18:26 +03:00
Nekotekina
d344701fd5
atomic.cpp: add sparse atomics
...
Set alignment as second template argument (typically cache line).
2020-10-26 01:15:31 +03:00
Nekotekina
130a0ef20e
Implement cpu_flag::temp flag
...
Accompanies wait flag, indicating that it was set in limited conditions.
Such condition don't allow thread to terminate after its removal.
2020-10-25 21:48:20 +03:00
kd-11
18ca3ed449
rsx: Block-level reservation access
2020-10-25 20:21:04 +03:00
Nekotekina
af6fcb19a8
atomic.cpp: add std primitive fallback for other platforms
...
Other platforms = not Windows or Linux.
2020-10-25 16:45:22 +03:00
Eladash
0fcf767ee9
SPURS: Implement spursJobchainPopUrgentCommand
2020-10-25 16:43:38 +03:00
Eladash
1e7bf218e0
CellSpurs: Minor fixes
2020-10-25 16:43:38 +03:00
Eladash
4ea7628204
SPU: Fix LS capture entry point
2020-10-25 16:39:40 +03:00
Nekotekina
7db77a5580
atomic.cpp: use new thread alerting API (Win8+)
...
Win7 will remain using old API (keyed events).
2020-10-24 19:06:02 +03:00
Nekotekina
89d9813a45
Fix UTF-8 strings in perf_meter files
2020-10-24 14:16:32 +03:00
Nekotekina
2b52b4a749
SPU: use normal notify() thread function
...
Using raw_notify() everywhere was overkill.
2020-10-24 14:16:32 +03:00
Nekotekina
c479d431a4
atomic.cpp: experimental optimization (Win7+)
...
Try non-blocking wake up function first.
2020-10-24 14:16:32 +03:00
Nekotekina
8628fc441d
atomic.cpp: rewrite internals (again)
...
Use individual semaphore for each thread.
Unfortunately, limit max thread waiting for single address (60).
If limit is reached, use busy waiting.
2020-10-24 14:16:32 +03:00
Nekotekina
d48d67767a
atomic.cpp: integrate callback check in ptr_cmp function
2020-10-24 14:16:32 +03:00
Nekotekina
10caa2981f
Improve raw_notify a bit
2020-10-24 14:16:32 +03:00
Eladash
49610f52f5
SPU: Save LS capture executable in one segment
2020-10-24 14:13:19 +03:00
Megamouse
27643cb715
HLE: improve cellHddGameCheck
2020-10-24 00:26:41 +03:00
Megamouse
fe3c7926f7
Qt: add custom game icons
...
This shouldn't interfere with emulation as replacing actual files would
2020-10-23 23:13:22 +02:00
Eladash
552d8e6aec
Debugger: Fix SignedHex
...
It didnt take into account INTx_MIN. (UB for std::abs)
2020-10-23 13:13:04 +03:00
Eladash
0bb3609cad
Debugger: Simplify thread pause state change
2020-10-23 13:13:04 +03:00
Eladash
b56bc7e087
SPU: cleanup channels logging
2020-10-23 13:13:04 +03:00
Eladash
abcf265bc7
SPU Debugger: Implement basic instructions's constants propagation
...
Only functional in WRCH and ILHU+IOHL pattern atm.
ILHU+IOHL is extremely common pattern to create 32-bit constants such as SPPU libraries error codes.
2020-10-23 13:13:04 +03:00
Eladash
6d3c421823
Debugger: Optimize thread disasm type select
...
Some correctness fixes as well: dont use raw pointers where its not compatible, use std::weak_ptr instead.
2020-10-23 13:13:04 +03:00
Eladash
e70f430b5a
SPU Debugger: Add made-up MR mnemonic
2020-10-23 13:13:04 +03:00
Eladash
8c927d3cc8
kernel-explorer: Add SPURS wkl arg
2020-10-23 13:13:04 +03:00
Eladash
b998852385
LV2: cleanup syscall table ( #9106 )
...
Remove old ppu_get_syscall_name from PPUFunction.cpp for deduplication.
2020-10-21 10:04:34 +03:00
Nekotekina
59d9e7ce98
Revert "Atomics: use WaitOnAddress if available (Win8+)"
...
This reverts commit f0fd7e2e19 .
2020-10-21 09:59:08 +03:00
Nekotekina
306593a0c5
Revert "atomic.cpp: fixup for WaitOnAddress path"
...
This reverts commit 3b8bce1bed .
2020-10-21 09:54:22 +03:00
Nekotekina
3b8bce1bed
atomic.cpp: fixup for WaitOnAddress path
...
Also fix wait quantum.
2020-10-21 08:18:27 +03:00
Nekotekina
f0fd7e2e19
Atomics: use WaitOnAddress if available (Win8+)
2020-10-21 00:22:08 +03:00
Nekotekina
4384ae15b4
Improve vm::reservation_op
...
Remove XABORT, sync status handling with SPU/PPU transaction.
Limit max number of transaction attempts in loop.
Add Ack template parameter, as in vm::reservation_light_op.
Remove utils::tx_abort, improve utils::tx_start as well.
2020-10-20 09:10:21 +03:00
Nekotekina
dc8252bb9f
Remove XABORT in PPU/SPU transactions.
...
It's expensive for unknown reason. Simply XEND is usually much cheaper.
Add some minor improvements. Use g_sudo_addr.
2020-10-20 09:10:21 +03:00
Nekotekina
182a998cb6
Add "Enable Performance Report" debug setting
2020-10-20 07:09:24 +03:00
Nekotekina
ea8e435b32
Fixup for perf_meter.hpp
...
Don't try to push reports if they are empty.
2020-10-19 21:25:42 +03:00
Nekotekina
72d1ac22aa
SPU: report too many PUTLLC attempts (TSX)
...
Mirrored to PPU STCX code and PUTLLUC (STORE128).
2020-10-19 19:41:28 +03:00
Nekotekina
8ce5392390
TSX: add prefetchw instruction in transaction code
2020-10-19 19:41:28 +03:00
Nekotekina
311682b341
SPU: fix GETLLAR regression
...
Misplaced mov_rdata
2020-10-19 19:41:28 +03:00
Nekotekina
a5eb11d79f
Improve cpu_thread::suspend_all (TSX-FA)
...
Add prefetching of cpu->state fields.
2020-10-19 19:41:28 +03:00
Nekotekina
120849c734
Implement perf stat counter for PPU/SPU reservation ops
...
Adds Emu/perf_meter.hpp header file.
Uses RDTSC for speed.
Prints stats at exit.
2020-10-19 19:41:28 +03:00
Nekotekina
adf50b7c4b
Implement cpu_thread::if_suspended
...
Use it for opportunistic guaranteed GETLLAR execution (TSX-FA).
2020-10-18 20:10:48 +03:00
Nekotekina
f5c575961f
Implement priorities for cpu_thread::suspend_all tasks
...
Give PUTLLUC increased priority.
2020-10-18 20:10:48 +03:00
kd-11
a90801e2aa
vk: Add VK_FORMAT_D32_SFLOAT to format conversion table
...
- This format is required to emulate RSX_FORMAT_CLASS_D16_FLOAT
2020-10-18 19:30:40 +03:00
Eladash
402e8b12a6
SPU: Touch unmapoed memory in reservation mismatch
2020-10-18 11:42:54 +03:00
Eladash
701f7f39d6
Improve SPURS debugger ( #9090 )
2020-10-18 11:07:01 +03:00
Eladash
6590366f8e
PPU Debugger: fix typo in STDX
2020-10-17 22:00:22 +03:00
Eladash
fa0b02ed30
PPU Debugger: Improve move from/to CR registers instructions
2020-10-17 22:00:22 +03:00
Nekotekina
d0057c92e4
Fix spu_putlluc_tx (insignificant)
2020-10-17 21:27:19 +03:00
Nekotekina
4078f43984
Fix ppu_stcx_accurate_tx (operand size mismatch)
2020-10-17 21:26:17 +03:00
RipleyTom
9e14d240a8
Implement ethernet address determination
2020-10-16 22:53:48 +03:00
RipleyTom
1393bb2caf
Fix getsockname on windows for unbound sockets
2020-10-16 22:53:48 +03:00
RipleyTom
e9914f3004
Add sys_net error for EISCONN
2020-10-16 22:53:48 +03:00
RipleyTom
073772a801
Fixes setsockopt
2020-10-16 22:53:48 +03:00
RipleyTom
2babe4c236
Add better handling of RTT for STREAM_P2P
2020-10-16 22:53:48 +03:00
RipleyTom
bbda618beb
Improve poll for p2p sockets
2020-10-16 22:53:48 +03:00
RipleyTom
344c813eb1
Avoid double locking with start_sig
2020-10-16 22:53:48 +03:00
RipleyTom
abaa8f855f
sceNpManagerGetAccountRegion impl
2020-10-16 22:53:48 +03:00
RipleyTom
ea1171f624
Add notification logging
2020-10-16 22:53:48 +03:00
Eladash
443c2b920d
PPU: Handle cache line inconsistencies (PPU 128 reservations)
2020-10-16 22:51:30 +03:00
Eladash
953663e00b
Fix ppu_execute<Func> for HLE functions
2020-10-16 22:48:02 +03:00
Eladash
5185ddb8b5
CellSpurs: JobChain functions and some more ( #9080 )
2020-10-16 18:35:20 +01:00
Nekotekina
583ed61712
SPU: return some give-up behaviour for PUTLLC (TSX)
...
Despite using concept of "shared" lock, allow only first to proceed.
This is similar how conditional stores for PPU are implemented.
2020-10-16 12:14:42 +03:00
Nekotekina
492ed27495
RSX: fix rsx::nv406e::semaphore_release partially
...
Properly release reservation (non-TSX path).
At least update and notify reservation (TSX).
2020-10-15 20:58:59 +03:00
Nekotekina
facde63460
PPU: fix ppu_stcx_accurate_tx
...
Don't destroy xmm6/xmm7 state on exit.
Improve addr arg handling (simplify).
2020-10-15 19:24:00 +03:00
Nekotekina
494953997e
PPU/SPU: give up on conditional stores if locking fails
...
Restores Non-TSX behaviour partially.
2020-10-15 17:18:49 +03:00
Nekotekina
1b89ad00e7
SPU: restore some LR event setting logic after #9048
2020-10-15 17:18:49 +03:00
Nekotekina
40558e7ac1
Use std::invoke in cpu_thread::suspend_all
2020-10-14 02:53:58 +03:00
Nekotekina
3bddba0c7a
SPU: fix spu_getllar_tx
...
Was not executing.
2020-10-14 02:53:29 +03:00
Nekotekina
97cd641da9
TSX: reimplement spu_getllar_tx
...
Only used as a backup method of reading reservation data.
Increase long GETLLAR reporting threshold.
2020-10-13 21:10:04 +03:00
Nekotekina
91db4b724c
SPU: fix PUTLLC (TSX-FA)
...
Some forgotten checks may affect performance.
2020-10-13 17:46:03 +03:00
Nekotekina
dcff8c2637
Fix remaining vm::reservation_lock usages (for now)
...
Optimization can be restored later.
2020-10-13 12:04:59 +03:00
Nekotekina
7a76fb1469
PPU: Add loop logging in STWCX/STDCX
2020-10-13 11:06:58 +03:00
Nekotekina
17f805ae64
PPU: cleanup for TSX path remnant
2020-10-13 10:54:10 +03:00
Nekotekina
1606f97177
CPU: print and reset suspend_all statistics
2020-10-13 00:33:20 +03:00
Nekotekina
dc39a9b84f
SPU: Report 'GETLLAR took too long'
...
Also move similar code in PPU.
2020-10-13 00:12:11 +03:00
Nekotekina
4ff23a9943
sys_fs: fix file opening from /app_home
...
Typo.
2020-10-12 21:41:57 +03:00
Nekotekina
a806be8bc4
SPU: Implement S1/S2 (SNR) events ( closes #8789 )
...
Add TSX path in push_snr()
Add locks bits in ch_events
2020-10-12 21:41:57 +03:00
Eladash
95c1443e30
SPU: Validate reservation in GET commands (Accurate DMA) ( #9062 )
2020-10-12 15:20:06 +03:00
Nekotekina
5bd5a382c0
PPU: fix LDARX/LWARX in accurate mode ( closes #9058 )
...
Fixup after #9048
Use SSE intrinsics in mov_rdata.
2020-10-11 19:52:10 +03:00
Nekotekina
1885e4345c
Improve vm::reservation_update
...
Only respect unique lock.
2020-10-11 17:22:28 +03:00
Nekotekina
2f329cf7b5
PPU: minor improvement for LWARX/LDARX
...
Improve chances of loading actual data in memory.
2020-10-11 17:22:28 +03:00
Nekotekina
f2d2a6b605
JIT cleanup for PPU LLVM
...
Remove MemoryManager3 as unnecessary.
Rewrite MemoryManager1 to use its own 512M reservations.
Disabled unwind info registration on all platforms.
Use 64-bit executable pointers under vm::g_exec_addr area.
Stop relying on deploying PPU LLVM objects in first 2G of address space.
Implement jit_module_manager, protect its data with mutex.
2020-10-11 17:22:28 +03:00
Bevan Weiss
2c8b3f05ac
FIX: MAX_PATH is used within Windows headers, we should use a different define internally
...
Replace MAX_PATH usage with EMU_MAX_PATH, this prevents the redefine warning, and ensures that we don't mess up other usages (which will likely want MAX_PATH as 260, like Windows defines, not 4096 like we do).
The replacement has been done based on what MSVC was telling me the define values were at each point (i.e. whether we wanted it or not, these usages were using our 4906 value, not the 260 value from Windows)
2020-10-10 23:09:05 +03:00
Nekotekina
e8e3a3b2a2
PPU: improve LWARX/LDARX progression
...
Should reduce spam ("...took too long")
2020-10-10 17:36:41 +03:00
Nekotekina
ec7d243ee9
More optimization for cpu_thread::suspend_all
...
Try to not pause inactive threads.
2020-10-10 14:22:12 +03:00
Nekotekina
b74c5e04f5
Optimize cpu_thread::suspend_all
...
Reduce internal thread status polling.
Refactor utility functions.
2020-10-10 14:12:49 +03:00
Nekotekina
050c3e1d6b
Rewrite cpu_thread::suspend_all
...
Now it's a function of higher order.
Make only one thread do the hard work of thread pausing.
2020-10-10 13:58:48 +03:00
Nekotekina
6d83c9cc0e
PPU: remove ppu_stcx_tx
...
Very small transaction, benefit questionable.
2020-10-10 13:58:48 +03:00
Nekotekina
346a1d4433
vm: rewrite reservation bits
...
Implement classic unique/shared locking concept.
Implement vm::reservation_light_op.
2020-10-10 13:58:48 +03:00
Bevan Weiss
d962bb018d
wolfssl: Add WC_NO_HARDEN suppression to compiler defines, and remove duplicate defines in MSVC
...
Silence the wolf from telling us:
#warning "For timing resistance / side-channel attack prevention consider using harden options"
Also removed duplicate defines for Visual Studio project, to remove some additional warnings there.
2020-10-10 13:57:24 +03:00
kd-11
bca3a3f4ed
vk: Open CB before doing frame cleanup so that callbacks work ( #9041 )
2020-10-10 10:02:55 +01:00
Eladash
ffea52dc36
Add some more info to SPURS kernel explorer
2020-10-08 19:05:14 +03:00
Eladash
865464f607
SPU Local Storage capture
2020-10-08 19:05:14 +03:00
Eladash
73f96f48ee
Fix SPU ELF loader
2020-10-08 19:05:14 +03:00
Nekotekina
89f1248140
Implement vm::reservation_op
...
Implement vm::reservation_peek (memory load)
Implement vm::unsafe_ptr_cast helper
Example use in cellSpurs.cpp
Fix dma_lockb value and description
2020-10-07 20:11:59 +03:00
Eladash
59be63167f
Prettify SPU image name of dumped images
2020-10-07 01:12:45 +03:00
Eladash
c628147521
cellSpurs: Implement more HLE functions (part 1)
2020-10-07 01:12:21 +03:00
Eladash
a5cff8b186
kernel-explorer: Initial SPURS debugger
2020-10-06 14:20:23 +03:00
Eladash
983547af7e
SPU: Embedded PRX/overlay image patching and dumping
2020-10-06 13:06:25 +03:00
kd-11
d5f7e7b179
vk: Reimplement GPU query management
2020-10-06 12:02:53 +03:00
Eladash
2a258dc21e
Fix GCC compilation ( #9035 )
2020-10-05 06:39:56 +01:00
Eladash
ec1244bb82
Minor cellSpurs fixup
2020-10-04 19:54:56 +03:00
Eladash
ac6e042223
Implement sys_process_is_spu_lock_line_reservation_address
2020-10-04 19:54:56 +03:00
Eladash
a0b387e0a9
cellSpurs: Fix HLE workload signalling, taskset fixes
2020-10-03 22:35:59 +03:00
Eladash
4cafd5a31c
SPU: Remove dead additions in Accurate Xfloat
2020-10-03 20:31:35 +03:00
Eladash
888b520b31
sys_fs: return ENOENT for relative paths
2020-10-03 19:09:09 +03:00
Eladash
493e57837b
SPU: Fix extremely rare bug of GETLLAR ( #9011 )
2020-10-03 09:31:28 +01:00
Nekotekina
ee00fdb61b
fs: improve handling root mountpoint
...
Path such as simply "/" falls into this category.
2020-10-02 14:37:58 +03:00
Nekotekina
9b22661c19
fs: improve mountpoint detection
...
Properly handle . and .. path components in mountpoint detection.
Remove app_home mountpoint and use mountpoint from argv[0] instead.
Add dev_root mountpoint for special purposes.
2020-10-02 12:32:35 +03:00
Nekotekina
0ac3dbfec9
Improve Trophy Installer robustness
...
Relax paranoidal mount point locking and temp dir creation mechanism.
It was incompatible with a setup where user directory is symlinked.
Instead, create temp dir as close to target as possible (see savedata).
2020-10-01 22:00:57 +03:00
Eladash
56cebd99c2
SPU: Simplify logging of MFC commands ( #9004 )
2020-10-01 19:52:39 +03:00
Eladash
04c3d8d1bb
Set max PPU threads to 100
2020-10-01 19:51:56 +03:00
Eladash
7fdf3dd760
cellSpurs: Add CellSpursJobOpcode definitions
2020-10-01 18:16:13 +03:00
Eladash
1f28bee86a
cellSpurs: Add error codes formatting (unused)
2020-10-01 18:16:13 +03:00
Eladash
aed560b630
Implemnt various HLE CellSpurs functions
2020-10-01 18:16:13 +03:00
Eladash
871b15f6e1
PPU: fixup for Accurate 128-byte reservations ( #8998 )
2020-10-01 18:15:07 +03:00
Megamouse
ef0faf03fd
Overlays: Use Back instead of Cancel
2020-10-01 12:26:18 +02:00
Megamouse
5226076676
Emu: use vulkan as default renderer
2020-10-01 09:19:13 +02:00
Megamouse
046923d9f7
Add Accurate PPU 128 Reservations to Debug tab
2020-09-29 10:26:23 +02:00
Megamouse
531eb04fd7
cellGameSetParamString: fix string sizes
2020-09-29 08:44:25 +02:00
Eladash
f4ca6f02a1
PPU: Implement support for 128-byte reservations coherency
2020-09-28 22:34:42 +03:00
Eladash
3f7eba19c8
PPU: Upgrade reservations to 8-byte always
2020-09-28 22:34:42 +03:00
kd-11
04ff7913b4
rsx/codegen: Workaround for borked hardware
...
- Bitwise or does not evaluate correctly for some hardware.
Substitute with subtraction instead.
2020-09-28 22:18:36 +03:00
Eladash
09cddc84be
SPU/PPU: Implement Atomic Cache Line Stores
2020-09-27 20:09:21 +03:00
kd-11
9baef8c705
rsx: Emit simpler fragment program code
...
- Optimize clamp16
- Use bfe instead of shift-and
2020-09-27 18:56:04 +03:00
kd-11
a14a358b73
rsx: Optimize vertex decoder to generate simpler code
...
- Significantly improves compilation speed by simplifying most of the code and doing something similar to LICM.
* Actual decoding is now vectorized and performed in one step rather than in a loop.
* Switches inside loops are removed and replaced with simple comparison. Generates much nicer (and smaller) GCN bytecode.
2020-09-27 18:56:04 +03:00
kd-11
259844f4f3
vk: Disable spirv optimizer
...
- I've not found it to be very useful and it just breaks good code right now.
TODO: Re-enable when things improve.
2020-09-27 18:56:04 +03:00
Eladash
53c8ed6a63
vm: Fix stack memory release, always reset memory flags
2020-09-26 21:48:12 +03:00
Eladash
f22348a9f9
sys_memory: Improve sys_memory_get_page_attribute for stack
2020-09-26 21:48:12 +03:00
Eladash
83d71519e0
Implement HLE sys_config stack allocation
2020-09-26 21:48:12 +03:00
Eladash
0f67c68993
sys_mmapper: return ENOMEM on memory greater than UINT32_MAX ( #8982 )
2020-09-26 18:06:06 +01:00
Eladash
b79d236bfa
cellSearch: use std::hash ( #8981 )
2020-09-26 17:28:19 +01:00
Bevan Weiss
92efaf0bba
GUI: Fix exception on invalid AudioRenderer
...
The findData() on the invalid value correction wasn't working, and was still returning -1.
This was then used in the enable_buffering lambda as the IndexChanged callback, and throwing the Assert.
Have replaced this usage with a lambda to manually find the appropriate entry. Since we localise the text displayed, neither findData nor findText of the combo box did the job.
I haven't touched the is_ranged use of findData.
2020-09-25 16:40:32 +02:00
Eladash
3b11f22062
MSVC bug workaround
2020-09-25 13:26:08 +03:00
Eladash
6164b3d2e2
Compilation fix
2020-09-24 21:00:23 +03:00
Eladash
c806da51f8
Implement cellGameDeleteGameData ( #8962 )
2020-09-24 20:13:19 +03:00
Eladash
183aa31319
cellSysCache: Global hdd1 lock
...
Take advantage of recursive locking.
2020-09-24 18:06:51 +03:00
Eladash
7b3c0a69f3
kernel-explorer: Implement Filesystem Destcriptors information
2020-09-24 18:06:51 +03:00
Eladash
b8fa6fb4c4
Win32 FS: Rewrite (fix) vfs::host::rename
2020-09-24 18:06:51 +03:00
Eladash
22269ca0d7
Registers Editor: Implement PPU/SPU reservation control ( #8968 )
2020-09-24 11:44:17 +02:00
kd-11
9ea478008c
vk: Properly initialize float64 support for SPIRV
2020-09-24 01:30:21 +03:00
Bevan Weiss
20f1eb865b
Update rpcs3/Emu/system_config.h
...
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2020-09-23 21:15:45 +02:00
Bevan Weiss
53212ba7a9
Core: Add date/time offset capability for console time
...
Provides a setting which can be applied per game, and allows for a custom date/time to be set.
The console time will then apply this as an offset to the computer wallclock.
This allows for games which look at the console time to determine their gameplay to be adjusted.
2020-09-23 21:15:45 +02:00
Eladash
3372409590
cellGameContentPermit: Fix missing PARAM.SFO writeback ( #8934 )
2020-09-23 20:35:06 +03:00
Morgan Creekmore
4fe2951509
Fixed formatting
2020-09-23 20:27:30 +03:00
Morgan Creekmore
ff8a94714f
Add additional NV4097 methods to gcm_printing
2020-09-23 20:27:30 +03:00
Morgan Creekmore
b45d6fee2d
Fix methods_name indentation
2020-09-23 20:27:30 +03:00
Morgan Creekmore
f44e696edf
Added missing NV methods for gcm_printing
2020-09-23 20:27:30 +03:00
Eladash
5a049322ed
HLE: Always return empty paths if game content does not exist in cellGameContentPermit
2020-09-23 20:24:21 +03:00
Bevan Weiss
04deb97f94
MSVC 16.8 Preview 3.1 compiler fix
...
The latest MSVC 16.8 Preview 3.1 cl.exe no longer likes the implicit conversion from false->std::shared_ptr
But it's happy with nullptr
Not the ideal solution, but it will kick the can down the road a little.
2020-09-23 12:44:32 +02:00
Eladash
0c3c34179e
TROPUSR.DAT fixup ( #8960 )
2020-09-23 03:47:54 +01:00
Silent
e938ddda2c
Add playtime to the value from settings
...
Fixes playtime being wiped out when running
the game with --no-gui.
2020-09-23 00:06:29 +02:00
Eladash
97e26f9d6c
Trophy fixup
2020-09-22 22:42:43 +03:00
Eladash
bfa78870cb
SPU: Fix unregistered channels in RCHCNT
...
Shouldn't throw exception on realhw.
2020-09-22 19:47:47 +03:00
Eladash
ad37259ccc
SPU: Implement many missing channel counts
2020-09-22 19:47:47 +03:00
Eladash
418968d974
sceNpTrophy: Add logging of commSign
2020-09-22 19:46:52 +03:00
Eladash
89905bc1c4
sceNpTrophyRegisterContext: Implement SCE_NP_TROPHY_STATUS_NOT_INSTALLED
2020-09-22 19:46:52 +03:00
Eladash
3a96d99187
sceNpTrophyRegisterContext: Atomically create trophy data
2020-09-22 19:46:52 +03:00
kd-11
a50ea09053
rsx: Properly pass format_class information during RTV/DSV resource barrier
...
- Also takes the opportunity to remove repeating code in a minor refactor.
2020-09-22 12:19:54 +03:00
kd-11
d012abd924
vk: Improve image transfer and scaling
...
- Handle typeless src and dst with aliased typeless format
- Optimize typeless transfers by only dealing with affected texels.
* Eliminates redundant dst->typeless transfer of full image (very expensive)
* Eliminates full src->typeless transfer of full image and replaces with only affected region
* Requires significantly smaller output buffers, saving on VRAM cost
2020-09-22 12:19:54 +03:00