Commit graph

10955 commits

Author SHA1 Message Date
kd-11 a4c1fcb59a Fix 3rdparty imports for case-sensitive platforms (fixes *NIX build) 2021-08-06 17:18:48 +03:00
kd-11 d0a824996b vk: Add basic support for FSR 1.0
- Only implemented for image upscaling.
- Disabled by default. Emulators cannot ensure upscalers are injected at the right rendering step.
- GUI integration not implemented.
2021-08-06 17:18:48 +03:00
kd-11 69b34693f0 vk: Simplify compute job cleanup on exit
- Just call destroy automatically on object destruct
2021-08-06 17:18:48 +03:00
kd-11 9a63ed6c50 vk: Unbind global renderer if it is destroyed 2021-08-06 17:18:48 +03:00
kd-11 6f6eda6413 vk/device: Formatting fixes only (EOL) 2021-08-06 17:18:48 +03:00
Nekotekina 86d2316089 sys_net/NP: set some init dependencies
Ensure finalization order of network threads.
This should prevent some crashes.
2021-08-06 10:41:40 +03:00
Nekotekina 064fc81697 Fix warnings 2021-08-06 10:41:40 +03:00
Megamouse b7e4de6ea5 Qt: purge gui settings 2021-08-05 22:56:38 +02:00
Megamouse a146aabcaf cellGem: Disable Alignment Checks 2021-08-05 13:10:08 +02:00
Eladash 9ecb6c4e34 Fix sys_spu_thread_group_create 2021-08-05 08:12:34 +03:00
Megamouse 3ccfb86e1b cellGem: use existing constant for sphere radius 2021-08-05 02:26:20 +02:00
Megamouse 9c21f43df6 cellGem: fix Deadstorm Pirates regression 2021-08-05 02:02:34 +02:00
Megamouse 87c07679e1 cellGem: add calibration logic with 0.5 second delay 2021-08-05 02:02:34 +02:00
Megamouse 6de4c27b32 cellGem: fix controller connection check 2021-08-05 02:02:34 +02:00
Megamouse 995e9b5f9f cellGem: reset struct on controller reset 2021-08-05 02:02:34 +02:00
Megamouse e03f323fdd cellGem: add some more checks 2021-08-05 02:02:34 +02:00
Megamouse f2bca2ef67 cellGem: set cellGemGetCameraState values 2021-08-05 02:02:34 +02:00
Megamouse 0b88d5f077 cellGem: implement cellGemHSVtoRGB 2021-08-05 02:02:34 +02:00
Eladash 9f67e00e40 sys_spu: Add one more limiting SPU threads creation condition 2021-08-04 21:39:57 +03:00
Eladash 9d71369b2c Fixup HLE lwmutex 2021-08-04 21:39:57 +03:00
Megamouse 2dd0f488a1 cellGem: cellGemPrepareVideoConvert update 2021-08-04 20:28:34 +02:00
Megamouse dd7f24b20e cellGem: fix mouse positions 2021-08-04 20:28:34 +02:00
Megamouse ccb7531289 cellGem: update cellGemGetState 2021-08-04 20:28:34 +02:00
Megamouse 4d0179174a cellGem: add more mouse buttons 2021-08-04 20:28:34 +02:00
Megamouse 3ddcf60a11 cellGem: add some more error checks 2021-08-04 20:28:34 +02:00
Megamouse 3b581aaf94 cellGem: disable tracking in cellGemForceRGB 2021-08-04 20:28:34 +02:00
Megamouse 0c68a6afdd cellGem: improve hue handling 2021-08-04 20:28:34 +02:00
Megamouse fd29382290 cellGem: fix fake move calibration status flag
Apparently OCCURRED means that there are flags to be checked, while SUCCEEDED means that everything went smoothly.
2021-08-04 20:28:34 +02:00
Megamouse 1d3f91a1b8 cellGem: add ext_id and SHARP_SHOOTER_DEVICE_ID 2021-08-04 20:28:34 +02:00
Megamouse 999252a806 cellGem: fix typos, add some comments and reorder 2021-08-04 20:28:34 +02:00
kd-11 da3c9948e6 rsx: Revert use of std::has_single_bit
- Zero is not a power of 2 in this situation, and we do not want to treat it as such
2021-08-04 20:28:25 +03:00
kd-11 daa8265a47 rsx: Fix interpreter texture fetch 2021-08-04 20:28:25 +03:00
Eladash f807ebf9ba PPU: Improve accuracy of "Accurate PPU 128 reservations" mode 2021-08-04 18:18:59 +03:00
Eladash 8c3a4c260e Bugfix of sys_lwmutex_destroy 2021-08-04 09:03:17 +03:00
Eladash 06f4dfb9f1 SPU: Implement sys_spu_initialize and limit of physical SPU threads 2021-08-04 08:26:32 +03:00
Megamouse af89eb5404 ppu compilation: fix facepalm (double increase) 2021-08-03 08:39:57 +02:00
Megamouse dc0a086400 sys_prx_unload_module: fix log message 2021-08-03 08:39:57 +02:00
kd-11 8aec943093 Use c++20 has_single_bit for POT test 2021-08-03 00:36:04 +03:00
kd-11 99b6963fab rsx: Improve unnormalized coordinate sampling
- Improve rounding when sampling nearest neighbour. This is mostly a problem with NVIDIA
- Implement unnormalized 3D sampling
2021-08-03 00:36:04 +03:00
kd-11 b3c65b7bca rsx: Implement vtc encoding for NVIDIA OpenGL support 2021-08-03 00:36:04 +03:00
kd-11 0ec526c5f1 rsx: Do not use VTC tiling on NPOT textures
- Seems to be ignored for 'normal' textures. Mostly verified through games.
2021-08-03 00:36:04 +03:00
Emmanuel Gil Peyrot 8af694da2e Crypto/ec: Make internal functions static
This reduces the size of the stripped .o by 3 KiB, and the non-stripped
one by 21 KiB, when not doing LTO.
2021-08-01 12:21:17 +03:00
Nekotekina 05d1b3605e Fixup for SPU Debug mode (bad SHA1)
Should fix crashes due to read out of bounds.
2021-08-01 10:12:08 +03:00
Nekotekina 286e154d05 SPU Profiler: adjust accumulation logic
Don't append trampoline time to verification time.
2021-08-01 09:59:00 +03:00
Eladash a0c1b250b6 Fix HLE LWMutex setting - Implement dynamic initialization of HLE functions 2021-07-31 21:47:22 +03:00
Megamouse 6527eef655 System: add progress update on existing modules
This could cause dialogs to seemingly finish at e.g. 50/100 modules because the existing modules weren't accounted for.
2021-07-31 16:06:18 +02:00
Eladash f39a0a5fbe Debugger: Add some error pop-ups for invalid operations
* Show error window when setting breakpoints on these conditions:
- SPU/RSX are selected. (not supported)
- When using non-interpreters decoders.
- Non-executable memory is specified.
* Do not allow instruction stepping for non-interpreters decoders.
* Clear breakpoints when the game is stopped.
* Fix setting breakpoints on HLE functions.
2021-07-31 15:27:30 +02:00
Eladash a06a93d5ba Fix sys_storage_read 2021-07-30 17:22:43 +03:00
kd-11 f6e4cc14a2 vk: Fix a few incorrectly calculated scratch buffer sizes 2021-07-30 12:43:21 +03:00
Nekotekina 658b4f70ef Fix some warnings 2021-07-30 09:31:36 +03:00
Nekotekina fc5840cda6 SPU Cache: allow to dump cache upon startup
Print also some stats (if SPU Debug is enabled).
2021-07-30 09:21:11 +03:00
Nekotekina 2f6db5802f Fix CPU Profiler regression 2021-07-30 09:21:11 +03:00
ibancel 77c191df42 Qt: add fullscreen mouse lock setting 2021-07-29 22:55:55 +02:00
Eladash d85bb3f4eb
vm_ptr.h: Improve try_read() (#10627) 2021-07-29 21:14:29 +03:00
Jan Beich 3a6399aaaa vm_native: add workaround for FreeBSD 12
rpcs3/util/vm_native.cpp:302:16: error: no member named 'memfd_create' in the global namespace
                                m_file = ::memfd_create_("2M", c_mfd_huge_2mb);
                                         ~~^
rpcs3/util/vm_native.cpp:34:23: note: expanded from macro 'memfd_create_'
 #define memfd_create_ memfd_create
                       ^
rpcs3/util/vm_native.cpp:308:15: error: no member named 'memfd_create' in the global namespace
                        m_file = ::memfd_create_("", 0);
                                 ~~^
rpcs3/util/vm_native.cpp:34:23: note: expanded from macro 'memfd_create_'
 #define memfd_create_ memfd_create
                       ^
2021-07-29 20:48:10 +03:00
Jan Beich de6f3b5653 vm_native: enable memfd_create on FreeBSD 2021-07-29 20:48:10 +03:00
Megamouse 0262076bfe Qt: move java mode setting to advanced tab 2021-07-29 12:42:04 +02:00
Megamouse 7aca2785b6 Qt: abort batch PPU compilation on dialog cancel 2021-07-29 10:18:20 +02:00
Megamouse 6dc35a3772 Qt: add nullptr checks in msg_dialog_frame 2021-07-29 10:18:20 +02:00
Megamouse 2efc4812d7 Qt/System: reset boot path after directory scan
This should fix the "Play" Button after batch compiling PPU caches.
Previously you would start the last compiled game, which was kinda weird.
2021-07-29 10:18:20 +02:00
Megamouse bb9c063e80 Remove unused ppu_initialize declaration 2021-07-29 10:18:20 +02:00
Megamouse 22e51e1615 System: add vsh.self when scanning vsh/module 2021-07-29 10:18:20 +02:00
Megamouse 03a46a499e System: make IsPathInsideDir a member function 2021-07-29 10:18:20 +02:00
Megamouse f0e01ceb8f Qt: compile vsh/module instead of vsh.self 2021-07-29 10:18:20 +02:00
Megamouse c2c74982c4 Qt: fix vsh ppu compilation and add compile stage
It was aborted immediately (hilarious).
2021-07-29 10:18:20 +02:00
Megamouse c390c02acb Qt: Compile entire sys folder for firmware 2021-07-29 10:18:20 +02:00
Megamouse 56d46b5a49 Qt: disable VSH boot if not installed 2021-07-29 10:18:20 +02:00
Megamouse 0a7a12bbff RSX: fix 'Working buffer not big enough' 2021-07-27 23:59:12 +02:00
kd-11 ace187cdd0 vk: Fix scratch allocation when doing GPU deswizzle
- We have to use double the memory because the transformation does not occur in-place like normal bswap
2021-07-27 19:56:31 +03:00
kd-11 c54ddabe0b vk: Handle out of memory errors that are deferred during texture binding
- Set out-of-memory flag if we have a failure to build a subresource.
- Mark textures as requiring reload in case of references to invalid data.
- TODO: This is overly complicated and can be handled better with a smart restructure.
2021-07-27 10:52:21 +03:00
kd-11 e5029c532b vk: Fix comparison between composite memory types 2021-07-27 10:52:21 +03:00
kd-11 a4cd9e022a vk: Force explicit minimum size declaration for scratch buffers 2021-07-27 10:52:21 +03:00
kd-11 99bbcd15e1 vk: Fix undefined format class for typeless helpers 2021-07-27 10:52:21 +03:00
kd-11 9d11c8cbb5 vk: Allow creating temporary subresources to fail if we run out of memory. 2021-07-27 10:52:21 +03:00
kd-11 92d1534917 rsx: Set composite images upload context based on their actual contents 2021-07-27 10:52:21 +03:00
kd-11 abd8bbd6ef vk: Allocate enough scratch memory for GPU deswizzle
- Forgot to take alignment into account.
2021-07-27 10:52:21 +03:00
kd-11 13abe785a9 vk: Try to spread memory usage evenly across compatible types if possible
- Avoids running into budget constraints if you just dump everything into one heap
2021-07-27 10:52:21 +03:00
kd-11 6a9d1edee1 vk: Fix use-after-free hazard by checking if we're faulting from within the texture cache
- If we're using the texture cache, DO NOT delete resources.
2021-07-25 20:55:09 +03:00
kd-11 69bdbe97a8 vk: Make use of multi-pool memory types 2021-07-25 20:55:09 +03:00
kd-11 de7ed1cbe9 vk: Scrap minimum scratch buffer size and just allocate what is requested. 2021-07-25 20:55:09 +03:00
kd-11 7d3bbd3cf7 vk: Dynamically select panic boundaries based on resolution scale 2021-07-25 20:55:09 +03:00
kd-11 59e7379010 vk: Implement heap aggregation
- Aggregate heaps of same type under one object and allow allocator to try each matching type.
2021-07-25 20:55:09 +03:00
Eladash be9be6e5c9 Make sys_prx_unload_module use success type logging 2021-07-24 14:23:47 +03:00
Megamouse 867f0e1f02 fix warning 2021-07-23 00:09:46 +02:00
Megamouse 202aed560b Qt: add option to auto install updates 2021-07-23 00:09:46 +02:00
Megamouse 737b0dfd42 Qt: use last window state when leaving fullscreen 2021-07-21 02:39:26 +02:00
Megamouse 66371457fd Qt: fix game window positions if the window is bigger than the screen
If the screen was smaller than the game window, then the window would pop up top right offscreen.
The fix itself was really simple and obvious from the beginning, just some missing clamping.
But I figured it might be less confusing if I add some prosa.
Especially because it took me a couple of hours to figure out why I made it so complex in the first place.
Btw, there might still be some offset to the left occasionally, but that seems to be an upstream issue
2021-07-21 01:15:01 +02:00
kd-11 0502f7881f vk: Disable async texture streaming on all NVIDIA cards 2021-07-20 23:00:00 +03:00
Megamouse 50354253c8 replace some random Emu.Pause with fatal errors 2021-07-20 19:47:00 +02:00
Megamouse 954d83b6a0 Qt: fix BatchCreatePPUCaches cancel 2021-07-20 09:46:51 +02:00
Megamouse f83a877331 Qt: Add VSH to BatchCreatePPUCaches 2021-07-20 09:46:51 +02:00
Megamouse 2a8d740d63 Qt: Add Boot VSH option 2021-07-20 09:46:51 +02:00
Eladash c84e5489f2
vsh.self: Fix execution on default settings (#10586) 2021-07-20 00:36:32 +02:00
Matias aa08df0455
Include different case files on file selection filters (#10587)
* Include upper-case .PUP files on firmware selection window filter
* Include uppercase files on a few more filters
2021-07-19 21:47:21 +02:00
Ilya Oleinik e51d16aa37 Initial implementation of sys_uart 2021-07-19 19:20:43 +03:00
Eladash 98e40d12ef sys_ppu: Implement sys_ppu_thread_rename 2021-07-19 12:37:33 +02:00
Eladash e6e0210e73 Extend ppu_thread::call_history_t formatter 2021-07-19 09:28:46 +02:00
Eladash 83a2f06e3a PPU debugger: Make calling history detect common LLE functions trampolines 2021-07-19 09:28:46 +02:00
Eladash a5c3c7d2e5
cellSaveData/UNIX: Optimize IO (#10574) 2021-07-18 21:08:04 +02:00
clienthax 65b2a0d538 stub rsxaudio 2021-07-18 21:08:03 +03:00
clienthax d099148961 sys_hid vsh 2021-07-18 14:20:33 +02:00
Eladash 6f901636bf rsx: Fix vertical windows' clip 2021-07-18 13:44:23 +02:00
Eladash b087d79a08 PPU debugger: Implement function names at the starting instruction 2021-07-18 13:23:18 +02:00
Eladash 904ec44a8c PPU debugger: Add instruction disasm for PPU calling history 2021-07-18 13:23:18 +02:00
Eladash 6f6503ee32 cellSaveData: Fixup funcDone result check 2021-07-17 23:30:26 +02:00
clienthax 441713d959
sys_storage vsh implementation (#10559)
Co-authored-by: Eladash <elad3356p@gmail.com>
2021-07-17 22:06:40 +02:00
clienthax e75e437a4a sys_ss vsh stubs 2021-07-17 21:35:47 +02:00
kd-11 0d87d909c6 vk: Fix double-spill for invalidated resources 2021-07-17 21:28:11 +03:00
kd-11 2d4df57d87 vk: Fix nul deref in spill code
- Restores code lost in a rebase
2021-07-17 21:28:11 +03:00
kd-11 b7df539871 vk: Fix null deref in texture cache when dumping temporary storage 2021-07-17 21:28:11 +03:00
kd-11 d53f2f10fb rsx/vk: Improve recovery during OOM situations
- Do not spill when running on IGP with only one heap as it will just crash anyway.
- Do not handle collapse operations when OOM. This will likely just crash and there are better ways to handle old surfaces.
- Spill or remove everything not in the current working set
- TODO: MSAA spill without VRAM allocations
2021-07-17 21:28:11 +03:00
Eladash 5940247200 Make little use of formatting byte arrays 2021-07-17 20:02:21 +02:00
Eladash 9a392d2b5c vm_ptr.h: Do not allow dereferencing for void ptr
Do not create vm::ref from it as well.
2021-07-17 20:02:21 +02:00
Eladash a981c65d2f Minor fixup of vm::ptr
const pointers shouldn't disable reading, they should disable writing.
2021-07-17 20:02:21 +02:00
Eladash 81805945ce LV2: Fix IPC key reading from attributes 2021-07-17 20:02:21 +02:00
clienthax 7fe15f5f8d
Stub sys_fs mount functions for vsh (#10561)
Co-authored-by: Eladash <elad3356p@gmail.com>
2021-07-17 19:19:13 +02:00
clienthax 9c5c4457b6 Stub libfs_utility_init to bypass FSCK checks by vsh. 2021-07-17 18:56:07 +02:00
clienthax 1e605de31e sys_sm_get_ext_event2 stub 2021-07-17 18:35:26 +02:00
Eladash 1e9afdc289 Formatting Library: Implement byte arrays formatting 2021-07-17 18:10:43 +02:00
Eladash 1f6ca25820 Implement TAR-based directory archiver
* Implement the ability to save directory contents as TAR.
  With the ability to customize saving of specific files and also select which files are saved and which aren't.

* Implement full original TAR USTAR 255 characters path support.
* Implement file modification time and access time support for extracted/archived TAR.
2021-07-17 17:50:18 +02:00
Eladash 8e2c34a003 PPU debugger: Implement PPU calling history 2021-07-17 17:28:23 +02:00
clienthax c2f0fbcd82 Stub sys_io for vsh. 2021-07-17 17:06:57 +02:00
clienthax 85b33e9cae Hack for msmw2.sprx timeout. 2021-07-17 14:39:36 +02:00
ZeeWanderer 6250e478f4 [MSVC] glslang fix + vs2022 fixes
- glslang - fixed wrong path to common props
 - emucore - fixed for VS2022, its a 64 bit app now
 - common_default.props - use C++20 standard for VS2022 and further
2021-07-17 02:52:03 +02:00
kd-11 aaac4c1bde Clang workaround for c++20 non-compliance 2021-07-15 18:05:35 +03:00
kd-11 974a3c8807 Fix linux build 2021-07-15 18:05:35 +03:00
kd-11 369f1132f3 Formatting fixes
- Non-functional stuff, move along
2021-07-15 18:05:35 +03:00
kd-11 2524c35638 vk: Improve handling of texture cache temporary resources
- Temp resources from the texture cache are used to hold composite objects being sent to the GPU and can waste a lot of memory.
- Remove them if we run out of memory as they can linger around for a long time.
2021-07-15 18:05:35 +03:00
kd-11 d906ccc77e vk: Switch on the new VRAM management system 2021-07-15 18:05:35 +03:00
kd-11 a2f93b0696 rsx: Implement a simple cache eviction routine
- Can remove all non-essential textures from the cache except those passed as an exclusion list
2021-07-15 18:05:35 +03:00
kd-11 77c9dff054 vk: Minor whitespace fix
- Non-functional formatting and warning fixes
2021-07-15 18:05:35 +03:00
kd-11 09f9f21261 vk: Add overallocation quota for texture cache 2021-07-15 18:05:35 +03:00
kd-11 5f6d1644cf vk: Refactor VkTextureCache by moving most of the code to cpp file
- Makes adding next set of changes easier
2021-07-15 18:05:35 +03:00
kd-11 c18e5e07cc vk: Implement VRAM spilling
- The idea is to shift memory to "shared graphics memory" when VRAM is running out
2021-07-15 18:05:35 +03:00
kd-11 000414c47d vk: Refactor surface cache by moving code to cpp file 2021-07-15 18:05:35 +03:00
kd-11 2ffa8f4623 vk: Rename rsx::vk_render_targets to vk::surface_cache
- Makes some changes much easier going forward to pull in vk-specific stuff into vk namespace.
- TODO: The same thing needs to happen with GL
2021-07-15 18:05:35 +03:00
kd-11 53c9fb3e00 vk: Improve memory load balancing and reporting
- Track pool usage
- Take allocation percentages into account when making decisions on whether there is overloading or not
2021-07-15 18:05:35 +03:00
kd-11 342b25d00e vk: Expose memory heap sizes to the runtime.
- This will help to make decisions regarding VRAM utilization instead of relying on budget blindly
2021-07-15 18:05:35 +03:00
kd-11 88abf3a6ba vk: Introduce the concept of VRAM allocation pools
- Each buffer or image has to declare which pool it belongs to. This will aid with memory management down the line.
2021-07-15 18:05:35 +03:00
kd-11 71a5e5333a rsx: Fix invalid reference when purging unlocked sections 2021-07-15 18:05:35 +03:00
RipleyTom a34201ebff
Fix deref in sceNpMatching2CreateContext (#10539) 2021-07-14 00:11:14 +01:00
Eladash 6a7324ab3e kernel_explorer: Atomic PPU state updates 2021-07-10 22:20:37 +03:00
Megamouse f4d0261387 Qt: add more Qt blockingMapped workarounds
This probably won't fix anything, but better be safe than sorry
2021-07-10 13:29:39 +02:00
Megamouse 7f7bd961e2 Qt: kernel_explorer optimizations
- roughly 10 times faster update from scratch on average
- removed some unused function
- added fatals for unexpected node failure
2021-07-10 08:18:38 +02:00
Megamouse fcbacf8afd sys_usbd: add PlayTV SCEH-0036 2021-07-08 22:06:48 +02:00
Megamouse e75de44907 cellGame: treat media apps as CELL_GAME_GAMETYPE_HDD
This is kinda hacky but it fixes some errors in PlayTv
2021-07-08 22:06:48 +02:00
Megamouse 161fa95066 cellGame: improve logging 2021-07-08 22:06:48 +02:00
Megamouse 8f8605ab2f Mount bdvd_dir regardless of patch category 2021-07-08 22:06:48 +02:00
Megamouse 544a458f20 Qt: show patch version for disc games regardless of the patch category
Patches for disc games can also appear as "TV App" etc.
2021-07-08 22:06:48 +02:00
polar 285b9dad83
Refactor faudio submodule (#10397)
* updated bad header import
* added faudio shared library option
2021-07-08 21:31:45 +02:00
Megamouse 770a607ba5 Qt: add PPU LLVM Java Mode Handling to debug tab 2021-07-02 19:34:06 +02:00
Eladash a2d4bd4fff kernel-explorer: Add logging ability 2021-07-02 12:29:59 +02:00
Eladash fe8d524352 Improve kernel-explorer's user experience
* Default width of dialog has been increased to fit PPU, SPURS and filesystem objects' description length.
* Height has been increased as well to allow viwing more objects at once.
* Added title of the game to the kernel explorer's windows' title.
2021-07-02 12:29:59 +02:00
Megamouse e212f16962 sceNp: fix invalid ctx dereference
Fixes "Buzz! Quiz Player" Offline Gameplay
2021-07-01 23:09:23 +02:00
Ani 020fdcc781 rpcs3_version: Bump to 0.0.17 2021-06-30 20:14:13 +01:00
kd-11 194bfc54d1 rsx: Implement dynamic vertex offset updates
- Vertex offsets can be updated mid-draw to dynamically render different meshes without breaking up draws
2021-06-30 10:07:33 +03:00
Eladash 9b050a33e4 Fix HLE callbacks within context of HLE PPU stack variables 2021-06-28 14:31:28 +03:00
Eladash b6fccee6a4 Improve ppu_thread::stack_push
Save actual stack memory allocation size locally. (not in PS3 memory)
2021-06-28 14:09:24 +03:00
Eladash 23468a2d07 vm_ptr.h: Use concepts 2021-06-28 14:01:58 +03:00
kd-11 2c7c1c501d rsx: Implement support for extended vertex programs
- Some games are kinda pushing it with RSX register space and spilling VP data into adjacent unused space.
2021-06-28 10:52:05 +03:00
Eladash 3cbdc3a198 VFS: Fix paths override 2021-06-27 17:49:33 +03:00
Eladash dcb2e8cd9e rsx: Improve VBLANK accuracy 2021-06-27 16:39:08 +03:00
Nekotekina 571bdfc828 Fixup for #10490
Restore explicit signaling of RSX thread for now.
2021-06-27 14:02:32 +03:00
Eladash 0aed00a758
Improve thread aborting mechanism (#10490)
Call pseudo-virtual operator=(thread_state) of thread context.
2021-06-27 11:43:48 +03:00
Eladash 58847fa2ca sys_fs: Fix ENOTMOUNTED of open 2021-06-26 14:53:22 +03:00
Megamouse bba5285740 Qt: apply gui settings on regular apply and save
This fixes the annoying issue of accidentally clicking the dialogs save or apply buttons after changing stylesheets.
2021-06-25 20:27:26 +02:00
Megamouse e7234fd4b2 Qt: replace old grey config icons in gamegrid mode 2021-06-25 19:58:20 +02:00
Long 400002e64c
Increase some icons' visibility in dark themes. (#10485)
* Update custom config, controller, combo icons.

Co-authored-by: Megamouse <studienricky89@googlemail.com>
2021-06-25 19:40:42 +03:00
Kilowog01 d59707bc4b
Trophy notification improvements (#10482)
* Makes the text more similar to the original PS3 trophy notification.
2021-06-25 16:25:44 +03:00
kd-11 926fa73fee vk: Remove unused input from attachment clear pass 2021-06-25 14:45:36 +03:00
kd-11 cd8cb9cced rsx: Don't leak data during partial clears
- Partial clears either in active clear channels or scissor region must get barrier inserts to load previous data.
- Fixes some incorrectly discarded data during clear where data in untouched/uninitialized channels is lost.
2021-06-25 14:45:36 +03:00
Megamouse fad79a96a2 media_info: improve error logging 2021-06-25 09:41:32 +03:00
Megamouse b6128c5dfa cellSearch: extend media_info for video files 2021-06-25 09:41:32 +03:00
Megamouse 68a1da31a0 cellSearch: move audio info to separate util file 2021-06-25 09:41:32 +03:00
Megamouse f4bcf9ad1d Qt: fix warning 2021-06-25 09:41:32 +03:00
Megamouse 7e0f2f9b12 sceNp: add some more constants 2021-06-25 09:41:32 +03:00
Eladash 50be3bd2e5
kernel-explorer: devirtualize lv2_fs_object and print more information (#10487)
* Make lv2_fs_object an "abstract" structure with protected constructor.
* Improve kernel-explorer information for filesystem objects.
2021-06-24 16:47:14 +03:00
Nekotekina 3c614d95b8 fs: alternative fs::pending_file implementation (Win32)
Use MOVEFILE_WRITE_THROUGH instead of sync() on commit().
2021-06-20 22:08:24 +03:00
Eladash aaa20c0ff0
cellCamera/cellGem: Fix time stretching setting (#10476) 2021-06-20 21:25:13 +03:00
Eladash 0531b3d801
rsx: Fix emulation stopping in cpu_thread::is_paused poll (#10475)
Ignore pause flags if thread is stopped.
2021-06-20 20:00:12 +03:00
Eladash 40493c564f GUI: Add PPU threads to debug tab 2021-06-20 19:27:33 +03:00
Eladash bbaa93c846
RSX Cache: Prevent crash on failure to obtain cache directory (#10474) 2021-06-19 16:57:07 +03:00
Nekotekina 72680c7707 sys_fs: improve sys_fs_open accuracy for /dev_bdvd
Based on software test.
2021-06-18 17:47:49 +03:00
Eladash 039ca6e839 Fix cellMouse/Keyboard initialization 2021-06-17 20:43:43 +02:00
kd-11 9fadd48ea3 vk: Ensure async scheduler thread is never auto-spawned by fxo
- This thread is a resource hog for design reasons.
2021-06-17 00:43:20 +03:00
kd-11 4bf9700562 rsx: Remove unused variable leftover from refactoring 2021-06-17 00:43:20 +03:00
kd-11 966aec7ad7 rsx: Resync excluded memory regions to avoid memory tests failing after flush events
- This is a mostly correct fix, but a corner case exists that can leak old data to the surface cache
2021-06-15 15:42:16 +03:00
kd-11 78972cd611 rsx: Refactor surface inheritance logic 2021-06-15 15:42:16 +03:00
Eladash 24e4a43ec4
lv2_timer: manage timers by separate thread (#10445)
Substitutes missing abort op for lv2_obj manager.
2021-06-15 15:04:51 +03:00
kd-11 c3415bcff2 rsx: Fixup for byte order when passing data via vertex registers that are not inline arrays (register vertex data and push buffers) 2021-06-14 23:20:35 +03:00
Megamouse 35a380676e Qt: add missing key auto repeat checks 2021-06-14 19:02:59 +02:00
kd-11 d3ff67ffb5 rsx: Pass vertex attributes streamed via register write in PS3-correct format
- TODO: Optimize this, we can avoid the double bswap in FIFO and then in attribute push
  Not very important since nobody is doing register push in high-performance path.
2021-06-14 10:24:03 +03:00
Nekotekina 6f874be41b vm_native: bypass rpcs3_vm creation if overcommit is enabled (Linux)
Unfortunately, different systems need different approach here.
2021-06-12 19:12:59 +03:00
Eladash cb0929d933 Logs: Prevent minor race in Emu.Run() regarding logging levels 2021-06-12 13:14:04 +03:00
Nekotekina dfbd63df94 vm_native.cpp: change rpcs3_vm name/location priority (Win32)
Prefer temp directory, rename to rpcs3_vm_sparse.tmp
Try to remove archive attribute (doesn't work well).
2021-06-11 19:15:21 +03:00
Eladash 76bfe54c7e Improve bitwise serialization trait 2021-06-11 16:54:17 +03:00
Megamouse 9cbcce671d Qt: Fix Play/Pause/Resume Shortcuts 2021-06-11 08:28:42 +02:00
Eladash 0628a5d931 serialization.hpp: Fixes 2021-06-11 08:59:02 +03:00
Nekotekina 696be6aacd Implement fmt::ensure (assert-like with formatted message) + fmt::tie
Arguments should be provided via fmt::tie() due to some limitations.
Allow to specify simple message (non-formatting) for plain ::ensure().
Remove redundant function for narrow error.
2021-06-10 21:16:57 +03:00
Megamouse 766cc2d42f Qt: fix empty game list phenomenon 2021-06-10 17:45:09 +02:00
Megamouse 2dc6adc038 Qt: fix possible race in RepaintIcons
This might also improve performance while scrubbing the icon size slider
2021-06-10 00:24:04 +02:00
Megamouse 27cc5c8a63 Qt: invalidate invisible game item pointers 2021-06-10 00:24:04 +02:00
kd-11 cd6552d344 vk: Properly destroy renderpass cache 2021-06-09 22:35:50 +03:00
kd-11 20bd723e7c rsx: Add floor workaround for GPUs with rounding issues
- Mainly affects nvidia where x/w * w can sometimes return a value smaller than x.
  In such conditions, floor(x) will return x-1 if x is an integer which is horribly wrong and exaggerates minor precision drift to great proportions.
2021-06-09 10:55:55 +03:00
Nekotekina 2d3fe7ce1c fixed_typemap.hpp: add range iterator
Remove recently added functions.
2021-06-09 00:07:15 +03:00
Eladash c918f395b9 Make rsx::simple_array compatible with serialization 2021-06-08 19:29:46 +03:00
Eladash 4a4f318e24 System.cpp: Move some Emu.Stop() code to a more strategic placement 2021-06-08 19:29:46 +03:00
Eladash e7b1fc6696 Fixup serialization utility 2021-06-08 19:29:46 +03:00
Eladash 76bf720adf Improve emulation stopping speed
Split phases of signalling threads and joining them.
2021-06-08 18:26:14 +03:00
Eladash 2169e8d935 Implement serialization.hpp, remove cereal submodule
Bump RSX capture version, use new serializer.
2021-06-07 16:28:42 +03:00
kd-11 ddbe496097 rsx: Fix depth/color mismatch resolve in texture cache
- Sometimes we need a depth texture but only a color texture is available.
2021-06-07 01:03:49 +03:00
kd-11 3f80d0b7d8 rsx: Fix surface deduplication crash 2021-06-07 01:03:49 +03:00
Megamouse 2eebecfb17 Qt: Fix concurrency bug in trophy manager
The missing mutex frequently caused a crash after I improved the individual trophy folder parsing by deferring icon loading to when it is actually needed.
2021-06-06 19:26:21 +02:00
Megamouse 70c24a9466 Qt: Only load trophy icons on a need to know basis
Also cache existing trophy icons
2021-06-06 19:26:21 +02:00
Megamouse 4ab2e40d8a Qt: simplify zero padding in trophy icon path 2021-06-06 19:26:21 +02:00
kd-11 568af756cc rsx: Fix expired sampler descriptors
- Rebuilding when strict mode is enabled was incomplete.
  The copy has to be redone if the source has been updated.
2021-06-06 15:37:47 +03:00
Megamouse f5366c91a7 Qt: kind of lazy loading icons 2021-06-06 09:38:13 +02:00
xddxd b5f1f50a16 Get rid of mobile Kepler class and add some missing GPUs 2021-06-06 08:07:43 +02:00
kd-11 6ac9e6f9c4 gl: Add some debug visualization to internally verify consistency 2021-06-05 21:02:14 +03:00
kd-11 39815801aa rsx: Implement proper decoding for some obscure fragment instructions
PK4UBG and UP4UBG were dropped from the NV_fragment_program spec in 2002.
Not much information about them remains but seems pretty straightforward.
2021-06-05 21:02:14 +03:00
Eladash 11ab9b7fa9
Fix sys_event_flag_wait result set (#10404)
Set result upon syscall exit, not at the beginning.
2021-06-05 16:41:02 +03:00
Eladash a7f1e788e6
Fix missing game licence logging (#10402) 2021-06-04 20:06:04 +02:00
polar 6c44664c19
BUILD: Refactor zlib submodule (#10393) 2021-06-02 07:33:50 +02:00
Nekotekina f2d6b52561 Fix span copy after refactoring
- Add range check at fast path.
- Fix typo in element by element copying.
Should fix #10385
2021-06-01 21:18:25 +03:00
JoãoPaulo 8405314399 Update FW 4.87 Latest Version
Updates the latest FW version according to: https://www.playstation.com/en-us/support/system-updates/ps3/
List of changes:
2021-06-01 20:20:52 +03:00
kd-11 98f534b1bd vk: Rewrite partial clear shader
- Completely removes the feedback loop and replaces with hardware channel masking
2021-06-01 12:54:10 +03:00
kd-11 f85881c18c vk: Enable use of input attachments 2021-06-01 12:54:10 +03:00
polar b8b5b93b63
BUILD: Refactor spirv submodule (#10384)
* relocated SPIRV files

* updated gitmodule paths for Vulkan submodules

* cleaned up Vulkan child builds

* updated gitignore
2021-06-01 09:53:58 +02:00
Megamouse 20e25cd928 Qt: fix game list custom config icon refresh
I accidentally forgot to update the custom config icon after custom config creation/removal.
This happened during some refactoring back in mid-april.
2021-06-01 09:31:23 +02:00
Megamouse ac83871214 impressive typo fix 2021-05-31 23:01:13 +03:00
Nekotekina a1608b636f span: implement as_span workarounds as utils::bless
Minor cleanup.
2021-05-31 15:46:34 +03:00
Nekotekina d862817485 vm::ref: remove erroneous default constructor 2021-05-31 15:31:20 +03:00
kd-11 4a32b70aec vk: Validate pipeline state before compiling in case of shader cache moved between GPUs/drivers 2021-05-30 22:35:34 +03:00
kd-11 9199b1b1d8 vk: Improve compatibility with sub-par drivers and hardware
- Adds workarounds for INTEL + MSAA
- Adds support for younger drivers where all features may not be
  implemented.
  Things that won't out-right break the emulation can be
disabled.
2021-05-30 22:35:34 +03:00
Ani a49446c9e9
Replace gsl::span for std::span (c++20) (#7531)
* Replace gsl::span for std::span (c++20)
* Replace gsl::byte with std::byte

Co-authored-by: Bevan Weiss <bevan.weiss@gmail.com>
2021-05-30 17:10:46 +03:00
Nekotekina f5e529db61 shared_ptr.hpp: don't use fake objects
This lifts the limitation for casting with abstract classes.
Use new C++20 feature (constexpr allocator) to test viability.
Add SamePtr concept to types.hpp
2021-05-30 15:07:17 +03:00
Nekotekina eec9578619 types.hpp: add PtrCastable concept 2021-05-29 18:32:13 +03:00
Eladash d81a5b1423 SPU LLVM: Add missing WRCH PC updates 2021-05-29 15:26:52 +03:00
Megamouse 3cbe42df0a pads: Remove outdated DualSense battery note 2021-05-29 12:46:21 +02:00
Megamouse a2da525064 cellVdec: silence "Unsupported time_base" error log spam 2021-05-29 12:46:21 +02:00
Malcolm Jestadt 7c2b08b9b6 SPU LLVM: Expand branch optimizations for more instructions 2021-05-29 13:07:35 +03:00
Megamouse 99af70ae59 Include limits.h 2021-05-29 10:09:56 +02:00
Megamouse 5a0b93742c overlays: move more code to cpp 2021-05-29 10:09:56 +02:00
polar 7c7cc3914d
BUILD: Refactor glslang submodule (#10361)
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2021-05-29 09:47:51 +03:00
Megamouse 0d64b0f94d VS: fix libPng ProjectReference in emucore 2021-05-29 08:17:30 +02:00
Megamouse f18e80e899 fix some warning spam 2021-05-29 08:17:30 +02:00
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