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
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
Eladash
9ba3e6d3f7
sys_mmapper: Fix IPC-enabled instances memory consumption
2021-05-24 23:16:06 +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
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
Eladash
dcfd29c2d9
kernel-explorer: Implement PPU scheduler state information
2021-05-21 18:12:36 +02: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
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
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
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
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
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
8ae727ca04
lv2_obj::create: fix pessimizing move
...
Could have been preventing copy elision.
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
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
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
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
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
1b0b2fe21e
vm: add "hook" memory (32G)
...
Implement overcommit emulation for shm.
2021-05-04 18:02:52 +03: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
Eladash
daa53b77cf
Simplify named_thread construction
2021-05-01 18:08:03 +03: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
f8e05f8e3c
Remove redundant operators !=
2021-04-29 22:57:40 +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
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
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
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
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
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