Commit graph

8660 commits

Author SHA1 Message Date
kd-11 1df1ceb4ea gl: Support new glyph format with array textures 2020-02-22 15:07:14 +03:00
kd-11 6178a0ab25 overlays: Migrate to wide-char strings 2020-02-22 15:07:14 +03:00
Megamouse 171e6c6e54 Qt: remove duplicate paths in game list 2020-02-21 21:00:46 +01:00
Megamouse 313b967217 Qt: simplify blockingMap occurances 2020-02-21 21:00:46 +01:00
Megamouse b47a8b9995 Skip some logging in add_only Load 2020-02-21 21:00:46 +01:00
Megamouse c4a1c6f845 Do not reset PS3_GAME when booting disc patches 2020-02-21 21:00:46 +01:00
Eladash 24d3e2b2b8 cellGameDataCheckCreate(2): More improvements
* IsNewData is false only if PARAM.SFO exists.
* Don't create directory on error (setParam == nullptr && isNewData).
* Return CELL_GAMEDATA_ERROR_BROKEN if PARAM.SFO exists on target directory yet is not from GD category.
2020-02-21 21:15:55 +03:00
Nekotekina 145b80d262 Re-enable warning "macro redefined" (clang) 2020-02-21 19:36:05 +03:00
Nekotekina 5e75a0c497 Disable cotire on travis
Make some workarounds for clang because it poorly supports -Wold-style-cast
2020-02-21 17:03:54 +03:00
Nekotekina 972e0ab31d Remove -Wno-reorder and make it an error 2020-02-21 15:20:34 +03:00
Eladash 54f2c27ba0 cellGameDataCheckCreate(2): Set nullptr in setParam
* setParam is nullptr by default.
* if setParam is null and it's new data, return error code.
2020-02-21 14:49:45 +03:00
Eladash 0ba1f8f4ef Fix cellDiscGameGetBootDiscInfo on error
* Always set first dword to 0, other bytes are untouched,
2020-02-21 14:49:45 +03:00
Eladash 4d7e53d7a0 cellGameDataCheckCreate(2): Check dirName 2020-02-21 14:49:45 +03:00
Eladash 0c757222cb Minor improvements to sys_ss_random_number_generator
* Replace CELL_EABORT with exception.
* Improve error codes a bit.
* pkg_id == 1 should not return an error if root permission is present.
* Avoid passing vm pointers to native API, use temp buffer instead.
2020-02-21 14:49:45 +03:00
Megamouse 0ed87be47a Qt: add apply button to settings dialog 2020-02-21 10:08:22 +01:00
Silent e005581dda Gracefully fall back to a null renderer if XAudio2 fails to Init
This can happen as a non-error condition if user has no output
audio devices enabled.
2020-02-20 23:33:09 +03:00
Silent 312fc94daa Replace XAudio2 implementation with an unified Xaudio2Redist
This removes dual implementation for 2.7 and 2.8/2.9 interfaces
and also removes reliance on DirectX End User Runtimes for Windows 7.
2020-02-20 23:33:09 +03:00
Megamouse 0dd417e5f2 Add more game window title options 2020-02-20 20:07:25 +01:00
Eladash dd85e733d3 Fixup for #7304 2020-02-20 20:31:56 +03:00
Nekotekina 9e9ddf42c9 Change stdafx.h to trigger pch regeneration 2020-02-20 17:42:28 +03:00
Nekotekina 3e0e1f668c Another attempt to fix OSX 2020-02-20 16:54:56 +03:00
Nekotekina 987223da3f Minor fixup for /dev_flash creation 2020-02-20 14:38:09 +03:00
Nekotekina 78cc36cdd8 Allow empty /dev_flash cfg (fixup) 2020-02-20 14:07:26 +03:00
Nekotekina da036de3e4 Restore some /dev_flash logic 2020-02-20 12:43:53 +03:00
Nekotekina 92e3eaf3ff Fix signed-unsigned comparisons and mark warning as error (part 2). 2020-02-19 22:54:58 +03:00
Nekotekina 771eff273b First part of fixing sign-compare warning (inside be_t). 2020-02-19 22:54:58 +03:00
Nekotekina 70bcb1cd52 Add "-Wno-macro-redefined" for clang spam 2020-02-19 21:17:23 +03:00
Nekotekina 762c8d5430 Remove -Wno-sign-compare 2020-02-19 21:17:23 +03:00
Eladash 6de91a1691 HLE cellGcmSys: Make IOTable accurate
Affects cellGcmAddressToOffset when using addresses above 0xC0000000
2020-02-19 18:11:30 +00:00
Eladash 1aa11440e0 HLE cellGcmSys: Make cellGcmUnmapEaIoAddress accurate 2020-02-19 18:11:30 +00:00
Eladash df8d0cde4a RSX/SPU: Accurate reservation access 2020-02-19 18:11:30 +00:00
Eladash f02b4801b2 Fix max SPURS threads regression 2020-02-18 19:20:40 +00:00
Eladash 727d783959 RawSPU: protect NPC from writes/reads in running state 2020-02-18 18:09:10 +00:00
Eladash fad8b38b28 sys_spu: protect sys_spu_image members in kernel mode
Save relevant info in idm, set sys_spu_image segs and nsegs members to 0.
2020-02-18 18:09:10 +00:00
Nekotekina 8a176de6a1 Restore -Wenum-compare and fix some [=] warnings 2020-02-18 17:37:30 +03:00
Nekotekina c48ceafc15 sys_sync.h: fix warning (signed prio) 2020-02-18 14:53:23 +03:00
Nekotekina ee6494c14b Use strcpy_trync in cellAvConfExt.cpp (silence warnings) 2020-02-18 14:53:23 +03:00
Nekotekina f08c778d2c Use more starts_with/ends_with.
Remove ends_with global func.
2020-02-18 14:53:23 +03:00
Silent ea9abe7701 Qt: Update Game List Icon on changing Game List Mode 2020-02-18 00:25:21 +01:00
Nekotekina 950940febe cheat_manager: minor fix for T to be_t transition 2020-02-17 22:00:32 +03:00
Nekotekina 6e7fbc5c5c endian.hpp: fix zero array warning 2020-02-17 22:00:00 +03:00
Nekotekina 6a1a0bf48d Use std::endian for endianness test
Remove legacy IS_LE_MACHINE IS_BE_MACHINE macro.
2020-02-17 21:33:24 +03:00
Nekotekina 244e74ebe2 Try to ignore some annoying warning (seems CIB) 2020-02-17 20:56:03 +03:00
Silent aa14432846 Disable vertex cache checkbox with MTRSX 2020-02-17 20:34:07 +03:00
Megamouse 7a7ac625cd move enum formatters from system to config files 2020-02-17 15:08:17 +03:00
Megamouse fe75311be2 move config structs to own files and clean up some headers 2020-02-17 15:08:17 +03:00
Eladash 812d03894b
PPU exec/ovlm ldr: restrict allocations 2020-02-16 22:48:23 +02:00
kd-11 5e6b1003ec vk: Only declare explicit subpass dependencies for RADV 2020-02-16 18:00:06 +03:00
clienthax a08ed0d22e Fix #7445 2020-02-16 17:09:32 +03:00
Megamouse b5ed73ebe0 Qt: add reset button to game window title and center the label 2020-02-16 13:56:49 +01:00
Eladash c1bdaccd8c sceNpTrophyRegisterContext: Fix off by one progress callbacks count 2020-02-15 23:32:29 +01:00
Eladash 4421831c8b sceNpTrophyRegisterContext: Fix values passed to first callback 2020-02-15 23:32:29 +01:00
Eladash d03804b523 Fix sceNpTrophyGetTrophyInfo
* Only writeback data on success.
* Fix a typo on error code of invalid trophy ID.
2020-02-15 23:32:29 +01:00
Nekotekina 634c4355fe Fix startup failure on invalid games.yml
Add some exception checking/ignoring.
2020-02-15 22:34:10 +03:00
Megamouse ee54ba970a GUI: add custom title format to settings dialog 2020-02-15 20:33:02 +01:00
kd-11 23f1515448 vk: Explicitly declare null subpass dependencies
- We do not want any actual dependencies, but it turns out removing them
  entirely makes the driver add even worse dependencies.
2020-02-15 21:45:25 +03:00
Nekotekina 4018b833ad game_list: fix duplicate removal from games.yml
Also add some warnings.
2020-02-15 14:08:08 +03:00
Eladash ddf87864de atomic_t: Fix regression from #7489 2020-02-15 14:07:52 +03:00
Eladash 299af768e8 HLE cellGcmSys: Make cellGcmAddressToOffset accurate 2020-02-15 14:07:52 +03:00
Megamouse e645627b78 Qt: Allow for duplications in game list
This fixes app versions when multiple game data directories were found.
We only removed duplications because we didn't wanna see multiple disc games from different locations
2020-02-15 11:36:01 +01:00
Megamouse 1cb1d14d0c Qt: only add version update hint to bootable applications 2020-02-15 11:36:01 +01:00
Megamouse 1c2df15755 Qt: simplify category localization in gamelist refresh 2020-02-15 11:36:01 +01:00
Megamouse 687bb1697b Qt: fix gamelist version check regression after localization changes 2020-02-15 11:36:01 +01:00
Eladash 04e0bf2eff Whitespace fix after #7087
Was this close to enter programmers' hell.
2020-02-15 11:37:13 +03:00
Eladash eb8710d3c1 atomic.hpp: C-style casts cleanup 2020-02-15 11:37:13 +03:00
Eladash e98fcfdf77 rsx debugger: Fix a crash on opening before rsx was intialized 2020-02-15 10:41:42 +03:00
Eladash cdda19c79f Fix recursive locking in sceNpTrophyUnlockTrophy 2020-02-15 10:41:15 +03:00
Eladash fa9330d0e0 Log returned reqspace in sceNpTrophyGetRequiredDiskSpace 2020-02-15 10:41:15 +03:00
Eladash 1d4595a349 Idm: Minor assert fix 2020-02-15 10:41:15 +03:00
Eladash 9344b21484 rsx: Unify FIFO recovery methods
TODO: Maybe consider fifo stack content when recovering.
2020-02-14 17:11:26 +03:00
Eladash 07f300a14e rsx: ZCULL typo fix 2020-02-14 17:11:26 +03:00
Eladash ddeb39d8de HLE cellGcmSys: Fix unmapping 2020-02-14 17:11:26 +03:00
Nekotekina 0d7aa5e310 GUI: implement custom title format
New option "Window Title Format" in Misc.
Backward compatible with FPS disabler.
Make rpcs3:::get_branch() return string_view.
2020-02-13 21:24:52 +03:00
Eladash 78c49e7331 cellSearch: another memory access fix 2020-02-12 20:02:18 +03:00
Eladash 9760053c8c
cellSearch: Fix id memory access (#7476) 2020-02-12 18:17:45 +03:00
Silent 3006b003c4 Implement links as a cellSearch specific concept
Linking in VFS is done only from cellSearchPrepareFile and works
by mounting virtual files to host FS files
2020-02-12 12:49:02 +03:00
Silent e30637351e Move SearchState to a fxo object so it resets with emulation 2020-02-12 12:49:02 +03:00
Silent d2b83c69bb cellSearch updates from Brolijah
Co-authored-by: Brolijah <brolijahrh@gmail.com>
2020-02-12 12:49:02 +03:00
Nekotekina bcbe324534 geometry.h: make conversion operators explicit
It requires static_cast<> to call them.
2020-02-11 13:21:45 +03:00
Eladash dcb30df7c8 rsx capture: Fix capture recovery after a crash 2020-02-10 21:39:39 +00:00
Eladash bdab26ec09 rsx: rewrite io mappings
Along with some with fixes to cellGcmSys HLE.
2020-02-10 21:39:39 +00:00
kd-11 f47333997f rsx: Validate memory blocks before checking for overlap 2020-02-10 21:48:35 +03:00
kd-11 3787108ee7 rsx: Typo fix in audit condition 2020-02-10 21:48:35 +03:00
Megamouse 30d176ac5e Qt/linux: set DISPLAY variable if undefined 2020-02-10 21:48:13 +03:00
RipleyTom 98f91457bf Small sys_usbd changes 2020-02-10 21:47:48 +03:00
Megamouse 6847e52364 Fix visual studio filters after someone tinkered with the files 2020-02-10 21:47:13 +03:00
Megamouse 6862790cf7 Qt: icon overhaul 2020-02-10 17:38:19 +01:00
Nekotekina 034267adb2 Compilation fix 2020-02-10 16:57:56 +03:00
Nekotekina 491526b421 Add option USE_COTIRE=ON (by default)
Precompiled headers cause rebuild problems with ninja, for example.
2020-02-10 14:47:12 +03:00
Nekotekina 5a41d75eb8 Silence unused parameter warning 2020-02-10 14:47:12 +03:00
Nekotekina 4bc431ec31 Silence deprecation warning (implicit capture of this on [=]) 2020-02-10 14:47:12 +03:00
Megamouse 5d82b0f4c4 Qt: set min version to 5.14 2020-02-10 14:05:36 +03:00
RipleyTom 762718002e make decrypt default to All Binaries 2020-02-10 09:45:06 +01:00
Eladash 80eff58950 cellAudio: Implement cellAudioSet/RemoveNotifyEventQueueEx 2020-02-09 12:31:55 +00:00
Nekotekina 7ea4eb0095 Atomic fix
Fix possible pointer arithmetic ops.
Fix fat atomics (currently unused).
2020-02-09 14:09:29 +03:00
kd-11 efc8c3f4a9 vk: Fixup for VK_ERROR_SUBOPTIMAL_KHR
- break from a switch does not break out of the external scope!
2020-02-09 13:45:30 +03:00
kd-11 792c481f6d rsx/overlays: Fix clipped rendering of UI elements
- Take viewport offset into account when applying window transforms.
  This is necessary because gl_FragCoord is based on the framebuffer and not the viewport.
2020-02-09 12:55:56 +03:00
Eladash 11675d7645 Compilation fix for VSH pr 2020-02-09 06:48:16 +00:00
Eladash 1915fe75a4 VSH: Stubs 2020-02-08 23:07:03 +03:00
Eladash 9d1bb60ad7 cellGcm HLE: fix cellGcmMapMainMemory
Fix arguments order, softcode RsxReports::report offset.
2020-02-08 22:18:56 +03:00
Eladash b7043ce000 Make rsx::get_address report caller location 2020-02-08 22:18:56 +03:00
kd-11 c64935f9dd rsx: Clean up graphics state notifications and add notification for change in point size
- Adds a backend notification when point size changes.
- Refactors all those separate notifiers into one reusable template.
2020-02-08 18:13:05 +03:00
Eladash 629eddfb9f sceNpTrophy: Implement SCE_NP_TROPHY_ERROR_CONTEXT_NOT_REGISTERED 2020-02-08 11:11:59 +00:00
Eladash 1f94c8f272 sceNpTrophyGetGameProgress Fix 2020-02-08 11:11:59 +00:00
Megamouse 0c8611bd49 Qt: fix game category localization 2020-02-08 11:04:13 +01:00
Megamouse 5dcb91b671 Restart games with the same config instead of global 2020-02-08 11:04:13 +01:00
Megamouse 7abda27b46 Fix Boot inconsistencies for Reloads 2020-02-08 11:04:13 +01:00
Megamouse 901fc87bca Only start the playtime clock if it makes sense 2020-02-08 07:13:29 +01:00
kd-11 54da9ac7e5 overlays: Fixup
- Avoid calling join on self thread.
- Avoid use-after-free.
2020-02-07 19:28:41 +03:00
kd-11 e45360de2b overlays: Fix use after free
- Overlay can be closed when secondary thread is asleep!
  Wait for it to wake before proceeding with deletion.
2020-02-07 16:15:02 +03:00
kd-11 d59c449ff6 vk: Remove an overzealous assert 2020-02-07 16:15:02 +03:00
eladash f901846acb RawSPU: execute MFC proxy cmd after reading CMDStatus
Implement MFC proxy argument sequence checking.
2020-02-06 20:43:38 +00:00
Megamouse edcd2fc14a Qt: fix game grid regression 2020-02-06 19:58:19 +01:00
Megamouse 382bdcdcb7 Qt: set Tooltips.h to UTF-8 in order to fix translation with special characters 2020-02-06 17:41:50 +01:00
Megamouse 1bbc60c3e7 Qt: do not use localized filenames for default current config and default stylesheet 2020-02-06 17:41:50 +01:00
Megamouse c13d345604 Qt: add language menu 2020-02-06 17:41:50 +01:00
Megamouse efe907ffae Qt: use config to load translation file on startup 2020-02-06 17:41:50 +01:00
kd-11 0bba04ef8d vk: Fix a bug in RCB/RDB when MSAA is set to disabled.
- Initially MSAA option was hardcoded to be always enabled, this bug is a remnant of that time.
2020-02-06 17:54:05 +03:00
kd-11 43dae6c14d gl: Implement RCB/RDB 2020-02-06 17:54:05 +03:00
kd-11 2b5c24b304 gl: Fix memory barrier implementation and stub for RCB/RDB
- It's a miracle it even compiled
2020-02-06 17:54:05 +03:00
kd-11 50b1e26b17 gl: Fix a long-standing regression with typeless transfer caused by a typo.
- The parameters for the final upload should be 'unpack_info' not 'pack_info'!
2020-02-06 12:44:46 +03:00
kd-11 18e0559438 gl: Fix per-level sub-image sizes to comply with OpenGL guidelines for compressed textures 2020-02-06 12:44:46 +03:00
Eladash 37513b1898 SPU reservations: Do not access violate under vm::writer_lock
TODO: Throw exception when encountering page faults notification enabled memory
2020-02-06 00:27:17 +00:00
Silent fbbad7c851 Include trailing separators in section split
This fixes the case on Windows where one of the paths ends up consisting
only of a drive letter and no trailing slash - in which case Windows
treats it as "current directory on drive X" and not "root of drive X"
and GetFileAttributes throws an invalid param error
2020-02-05 23:21:32 +00:00
Eladash f8b3c48af7
sys_spu: Implement proper SPU group flags (#7320)
* sys_spu: Implement proper SPU group flags
2020-02-05 20:46:05 +00:00
kd-11 3cc42c1bf8 gl: Fix broken image transfer operations 2020-02-05 18:18:09 +03:00
kd-11 b6422c9a33 rsx: Fixup
- Destination Y coordinate must be 'rebased' onto the current slice by subtracting its offset.
  Only the local path was affected this time
2020-02-05 18:18:09 +03:00
Eladash 049e392a97 Make preferred spu threads dynamically adjustable 2020-02-05 10:06:07 +00:00
Eladash 9a64d08c9f Make sleep timers accuracy dynamically adjustable 2020-02-05 10:06:07 +00:00
Nekotekina c0f80cfe7a Use attributes for LIKELY/UNLIKELY
Remove LIKELY/UNLIKELY macro.
2020-02-05 10:42:34 +03:00
Eladash 49e11b7cfd cellVdecQueryAttrEx: Add some error checks for MPEG2 2020-02-05 05:01:07 +00:00
Eladash 6a32ceaab5 cellVdecQueryAttrEx: Add workaround for codec specific info 2020-02-05 05:01:07 +00:00
Eladash acc7320cae Fix cellVdecGetPicItem
Fix potential overflow, race condition and correctness fixes for picInfo_addr
2020-02-05 05:01:07 +00:00
Nekotekina 1a78e0e80c Make RPCS3 compile in C++2a mode 2020-02-04 23:43:55 +03:00
Eladash e9e8f0c5b7 cellGame: report not found sfo params 2020-02-04 18:29:52 +03:00
Eladash cb52ee0a4d cellGame: report fs::remove_all failure 2020-02-04 18:29:52 +03:00
Eladash 4488312e81 Avoid out of memory with cellGameGetParamString 2020-02-04 18:29:52 +03:00
kd-11 9d9b5c4d66 rsx: Rewrite coverage test to take sum of areas into account.
- TODO: A proper sweep algorithm to calculate sum of overlapping rectangles
2020-02-04 16:20:52 +03:00
kd-11 b9ec012922 rsx: Allow for proper data checks when WCB/WDB is enabled 2020-02-04 16:20:52 +03:00
Megamouse d47a8b49a4 Qt: use current locale for last played in gamelist
This also sets the basic groundwork for Qt translations
2020-02-04 09:18:05 +01:00
Megamouse 1759d6d90a Qt: fix gamelist sorting for playtimes 2020-02-03 21:22:11 +01:00
Nekotekina c4a01875d0 Space fix commit 2020-02-03 11:16:26 +03:00
Nekotekina f9a8efe406 SPU LLVM: gisable NewGVN pass
It goes into an endless loop with memory leak for some reason.
2020-02-03 11:16:03 +03:00
Silent 7f4e546f19 Protect m_storage.find(key) to fix a race 2020-02-02 22:28:14 +03:00
Nekotekina 87a5dd66ab Move logs::channel registration out of the constructor
Allow constinit initialization of logs::channel.
2020-02-02 14:12:54 +03:00
Eladash e57c01907e cellVdec: Improve cellVdecQuery and cellVdecOpen 2020-02-02 09:01:32 +03:00
kd-11 7d2ed9200d rsx: Remove sections that are wholly inherited by new blocks
- Allows sections reclaimed by the surface store due to overlap/inheritance to be identified and removed.
- Additionally, potentially lowers the number of flushes required per block with multiple overlaps improving efficiency and theoretically performance.
2020-02-01 15:14:29 +03:00
Nekotekina f6e90b4c72 Fix FAudio logging 2020-02-01 13:34:36 +03:00
InvoxiPlayGames c1180d76dd sys_usbd: Fix bug preventing multiple USB devices 2020-02-01 12:34:42 +03:00
Nekotekina 6dfd97f0b6 Modernize SPU logging (spu_log variable) and remove log legacy
Remove legacy macro (LOG_ERROR, etc)
2020-02-01 11:52:52 +03:00
Nekotekina 327bb2d8f0 Modernize PPU logging (ppu_log variable) 2020-02-01 11:52:24 +03:00
Nekotekina 21f7b0ff0f Remove HLE log channel 2020-02-01 11:52:24 +03:00
Nekotekina 15391f45d0 Modernize RSX logging (rsx_log variable) 2020-02-01 11:52:22 +03:00
Nekotekina 3c0bd821c8 Give log channels fancier names
Improve LOG_CHANNEL macro to accept custom name.
2020-02-01 10:43:43 +03:00
Nekotekina 3eca2d5d6c Remove legacy LOADER log channel 2020-02-01 07:49:38 +03:00
Nekotekina d9a0619ddd Remove legacy GENERAL log channel
Add some more log channels instead.
2020-02-01 07:49:38 +03:00
Nekotekina efafda2650 Add config to silence all logs 2020-02-01 07:49:38 +03:00
Eladash 943368912b Hotfix after #7351 2020-02-01 05:50:58 +03:00
Nekotekina 1d0f359406 logs: add more log channels instead of GENERAL 2020-01-31 16:44:48 +03:00
Nekotekina 67075dfc6c logs: cleanup for audio backends
In process of removing GENERAL log channel.
2020-01-31 16:44:48 +03:00
Nekotekina 26cccead6e logs: remove legacy MEMORY channel
Add channels vm_log, sig_log.
2020-01-31 16:44:48 +03:00
Asinine e6f7467f67
Update missing rap file error 2020-01-31 14:13:55 +01:00
kd-11 36d5db7f30 rsx: Plug texture data leak in the 'exact match' path.
- Followup to previous texture data leak fix for the replaced section path.
2020-01-31 14:56:53 +03:00
Nekotekina 007a7a5859 Fixup for LOG system.
Register all channels at program initialization and allow duplicates.
2020-01-31 12:09:52 +03:00
Nekotekina 59a0f810b9 Implement fat atomics
Atomics with embedded mutex bit.
2020-01-31 12:09:52 +03:00
Silent 9f678cc47a Fix code relying on initialization order
Allows Debug - LLVM to boot
2020-01-31 11:23:55 +03:00
Silent aeebcfe141 Fix Debug - LLVM in VS project files 2020-01-31 11:23:55 +03:00
Eladash 48a847d1b6 Qt: Bugfixes regarding usage of ShowConfirmationBox 2020-01-30 21:49:08 +01:00
Eladash 232c6c3aaf Qt: Display "Reboot With Custom/Global config" on running game 2020-01-30 21:49:08 +01:00
kd-11 c9e35926f5 rsx: Preserve pixel data when splitting sections
- Ironically rhis data leak is caused by trying to fix another type of data leak
2020-01-30 21:07:36 +03:00
Megamouse 8ef69429d8 Add early out to pkg_install 2020-01-30 18:21:18 +01:00
Megamouse 336cd6e33a Qt: Prevent Qt from blocking the explorer during installations 2020-01-30 18:21:18 +01:00
Silent 360e484b08 Fix ellipsis
… is an UTF-8 character and those don't really belong in messages like this anyway
2020-01-30 16:06:00 +03:00
Eladash 92466165f6
Increase Maximum Vblank Rate and Clocks Scale
Allow x30 times the speed of vblank rate + clocks scale of original PS3.
In theory a 60 fps limit game which scales frame limit perfectly with vblank rate can be played at up to 1800 fps with this change.

And:
* Fixed lv2 sleep with Clocks Scaling
* Make these settings dynamicaly adjustable.
* Avoid code duplication
2020-01-29 21:42:41 +01:00
kd-11 1206a5d4b7 rsx: Tweak blit engine heurestics a bit
- Reject writes to RTT if the source data is of unknown origin.
  non-RTT data and only 1 line in length is suspicious and often GPU data like programs or other rendering inputs.
2020-01-29 12:54:06 +03:00
TotalCaesar659 c1d7b46235
Qt: change labels in package installer (#7325) 2020-01-29 00:39:05 +01:00
Malcolm Jestadt ad8988afd3 Embedded SPU elf patching
- PS3 games include both PPU and SPU code in their PPU executables, so to make patching games that make use of the same SPU libraries easier, we add a system to find and patch them.
- Patches for this system still use SPU LS (Local Storage) addresses despite the fact that we aren't loading anything into SPU LS at this time. The patches are checked against each segment and patched in place.
2020-01-28 02:13:37 +03:00
Ivan 7f07b79c04 Partial revert of #7180
PC is PS
2020-01-27 07:05:18 +03:00
RipleyTom 610a6a1404 Increases number of buffers when buffering 2020-01-27 02:13:30 +00:00
Eladash a7aef22754 ppu: Log SELF header information and CIA of caller HLE functions 2020-01-27 01:21:40 +00:00
Eladash 4e0070f16d Log sys_spu thread group and thread names
Also safely read thread name after relevant error checks passed.
2020-01-26 20:32:10 +00:00
Eladash 7ae679adbe Fix logging of ppu name in sys_ppu_thread_create/rename 2020-01-26 20:32:10 +00:00
Eladash d481c3c7fd cellGameGet/SetParamString: Implement CELL_GAME_ERROR_NOTSUPPORTED 2020-01-26 20:32:10 +00:00
Eladash a9162a3f57 SPU LLVM: Improve approximate FCMGT 2020-01-26 18:37:07 +00:00
Megamouse b341113ad8 Qt: Change some labels 2020-01-26 18:46:04 +01:00
Nick Renieris 1e69de1205 overlays/perf: Graph label tune-up
Place graph text on top, split in 2 lines, center it horizontally.
Also if it's wider than the graph, match up graph's width to it.
2020-01-26 17:55:11 +01:00
kd-11 79216917b3 rsx: Workaround for broken rtt resampling
- Avoids WCB requirement for now to keep res scaling working correctly.
- TODO: Fix this properly
2020-01-26 13:58:48 +03:00
kd-11 698702cd4a vk: Fix DMA data leak
- There still does not exist a ranged flush implementation which is required.
- TODO: Implement this properly
2020-01-26 13:58:48 +03:00
kd-11 1166ae19bb vk: Use appropriate layouts depending on use case when creating new textures to avoid needless barriers 2020-01-26 13:58:48 +03:00
kd-11 44f2cacf7b rsx: Blit engine tuning
- Attempt to identify blit operations that will be flushed immediately
after and just do them on CPU instead if the transformation is trivial.
- If only a single blit section is contributing to an atlas merge op, the
threshold should be 100%. The only acceptable result here is a
truncation.
2020-01-26 13:58:48 +03:00
kd-11 7a275eaa3a rsx: Fix incomplete blit operations getting used as texture inputs
- Raise passing 'score' from 50% to 90% to filter out very incomplete
merge operations.
- Catch unfit sections passing the match test; possible for blit_dst
data but will likely be always harmless. Disabled in release builds by default.
2020-01-26 13:58:48 +03:00
Silent 331c1a394a Qt: Present game removal failure to the user
All the required information was already there,
but UI always reported success
2020-01-25 19:28:52 +01:00
Eladash e4ba096190 VSH: sys_mmapper
* Implement syscalls sys_mmapper_allocate_shared_memory_ext, sys_mmapper_allocate_shared_memory_from_container_ext.
* Implement multi-process shared memory allocations.
2020-01-24 20:08:30 +00:00
Eladash 46df58b662 sys_usbd: Add error_code 2020-01-24 19:25:52 +00:00
Eladash 95ed2ef62e cellGcm HLE: Add error_code 2020-01-24 19:25:52 +00:00
Megamouse 3f076d63e3 HLE: add error checks to cellAudioInGetDeviceInfo 2020-01-23 10:50:55 +01:00
Megamouse 3e8a5c6395 HLE: add some more constants 2020-01-23 10:50:55 +01:00
Megamouse 18f167ddd0 HLE: Fix error checks in cellAudioInRegisterDevice 2020-01-23 10:50:55 +01:00
Maksim Derbasov 1abdee242a small improvement (#7288)
* small improvement

* comments addressed

Co-authored-by: kd-11 <15904127+kd-11@users.noreply.github.com>
2020-01-22 12:28:48 +00:00
kd-11 adcc3e9c4b rsx: Optionally sync on texture read semaphore
- Some games use texture semaphore for zcull sync which is rather bizzare.
  However, it works on realhw as the depth test happens before fragment shader completion
- Due to the high performance penalty incurred by this act, this
behavior is only enabled by the "strict rendering mode" option.
2020-01-21 22:21:51 +03:00
Eladash 949cfa7fdb Fix cellVdecSetFrameRate error check 2020-01-21 16:45:41 +03:00
Eladash fe381b8581 SPU: Add SPU LS to debugger 2020-01-21 16:45:41 +03:00
Eladash 160ddcf86b SPU: Minor FREST bugfix 2020-01-21 16:45:41 +03:00
Eladash f05a3da964 Fix lv2_file::op_write regression 2020-01-21 16:45:41 +03:00
Nekotekina ddda09607d SPU: fixup for STOP 0w0 2020-01-21 16:32:00 +03:00
Eladash 9993df9b8b RawSPU: fix race between spu start and stop
This race could lead to spu status bits indicate RUNNING status, but cpu state being stopped.
Fix it by making sure cpu state is set before spu status.
2020-01-21 14:08:39 +03:00
Nekotekina 98a8eeaac2 SPU: properly support STOP 0x0 instruction 2020-01-20 23:40:10 +03:00
Nekotekina 0f87c6c7c3 Make system config thread-safe (almost) 2020-01-20 21:51:28 +03:00
Nekotekina 0147bc2c72 Fixup shared_cptr, atomic_cptr 2020-01-20 21:51:28 +03:00
Nekotekina 1e7a02badb Implement shared_cptr and atomic_cptr
Limited shared_ptr with atomic support.
Atomic version is only partially implemented.
2020-01-20 16:53:42 +03:00
Nekotekina 3617f12a1e sys_fs: avoid possible out of memory on file reads/writes
Use fixed-sized intermediate buffer.
2020-01-20 16:00:20 +03:00
Nekotekina 63f67c88cc sys_fs: better stub sys_fs_fcntl(0xc0000006)
This syscall does something to classify filesystems by mountpoint.
2020-01-20 16:00:20 +03:00
Nekotekina 1b1b804d7e sys_fs: add /dev_flash mountpoint 2020-01-20 16:00:20 +03:00
Nekotekina 55cb96ab3b sys_fs: fix CELL_EIO condition in cellFsReadWithOffset 2020-01-20 16:00:20 +03:00
Megamouse 5ef3465f65 cellVdec: (experimental) allow AV_PIX_FMT_YUVJ420P 2020-01-20 00:33:25 +01:00
Megamouse 9a27cc9442 cellVdec: improve error checks 2020-01-20 00:33:25 +01:00
Megamouse 858ce014fd VS: fix filter facepalm 2020-01-19 16:38:17 +01:00
Megamouse 4dbad6cce6 fix some random warnings 2020-01-19 16:38:17 +01:00
Megamouse 485b22d664 Qt: fix deprecation warnings 2020-01-19 16:38:17 +01:00
Megamouse 30d5a849e3 Qt: enlarge some tooltip hover areas in settings 2020-01-19 12:40:43 +01:00
MSuih 9ef96e8274 Add pagesteps for some controls
With the snap changes the default pagestep of 1 is ignored because of rounding.
2020-01-19 09:09:36 +01:00
MSuih cbaa8f3329 Add snapping and limit range for wakeup delay 2020-01-19 09:09:36 +01:00
MSuih 807d6cfea4 Add slider snapping 2020-01-19 09:09:36 +01:00
kd-11 22ca2827de rsx: Improve window border detection and clearing
- Improves logic to detect if the frame requires letterboxing and
properly clears the background appropriately.
2020-01-18 19:52:52 +03:00
kd-11 5e0ca4c0c4 rsx: Fixup for missing visuals when framebuffer is larger than requested
display dimensions.
2020-01-18 19:52:52 +03:00
kd-11 48407752a6 formatting: Unify indentation type in the newly added files to tabs 2020-01-18 19:52:52 +03:00
kd-11 bad4d1ff05 rsx: Improve present image scanning
- Adds support for partial (letterboxed) source images by taking insets
into account.
- Bugfix for potential access violation when capturing screenshot on
vulkan
2020-01-18 19:52:52 +03:00
kd-11 7453e46a7c rsx: Refactor out complex present code into separate files
- Also restructures present code to have image lookup in a separate
re-usable function.
2020-01-18 19:52:52 +03:00
Eladash b07b5c9005 Fix sys_spu_thread_initialize for attr->name_len is 0 and attr->name is not null
If name_len is 0 name is empty, in any other case name is not empty (attr->name == nullptr isn't allowed in this case).
Check name_len and option for invalid values as fw.
2020-01-18 18:46:13 +03:00
Eladash 9d15083c61 Fix sys_ppu_thread_create/rename thread name range 2020-01-18 18:46:13 +03:00
Eladash 14b99d9e8b Write nread/nwrite in cellFsWrite/Read regardless of error checks 2020-01-18 15:56:05 +03:00
kd-11 b36b9e4822 vk: Fixup for total number of combined samplers using the dynamic binding structure 2020-01-18 11:17:19 +03:00
kd-11 0a2b6a290d vk: Fixup
- Scaling is not needed for a direct typeless transfer!
2020-01-17 14:31:14 +03:00
Emmanuel Gil Peyrot ca5bc512ae Optimise the SVG logo with svgcleaner
It still contained Inkscape leftovers, which are of no use for anything.
There are no functional changes.

See https://github.com/razrfalcon/svgcleaner
2020-01-17 08:31:00 +01:00
Megamouse 449cbb7281 Qt: use persistent_settings for playtimes 2020-01-17 07:43:10 +01:00
Nekotekina e2512e78b6 sys_fs: always close locked file in sys_fs_close
Syscall returns EBUSY but succeeds nevertheless.
2020-01-17 00:24:07 +03:00
Nekotekina a005090d3d sys_fs: use constant in sys_fs_disk_free 2020-01-17 00:24:07 +03:00
MSuih 833fbe015e Use floating point pixel ratio 2020-01-16 23:54:47 +03:00
Eladash c9b0f0e734 SPU: Fix FREST 2020-01-16 23:42:50 +03:00
kd-11 9b34f00241 vk: Optimize image transfers
- Adds the same optimization/simplification steps to complex image
transfer routines. Whenever possible, multi-step transfers are collapsed
into a single operation.
2020-01-16 22:29:26 +03:00
kd-11 82af17beb1 gl: Optimize image operations
- Avoid double transfers where a transfer to a temp image is done
without scaling and then a secondary transfer follows. Combines the two
steps into one whenever possible which can significantly alleviate
bandwidth problems at higher resolutions. Significant speedup, upto 90%
in some cases (PDF, PDF2)
2020-01-16 22:29:26 +03:00
kd-11 47b196e9d0 rsx: Fix uninitialized variable 2020-01-16 17:57:31 +03:00
kd-11 db014d8a58 rsx: Fix section length calculations when generating new blit targets. 2020-01-16 17:57:31 +03:00
kd-11 621fab2ad9 vk: Fix D32S8 interpolation by using integer interpolation instead of floating point
- Interpolating floats is not the same as interpolating their bits!
  Use integer format to interpolate linearly for D32F formats instead of using R32F as intermediary
2020-01-16 11:12:08 +03:00
kd-11 086ecf4ba6 vk: Add some missing image memory barriers causing artifacting on AMD cards
- There needs to be a memory barrier after each step.
- TODO: Optimize scale_typeless_safe function
2020-01-16 11:12:08 +03:00
kd-11 309251ce7a rsx: Touch locked dst memory after blit transfer operations in case it is locked by WCB/WDB 2020-01-16 11:12:08 +03:00
Eladash 9084209cfc Update cellVdecSetFrameRate error checking 2020-01-15 23:29:32 +01:00
kd-11 74ad525566 vk: Fixup for cs_scatter job
- Access to the stencil output has to be atomic as each 'word' is shared among 4 adjacent texels
- TODO: Can be optimized using mirrored buffer views
2020-01-15 21:12:51 +03:00
Eladash 05e5e6058f Add description for rsx wake-up delay 2020-01-15 19:54:23 +03:00
MSuih 556ac1cf22 Add wake-up delay to settings 2020-01-15 19:54:23 +03:00
Eladash 85695c8bac rsx: FIFO wake-up pause control 2020-01-15 19:54:23 +03:00
kd-11 2984300385 vk: Fix invocation alignment to support non-power-of-2 alignment 2020-01-15 15:42:36 +03:00
kd-11 ac4cadf538 vk: Fix word index counting for shuffle tasks 2020-01-15 15:42:36 +03:00
kd-11 175f78f5b3 vk: Lower default compute heap size to 64M
- There is no need to guess and use a large memory footprint as the heap is
now dynamic.
2020-01-15 15:42:36 +03:00
kd-11 3d96fe79cc vk: Implement dynamic sized compute heap
- Implements a dynamically sized compute heap to allow growing up the
size if it is too small.
2020-01-15 15:42:36 +03:00
Eladash 1ccb3c4492 rsx: Verify local memory offset 2020-01-15 13:23:56 +03:00
Eladash 01035d35bd sys_process: Fix sys_process_get_id, add error_code (#7246) 2020-01-14 21:32:41 +03:00
kd-11 8bbda3dedb vk: Restructure command queue flushing behavior to avoid deadlock
- Queueing commands on the offloader is a good idea but unfortunately
page faults can still happen causing a cyclic dependency and eventual
deadlock. Characterized by a vk::wait_for_event timed out error
accompanied by severe hitching.

- Drain the fault-able commands before pushing a submit operation to the
queue. If a fault is in progress, bypass the queue system and submit
raw. Technically this is incorrect but there isn't much that can be
done about it right now.
2020-01-14 14:32:40 +03:00
Megamouse 542d2ef8da Qt: smoother batch package installation 2020-01-14 09:27:09 +01:00
Megamouse be2d225d96 sceNpTrophy: deny unlocking of platinum trophies 2020-01-13 22:50:05 +01:00
Eladash 765bd6b6c6 SPU: Optimize gpr reset for MSVC 2020-01-11 22:56:46 +03:00
Nekotekina aeed349a99 sys_fs: adjust permissions for /dev_bdvd
Remove write permissions returned by stat, fstat, etc.
Also make sys_fs_open return CELL_EPERM on write attempt.
2020-01-11 04:48:42 +03:00
Nekotekina 8447d75dda sys_fs: improve sys_fs_lsn_lock
It appears it does nothing only on /dev_hdd0 or /host_root (HOSTFS).
2020-01-11 03:44:52 +03:00
Nekotekina fc6356a74c sys_fs: adjust /dev_bdvd block size
From test.
2020-01-11 03:05:26 +03:00
Nekotekina 41f2ee7b6c VFS: minor change in handling /host_root path 2020-01-11 01:55:36 +03:00
Nekotekina 87cd653c6e sys_fs: improve sys_fs_disk_free
Fix error codes and arg checks.
2020-01-11 01:10:50 +03:00
Nekotekina 7e35fd54a8 sys_fs: improve sys_fs_fcntl(0xc0000002)
Always obtain free space on /dev_hdd0.
2020-01-11 01:09:30 +03:00
Nekotekina 582ee80552 sys_fs: correct block size for /dev_hdd1 2020-01-10 05:24:43 +03:00
Nekotekina 0b4b87f069 sys_fs: fix sys_fs_get_block_size
Don't check file existence on /dev_hdd0.
Relax check on some mountpoints.
Fix CELL_EISDIR error condition.
2020-01-10 05:19:18 +03:00
Nekotekina a8e1afa0af sys_net: fix sys_net_bnet_select arg check (nfds) 2020-01-10 03:21:27 +03:00
Eladash 71df5044fc sys_vm_get_statistics: Write timestamp 2020-01-09 20:43:03 +00:00
kd-11 db5d03c340 vk: Generate dynamic binding table based on the capability of the drivers
- This alleviates constraints imposed on shaders to allow running on some not-so-great platforms.
2020-01-09 15:38:23 +03:00
RipleyTom 4a5559ee65 Add buzz controllers to usb whitelist 2020-01-09 07:51:16 +00:00
Nekotekina 7523416a12 sys_fs: return CELL_ENOTSUP in sys_fs_fcntl(0xc0000006) 2020-01-09 04:15:20 +03:00
Nekotekina 9075208c80 sys_fs: fix logging in sys_fs_get_block_size 2020-01-09 04:15:20 +03:00
Nekotekina d477889763 sys_fs: fix mountpoint detection 2020-01-09 04:15:20 +03:00
kd-11 ef3b0db7d8 vk: Workaround for NVIDIA occlusion query failure
- When using partial results on NVIDIA, a non-zero result is returned even when the draw is fully occluded.
  This, I believe, violates spec which says the partial result shall be between 0 and the final result.
2020-01-08 19:02:45 +03:00
Nekotekina f5cb147f8d sys_fs: improve sys_fs_get_block_size values
Affected other syscalls:
sys_fs_fget_block_size
sys_fs_stat
sys_fs_fstat
sys_fs_fcntl (cellFsGetDirectoryEntries, cellFsGetFreeSize)

For default values:
Return sector_size = 512.
Return 4th arg = 512.
Fod /dev_bdvd:
Sector size = 2048.
Block size = 2048.
2020-01-07 23:16:17 +03:00
Nekotekina 63e669c0cf sys_fs: fix sys_fs_fget_block_size
Return flags via last argument.
2020-01-07 21:55:19 +03:00
Nekotekina 9c54305e10 sys_fs: disable sys_fs_lsn_lock/unlock
According to test, nothing seems to happen.
Disable CELL_EBUSY errors associated with Stream Support API.
2020-01-07 21:55:19 +03:00
Nekotekina f3d52de429 sys_fs: Adjust flags of /app_home mountpoint 2020-01-07 21:55:19 +03:00
kd-11 3f34a0196c overlays/osk: Add linear fade-in/out effect to OSK 2020-01-07 21:31:19 +03:00
kd-11 ecf00be155 rsx: Add color interpolation animation
- Adds color interpolation and modulation pass and refactors the code a
bit. Elements with this pass applied have their color modulated by the
animated color from the pass. Modulation transform is multiplicative.
2020-01-07 21:31:19 +03:00
kd-11 ad845861be video: Remove pointless aspect ratio option
- The auto option is used when requesting the system is works like a
"dont care" specifier to tell the system to use what settings have been
passed in by HDMI EDID or the user TV type setting. Since this option
simulates the "TV type setting", auto makes no sense and is also not
something you can select on a PS3.
- Also adds a few missing checks.
2020-01-07 15:56:54 +03:00
Nekotekina c51779d4d3 Fix format string in log_frame.cpp 2020-01-06 23:44:48 +03:00
Nekotekina 55f9a56e45 Fix sys_tty_write (UTF-8 encoding of literals) 2020-01-06 23:23:04 +03:00
Nick Renieris 5bace118a7 overlays: Redesign animation system (add easing functions, fix bugs)
Instead of speed, direction and distance, the user now specifies
start/end offsets and how much time the transition should take.

Fixes:
- Stuttering caused from framerate estimation.
- An edge case where animations would go over their supposed limit.

Adds:
- The ability to specify arbitrary easing functions for the animations
  - Implemented quadratic ease in and ease out and cubic ease in/out.
- Usage of cubic ease in/out in the trophy notification
2020-01-06 22:42:07 +03:00
Nick Renieris 28770c1580 overlays: Move vertex & vector utility classes to new file 2020-01-06 22:42:07 +03:00
Nick Renieris 192912131e rsx: Update vblank count in LLE mode 2020-01-06 22:42:07 +03:00
Dravonic 94d2f97f27 Multithreaded shader compliation follow-up (#7190)
* Multithreaded load pipeline entries shader compliation stage

Co-authored-by: kd-11 <15904127+kd-11@users.noreply.github.com>
2020-01-06 21:59:59 +03:00
Megamouse 632cc79c54 cellGame: add more checks 2020-01-06 10:47:13 +01:00
Megamouse e7845357e2 sceNpTrophy: unlock platinum trophies 2020-01-05 19:47:31 +01:00
Nekotekina 4450ae0c7a sys_fs: fix CELL_FS_O_APPEND emulation
Don't use fs::append (not capable of).
Fix sys_fs_ftruncate (remove wrong workaround).
2020-01-05 18:15:55 +03:00
Nekotekina 9fc0aec066 sys_fs_stat: fix split file handling
Allow single-file case (consistently with sys_fs_open)
2020-01-05 18:15:55 +03:00
Nekotekina bed2d558a6 sys_fs: implement CELL_EROFS error
Implement lv2_mp_flag::read_only.
Currently only /dev_bdvd is affected.
2020-01-05 18:15:55 +03:00
Nekotekina d5f0957558 Implement lv2_fs_mount_point with mount point flags
Implement some actual mount points
Implement lv2_mp_flag::no_uid_gid
2020-01-05 18:15:43 +03:00
kd-11 7f09def94e rsx/vp: Properly initialize output registers.
- All registers tested on hw show contents to be 0, 0, 0, 1.
  Make default output registers match this pattern.
2020-01-05 18:06:08 +03:00
Silent b88fb43acc Minor cleanup in InstallPkg and InstallPup 2020-01-05 11:01:26 +01:00
Silent e7ddc5187a Add a dialog to Batch PKG Install
Dialog allows users to preview the order in which PKG's will be installed
and allows users to move items around if needed.

Because clicking "Install" on this new dialog acts as a confirmation
and user has a second chance to eyeball what is to be installed,
"Install package X?" dialogs have been removed and instead user
is only notified of success. In case of failure, batch installation
aborts with a descriptive error.
2020-01-05 11:01:26 +01:00
Eladash 872be25ed1 cellFs: Fix cellFsLseek with negative whence 2020-01-04 22:38:53 +03:00
Eladash 9d2c9e5d62 cellFs: Improve cellFsGetDirectoryEntries 2020-01-04 22:38:53 +03:00
Nekotekina 28fb0d1741 Fix lv2_fs_object::name
Recreate path from actual decoded components.
2020-01-04 21:44:03 +03:00
MSuih 5534c9e27c Disable AA for renderers which do not support it 2020-01-04 18:58:33 +01:00
MSuih 049f852a9c Slight cleanup of mousewheel pr
Fixes theoretical uninitialized variable and micro-optimizes scrollwheel stop code
2020-01-04 18:58:33 +01:00
MSuih 69f11d82d1 Change Null microphone to Disabled 2020-01-04 18:58:33 +01:00
Silent f92794360d Qt: Add tooltips to Virtual File System buttons 2020-01-04 17:10:28 +01:00
kd-11 bdb5115c7f rsx/overlays: Improve space usage on trophy dialog
- Slightly increases the size of the trophy dialog and the font size.
  The old dimensions did not work with some libre fonts causing
alignment errors and other problems.
2020-01-04 16:36:49 +03:00
kd-11 3ada97d2d3 rsx/overlays: Implement trophy notification queue
- Allows to display more than one trophy at a time. Trophy notifications
will simply get queued up and displayed at appropriate time.
2020-01-04 16:36:49 +03:00
Nekotekina 691a57a4da Add BOM to sys_tty.cpp 2020-01-04 01:32:21 +03:00
kd-11 31b07fece5 rsx/overlays: Add support for animations
- Adds animation support. This commit adds the base framework and
implements a translate animation used to slide elements around the
screen. This is then used to implement the sliding animation for the
trophy notification.
2020-01-03 20:33:32 +03:00
Megamouse b3ad89cc8b cellSaveData: remove duplicate yield 2020-01-03 14:22:40 +01:00
Megamouse 5e7d25ad35 overlays: refactor shader loading dialogs 2020-01-03 14:22:40 +01:00
Megamouse d94d094a7e overlays: fix non-interactive dialog loops 2020-01-03 14:22:40 +01:00
Megamouse c9aee27d48 VK: remove unused init function declaration 2020-01-03 14:22:40 +01:00
kd-11 d12762414a vk: Change default vertex output value
- Prefer w!=0 to avoid a situation where xyz/w = nan. More of a
theoretical problem, but some calculations break down in such a
situation.
2020-01-03 10:35:53 +03:00
kd-11 7786681954 rsx: Improve MTRSX synchronization
- Properly synchronize DMA transfers when handling RSX pipeline
barriers. Texture read barrier is used to signify completion of DMA
routines and is often used to signal that Cell can overwrite vertex
data!
2020-01-03 10:35:53 +03:00
Megamouse 02ca8f0002 Qt: repaint all related icons for custom configs 2020-01-02 11:35:51 +01:00
Megamouse 7af2ebb6f4 cellSaveData: use errDialog to skip error dialogs 2020-01-02 05:49:03 +01:00
Nekotekina 2c4ecc55af Update ffmpeg 2020-01-02 00:53:22 +03:00
kd-11 c4e59b5115 vk: Clamp depth export in FS
- PS3 matches OGL behavior where writing to the depth export
register results in clamping.
2020-01-01 22:39:20 +03:00
Eladash 4c20881f8f Fixup after #6933 (#7166)
* fixup

* Get rid of obsolute arg in lv2_obj::awake

* nvm ill do this later

* Typo fix of the decade
2020-01-01 17:38:05 +00:00
Ani 341fdf7eb1 rpcs3_version: Bump to 0.0.8 2019-12-31 23:20:49 +00:00
Eladash 7cc6881a57 Implement sceNpTrophyTerm resources deallocation
- Implement sceNpTrophyAbortHandle, if handle is aborted an error code will be returned on its usage.
- Free context & handles in sceNpTrophyTerm.
- Return SCE_NP_TROPHY_ERROR_INVALID_ARGUMENT on invalid context & handles ids.
- Implement id resource shortage error checking.
- Check negative sceNpTrophyGetTrophyInfo trophy id.
- Minor error checking fix for sceNpTrophySetSoundLevel
2019-12-31 22:32:23 +03:00
Eladash 71c4a2a15f Silence some log messages 2019-12-31 22:27:27 +03:00
Eladash 9690854e58 Some cleanup
* Prefer default initializer over std::memset 0 when possible and more readable.
* Use std::format in trophy files name obtaining.
* Use vm::ptr<>::operator bool() instead of comparing vm::ptr to vm::null or using addr().
* Add a few std::memset calls in hle where it matters (or in some places just to document an actual firmware memcpy call).
2019-12-31 22:27:27 +03:00
RipleyTom 5de83e0425 Avoid using vfs::get to let decrypt work on PSN binaries 2019-12-31 22:23:22 +03:00
Eladash c2eb9a583d Implement ps3 application root flags detection 2019-12-31 22:22:06 +03:00
Silent b591633cb9 Fail pkg_install if any files fail to be created
This could happen if eg. paths are too long or some files
could not be overwritten. Until now, installation happily
reported success regardless.
2019-12-31 19:24:19 +03:00
Silent abfa1114bc Add progress_dialog::SignalFailure()
Turns the taskbar progress bar red, commonly used on Windows
in cases like this to signal failure.
2019-12-31 19:24:19 +03:00
Eladash b30be0fbc1 Update cellVoiceCreatePort syntax 2019-12-31 19:05:06 +03:00
Eladash 9958a83d10 Make spu_channel_4_t::clear() atomic
By removing separate value3 write, fixes a rare race introduced by #6917.
2019-12-31 19:05:06 +03:00
Eladash 3257552227 Minor spu_channel_4_t optimization 2019-12-31 19:05:06 +03:00
Eladash ec9622b513 Fix ppu_patch invalid address check 2019-12-31 18:57:14 +03:00
Eladash 8427af8886 Implement runtime PPU executable code modification via Cheat Manager 2019-12-31 18:57:14 +03:00
Megamouse 93a6e9e4e4
Improve cellImeJp (#7014)
* HLE: add error_code and definitions for cellImeJp

* HLE: add function parameters to cellImeJp

* HLE: improve cellImeJp

* HLE: further improve cellImeJp

* HLE: simplify cellImeJp
2019-12-31 16:02:10 +01:00
Megamouse a5c5927468 cellSaveData: only show dialogs in fixed functions 2019-12-31 14:15:43 +01:00
kd-11 915cf0bae8 vk: Do not leak mapped memory 2019-12-31 13:56:14 +03:00
Eladash 3e80727f8e Allow unimplemented HLE functions detection by bot 2019-12-30 23:48:39 +03:00
Eladash b59a825e48 Minor fixup after #6894 2019-12-30 23:46:45 +03:00
Eladash 45cff1219c Allow sys_raw_spu_create_tag to be called more than once 2019-12-30 23:46:45 +03:00
Eladash 923cd7ad72 SPU LLVM: rewrite comparison on non-xfloat path of CFLTU, CFLTS
CFLTU on non-xfloat path is accurate as xfloat path now.
* Also optimize FCTIW like FCTIWZ (PPU)
2019-12-30 22:20:34 +03:00
Nekotekina ef8872c0d7 sys_net: fix sys_net_bnet_connect on Windows
Properly write is_connecting variable.
2019-12-29 21:53:43 +03:00
Nekotekina 01b1b21efd sys_net: add a workaround for WSAPoll with timeout
Don't call WSAPoll with empty socket list.
2019-12-29 21:24:13 +03:00
Megamouse 45dc5d9b02 cellSaveData: improve ppu schedule during dialogs 2019-12-29 14:22:58 +01:00
Megamouse c4b4ce46b8 cellSaveData: don't pause apps during dialogs 2019-12-29 14:22:58 +01:00
MSuih 6cfcb7b4f3 Add support for mousewheel movement 2019-12-29 12:45:03 +01:00
kd-11 1b27ccecf8 settings: Add relaxed zcull toggle to advanced tab 2019-12-29 13:49:46 +03:00
kd-11 24cb48971e vk: Fix cb chunk synchronization deadlock 2019-12-29 13:49:46 +03:00
kd-11 e1b734fd12 rsx: Fix linux build 2019-12-29 13:49:46 +03:00
kd-11 ed2bdb8e0c rsx: Zcull synchronization tuning
- Also fixes a bug where sync_hint would erroneously update the sync tag
  even for old lookups (e.g conditional render using older query)
2019-12-29 13:49:46 +03:00
kd-11 fdb638436f rsx: Add toggle for zcull sync behaviour - Adds a relaxed sync mode where ZCULL reports are lazily nudged into flushing and the main core does not actually wait for the event to finish before proceeding - Can drastically improve performance in cases where the game actually does not utilize the report data 2019-12-29 13:49:46 +03:00
kd-11 9f94a6dc11 vk: Refactoring and optimizations to query handling
- Caches query results when looking up report availability to avoid
  entering driver code twice.
- Minor code restructuring
2019-12-29 13:49:46 +03:00
kd-11 55ad9244c0 vk: Switch occlusion pool to FIFO rather than LIFO to avoid hard stall 2019-12-29 13:49:46 +03:00
kd-11 cdd9c12132 vk: Emulate conditional rendering for AMD 2019-12-29 13:49:46 +03:00
kd-11 93895838c7 vk: Implement hw conditional rendering 2019-12-29 13:49:46 +03:00
kd-11 a51395370e vk: Implement multithreaded command submission
- A few nagging issues remain, specifically that partial command stream
  largely caused by poor synchronization structures for partial CS flush
  and also the fact that occlusion map entries wait on a command buffer
  and not an EID!
2019-12-29 13:49:46 +03:00
kd-11 5be7f08965 rsx: Restructure ZCULL report retirement
- Prefer lazy retire model. Sync commands are sent out and the reports will be
  retired when they are available without forcing.

- To make this work with conditional rendering, hardware support is
  required where the backend will automatically determine visibility by
  itself during rendering.
2019-12-29 13:49:46 +03:00
kd-11 8dfea032f2 rsx: Remove deprecated do_method path that has been superceded by c++ inheritance for many years 2019-12-29 13:49:46 +03:00
Megamouse 0b78404337 cellSaveData: get confirmation if not CELL_SAVEDATA_OPTION_NOCONFIRM 2019-12-29 01:19:04 +01:00
Megamouse ff0089bc6f cellSaveData: add more constants 2019-12-29 01:19:04 +01:00
Megamouse bb7848f6e5 cellSaveData: add error dialog to callback result errors 2019-12-29 01:19:04 +01:00
Megamouse 47da907366 cellSaveData: add confirmation dialog for save data interactions 2019-12-29 01:19:04 +01:00
Megamouse 9f106be36d Qt: apply more specific file filters for cache removal 2019-12-28 22:24:06 +01:00
Megamouse 096a08aca1 Qt: fix removal functions after cache compression 2019-12-28 19:44:45 +01:00
Megamouse ef6f565dbd silence some annoying warnings 2019-12-28 15:40:57 +01:00
Nekotekina 70e26eeb45 LLVM: compress PPU cache
Compress PPU modules to .gz (backward compatible with uncompressed cache)
2019-12-27 23:12:16 +03:00
Megamouse e54438d3a7 Qt: add plaintext log and more log options 2019-12-24 13:06:06 +01:00
Megamouse e83dfedff9 stub cellRemotePlay and cellResc and cellStorage 2019-12-24 11:54:32 +01:00
Nekotekina abe2cc196a sys_net: fixup for race condition
Don't reset is_connecting without checking correctness.
Also cleanup dead WIN32 code.
2019-12-23 22:39:18 +03:00
RipleyTom 90e4fe23c5 WSAPoll workaround 2019-12-23 22:31:09 +03:00
Emmanuel Gil Peyrot 9b77febd10 RSX: Remove two empty cpp files 2019-12-23 00:02:57 +03:00
linkmauve e9c5c6e6bf Move input to its own directory (#7126) 2019-12-22 17:39:42 +01:00
Silent f03cb5c9c0 Qt: Simplify custom titles and notes
By adding some code to notes/titles reading,
it is possible to leverage default value behaviour in QMap value()
which simplifies code a bit.
2019-12-22 15:54:04 +01:00
Eladash c65bb0d267 Avoid shifting by greater/equal than max bits values in ppu_rotate_mask 2019-12-22 04:35:57 +03:00
Markus Stockhausen a36f0497ce Improve approximate xfloat
- Disable denormals for SPU threads
- Add clamping helpers
2019-12-22 01:26:34 +03:00
Nekotekina 3b46c9cb6a SPU LLVM: use FMA with approx xfloat when available
Emulate FMA with double precision if unsupported natively.
2019-12-21 17:53:34 +03:00
Nekotekina 068450d4fe CPUTranslator: detect FMA feature 2019-12-20 21:11:07 +03:00
kd-11 fff1007d9a cmake: Fix vulkan on X11 2019-12-20 16:57:01 +03:00
Eladash db4041e079 Implement rounded_div
Round-to-nearest integral based division, optimized for unsigned integral.
Used in sceNpTrophyGetGameProgress.
Do not allow signed values for aligned_div(), align().
2019-12-20 14:47:04 +03:00
Emmanuel Gil Peyrot e30173a835 rsx: Make X11 optional on Linux
This makes it possible to build rpcs3 on a pure Wayland system, without
the Xlib installed.
2019-12-20 10:48:03 +00:00
Eladash 6dd4003154 Fix cellNetCtlNetStartDialogUnloadAsync 2019-12-20 10:20:32 +01:00
Silent 95f363c174 Qt: Look for custom game titles when filtering via Search 2019-12-20 00:19:13 +01:00
Megamouse 7fcef227af sceNpTrophy: minor optimizations 2019-12-19 18:15:22 +01:00
Megamouse 6388c98073 Qt: add platinum relevance to trophy_manager_dialog 2019-12-18 15:41:15 +01:00
Megamouse 91ad3d371f Qt: minor optimizations in trophy_manager_dialog 2019-12-18 15:41:15 +01:00
Eladash 8d955cfb8c Hotfix sceNpTrophyGetTrophyUnlockState 2019-12-18 13:07:55 +01:00
Eladash e380a8c279 Fix sceNpTrophyGetGameProgress (#7103)
* Fix sceNpTrophyGetGameProgress

Was missing multiplication by 100.

* apply requested changes

* Enforce round-to-nearest rounding mode
2019-12-17 22:43:00 +00:00
Eladash 3efd5f360c PPU DisAsm: Again 2019-12-15 19:55:23 +03:00
Megamouse 725761f282 Qt: move firmware settings to the advanced tab 2019-12-14 15:15:49 +01:00
Megamouse 97fb08935e
Qt: Use QT_ENABLE_HIGHDPI_SCALING starting with Qt 5.14 (#7090)
* Qt: Use QT_ENABLE_HIGHDPI_SCALING starting with Qt 5.14

* Qt: Add QT_SCALE_FACTOR_ROUNDING_POLICY starting with Qt 5.14

* Qt: remove style path for Qt versions below 5.11 (5.11.0 is min version)

* Qt: Fix dpi-rounding cli arg

* Qt: use rounding policy PassThrough as default dpi scaling policy

* Qt: add missing Qt Version check (facepalm)
2019-12-14 12:48:34 +01:00
Jayveer 364ba95d26 Updated sys_net to use WSAPoll on win32 as this fixes connection issues
in Metal Gear Online. Also aligns with implementations on non win32
platforms
2019-12-13 21:52:29 +03:00
Nekotekina 321f7e7197 Fix missing-braces warnings 2019-12-13 03:21:43 +03:00
Nekotekina 69e81da57b Fix some warnings 2019-12-13 02:08:52 +03:00
kd-11 73236efe58
vk: Remove some outdated code (#7060) 2019-12-12 16:29:55 +03:00
Eladash 6a926daee7 rsx: Delay FIFO recovery point creation if is in in_begin_end scope (#7080) 2019-12-12 15:38:56 +03:00
Megamouse 038694ae28 cellGem: add some explanatory comments 2019-12-10 23:20:13 +01:00
Megamouse 691c7cde67 cellGem: cleanup some spacings 2019-12-10 23:20:13 +01:00
Zangetsu38 af8ebc76e2 Modules/cellGem: Implement pos, quat and handle_pos in Gemstate for mouse.
Modules/cellGem: Fix name for gem_image_state.
Modules/cellGem: Implement projectiion(x/y) in gem_image_State for mouse.
Modules/cellGem: Add cross, triangle, circle and start with use middle click for mouse.
Modules/cellGem: Refactor global code.
Modules/cellGem: fix some warning with initializing value.
2019-12-10 23:20:13 +01:00
VelocityRa ac2b0c9752 PSMove: Rudimentary mouse emulation. 2019-12-10 23:20:13 +01:00
Eladash 7260af032e rsx: Ignore or recover from unknown primitives
This also fixes a bug when recovering FIFO or creating such recovery point inside in_begin_end == true scope.
2019-12-11 00:11:12 +03:00
Eladash 6a4ba9d562 Fix warning about truncation 2019-12-07 10:22:11 +01:00
Eladash a5b3b0df40 sceNpBasicAddBlockListEntry: Add connection check 2019-12-07 10:22:11 +01:00
Eladash 963d5fb981 sceNpBasicAddPlayersHistory(Async) fixes
* Check if count == 0.
* u64 typos fixed.
* description won't be checked if null.
* Check each npid provided, not only the first.
2019-12-07 10:22:11 +01:00
Eladash 5142d7c011 Minor fixup after #7068 2019-12-06 19:59:29 +03:00
Eladash 5631382623 sys_spu: Fix SPU Thread Id
* Removed wrong code in sys_spu_thread_group_terminate.
* SPU Thread ID is accurate, including 5th thread id "rule".
* Fixed possible use-after-free access of spu_thread::group member.
* RawSPU ID management simplified.
2019-12-06 19:59:29 +03:00
Eladash e050dcbc52 Move size write in cellGamePatchCheck 2019-12-05 23:31:46 +03:00
Eladash 98970884c8 Make sys_tty accurate in release console mode, message saving in log 2019-12-05 23:31:46 +03:00
Eladash 401813f962 Revert part of #7044
oops.
2019-12-05 23:31:46 +03:00
Eladash a2c69e4a2e sys_spu_thread_group_dis/connect_event Improvements 2019-12-05 23:31:46 +03:00
Nekotekina 835892aa51 C-style cast cleanup VII 2019-12-05 02:10:15 +03:00
Nekotekina d2fd3c6bc4 Commit 377e7d2a73 2019-12-04 21:32:08 +03:00
Nekotekina 377e7d2a73 C-style cast cleanup VI 2019-12-04 17:56:22 +03:00
kd-11 d973835bef ds4: Cleanup
- Simplify helpers to read integers HID feature report buffers. They're
simple LE values.
- Improve calibration format detection by just checking the returned
values and not relying on bluetooth check. PS4 does not seem to do it
this way as it accepts 3rd party controllers with inverted format. The
only other request 0xA3 seems unrelated to device capabilities.
2019-12-04 13:48:39 +03:00
kd-11 6ae8fd0d34 ds4: Add workarounds for some 3rd party controllers 2019-12-04 13:48:39 +03:00
scribam 2eaaf5b132 vk: Add sampleRateShading to the list of device enabled features 2019-12-04 12:59:38 +03:00
Nekotekina 185c067d5b C-style cast cleanup V 2019-12-03 17:23:00 +03:00
Megamouse 46ca39ec4d Add Emu.HasGui() to properly hide Qt dialogs in no-gui mode 2019-12-03 09:12:51 +01:00
Megamouse 84f9911163 Qt: skip in-game Qt dialogs if no-gui was used 2019-12-03 07:59:10 +01:00
Megamouse d73f04da13 cellSaveData: avoid nullptr if there is no dialog 2019-12-03 07:59:10 +01:00
Nekotekina bf11a28fb5 C-style cast cleanup IV 2019-12-01 22:12:33 +03:00
Eladash d45fbc331c Fix error checking of cellGameContentPermit 2019-12-01 21:11:43 +03:00
Eladash 1a6e8e20dc cellGameBootCheck Improvements
* size->sysSizeKB returns 4kb. (hw tested, unknown if in different situations this value changes)
* Return CELL_GAME_ERROR_BROKEN on failure to init. (hw tested)
* Write to dirName only when type is HDD game. (REd)
* Don't write to *size on errors, make it happen after *attributes and *type writes. (REd)
2019-12-01 21:11:43 +03:00
Eladash 37c220af72 Fix sceNpTrophyRegisterContext hack 2019-12-01 21:11:43 +03:00
Nekotekina 28eacc616a C-style cast cleanup III 2019-12-01 00:32:44 +03:00
Nekotekina ad9c9f0183 C-style cast cleanup II 2019-11-30 18:17:45 +03:00
Nekotekina 5b9df53c13 C-style cast cleanup (partial)
Replace C-style casts with C++ casts.
2019-11-29 00:35:23 +03:00
Eladash 8bd52c9843 Fix sys_spu_thread_un/bind_queue queue existence check 2019-11-28 01:54:45 +03:00
Eladash 9cc3838e49 Fix possible division by zero in sys_spu_thread_write/read_ls 2019-11-28 01:54:45 +03:00
Eladash b8220ec12f Stub sys_spu_thread_group_log 2019-11-28 01:54:45 +03:00
Eladash 038c6bb234 Avoid calling lv2_obj::sleep sequantially in sceNpTrophyRegisterContext
Also fix a correctness issue with queued.
2019-11-27 21:41:40 +01:00
Eladash 3b06214f88 Decrease memory stats in cellGemInit if needed
Also:
* fix state reset of cellGem
* Check max_connect == 0 in cellGemInit
2019-11-27 21:41:40 +01:00
Megamouse d91f8193b0 settings: enable dynamic reload of some emu values 2019-11-27 10:34:03 +01:00
Megamouse f2b530823b overlays: add dynamic switch for perf overlay 2019-11-27 10:34:03 +01:00
Eladash b5f6b27f86 cellSysutilGetSystemParamString improvements
- Check bufsize, must match to max string length
- Add missing cases for ParamId 0x1008, 0x1011, 0x1012, 0x1024
- Set actual current username in buffer on id == ID_CURRENT_USERNAME
2019-11-26 20:21:33 +00:00
Nekotekina 2290c389d6 vm: implement vm::try_access, vm::ptr::try_read/write 2019-11-26 00:12:45 +03:00
Nekotekina 1b9a3e6077 SPU: internal refactoring, add spu_program
Use struct (spu_program) instead of std::vector<u32>.
2019-11-26 00:01:38 +03:00
Nekotekina 4caf747729 SPU LLVM: detect mpy32 pattern 2019-11-26 00:01:38 +03:00
scribam f29709105f cmake: Add post-build commands for Windows 2019-11-25 23:08:37 +03:00
Eladash 70ace4bb83 Fix cellAudioCreateNotifyEventQueue queue depth
TODO: global sdk value used is set in cellAudioInit, which means sdk var value is 0 before it's initialization, currently safely set queue size to 8 in this case.
2019-11-25 09:04:56 +00:00
Eladash 17ae70b935 Implement cellAudioCreateNotifyEventQueueEx 2019-11-25 09:04:56 +00:00
Eladash 40db205f5d Fix cellVoiceCreatePort 2019-11-25 09:04:56 +00:00
Eladash 1233c48d92 cellAudio: Implement event source 2019-11-25 09:04:56 +00:00
Eladash f4ac8a2e0c cellVoice: Fix NOT_INIT checks, implement 0 event source handling 2019-11-25 09:04:56 +00:00
Eladash c9066e7236 cellVoice Update
* Use shared lock wherever possible.
* Fix cellVoiceSetVolume.
* Fix error logging of cellVoiceCreateNotifyEventQueue, cellAudioCreateNotifyEventQueue
2019-11-25 09:04:56 +00:00
Eladash fd433779bb sys_prx: Tiny improvement 2019-11-25 09:04:56 +00:00
kd-11 8ca53f9c84 rsx: Remember to min-max the anchor indices of a polygon or triangle fan 2019-11-24 19:01:57 +03:00
kd-11 429a76a140 rsx: Remove redundant check 2019-11-23 16:11:18 +03:00
Nekotekina f31233b822 sys_net: don't report SYS_NET_EWOULDBLOCK in blocking syscalls 2019-11-22 18:56:40 +03:00
Nekotekina 5c55d4f2fe sys_net: format both negative and positive sys_net_error values 2019-11-22 18:56:13 +03:00
Eladash 6ad8b0a443 sys_net: Add error_code 2019-11-21 22:51:22 +03:00
Eladash 8d5ef2c7b9 Clamp volume in cellAudioAdd/2c/6c/Data
Same as firmware, NaN and Inf are flushed to zero.
2019-11-20 21:58:43 +03:00
Markus Stockhausen cd6b6c8a4f Lightweight putllc() for non-TSX if no data changed
This replaces the totally messed up PR #6728

Some games make heavy use of getllar() & putllc() without even changing data.
In this case avoid unneccesary heavy locking of the PPU threads on non-TSX
hosts.
2019-11-19 18:10:29 +03:00
Megamouse 223d1473b0 Qt: remove unused rsx debugger code 2019-11-19 16:04:03 +01:00
kd-11 41e7d2aa0a rsx: Select correct image aspect for blit engine targets. 2019-11-19 13:18:15 +03:00
kd-11 fd751e3e7b rsx: Improve blit format mismatch detection 2019-11-19 13:18:15 +03:00
kd-11 41c3180276 rsx: Fix invalid format checks for DMA sections which are typeless 2019-11-19 13:18:15 +03:00
Megamouse 2152a77005 HLE: stub cellCrossController some more 2019-11-18 23:42:49 +01:00
Megamouse 41505117a7 HLE: stub cellCelpEnc and cellCelp8Enc 2019-11-18 23:42:49 +01:00
Megamouse ca59ab59e9 HLE: add even more error_code 2019-11-18 23:42:49 +01:00
kd-11 9dab0575fa rsx: Add missing format check for the RTV<->DSV transfer case
- TODO: Rewrite resource handling routines
2019-11-18 13:17:00 +03:00
kd-11 4a0e1c79ed rsx: Improve format validation for blit engine
- Check all possible cases where format mismatch is possible.
- Warn if a slow path is going to be taken. Should help with future
optimizations.
2019-11-18 13:17:00 +03:00
kd-11 c415578e79 vk: Clamp buffer row length to never be less than declared width
- Fixes some games with broken textures
2019-11-18 13:17:00 +03:00
kd-11 2408922806 rsx: Do not ignore clamping for some routines that do not have implied range 2019-11-18 13:17:00 +03:00
kd-11 c10aa360b1 rsx: Remove more deprecated methods 2019-11-18 13:17:00 +03:00
JohnHolmesII e53be99e1a Fix typo in update manager 2019-11-18 07:33:53 +01:00
Nekotekina db4e201fee SPU LLVM: use updateGlobalMapping instead of addGlobalMapping
...Where appropriate.
Fix to incorrect addGlobalMapping usage.
Also use clearAllGlobalMappings at compilation start.
2019-11-17 22:15:59 +03:00
Nekotekina f30b81f8b0 SPU LLVM: change patchpoint name generation
Allow 2 or more patchpoint from a single address.
2019-11-17 22:07:08 +03:00
Niram7777 2de3c06781 Qt: Avoid Start/StopPlaytime when installing firmware. 2019-11-17 10:57:21 +01:00
Megamouse 9a8c59a1ff Qt: rename pad_info to pad_device_info for ODR 2019-11-16 16:11:40 +01:00
Megamouse 0b28f0fa14 HLE: add more error_code 2019-11-16 10:38:56 +01:00
Eladash 0f2adab05f Disallow NaN in cellVideoOutSetGamma 2019-11-16 11:21:10 +03:00
Eladash 610463a425 cellSysutilGetSystemParamInt(ID_PAD_RUMBLE) changed to return ON status 2019-11-15 20:17:51 +01:00
Eladash da12969898 cellSysUtil: Add a few CELL_SYSUTIL_ERROR_VALUE checks 2019-11-15 20:17:51 +01:00
Eladash 894658f14c cellSysutil: Log error code 2019-11-15 20:17:51 +01:00
Eladash 25382a7dae Restore cellPadSetActDirect's reserved error check 2019-11-15 20:17:51 +01:00
Megamouse a17a5a76a0 overlays: avoid division by zero 2019-11-15 14:53:18 +01:00
Megamouse fb96047d2f overlays: add settings for overlay graphs 2019-11-15 14:53:18 +01:00
Megamouse dd1707bd46 overlays: fix center options when graphs are shown 2019-11-15 14:53:18 +01:00
Megamouse d6b0361a02 overlays: perf_metrics_overlay to seperate header
this is done to prevent severe conflicts with upcoming changes
2019-11-15 14:53:18 +01:00
Megamouse b84fd29abc settings: fix performance overlay margin checkbox 2019-11-15 14:53:18 +01:00
Anuskuss 7e31c30133 Intel iGPU needs workaround on Windows 2019-11-15 12:08:16 +03:00
RipleyTom 8e39c778a1 Cheat engine 2019-11-13 00:53:31 +03:00
Nick Renieris cc59d319e1 overlay: Performance graphs 2019-11-12 20:43:09 +01:00
Emmanuel Gil Peyrot 0ff5938b1f Utilities: Remove unused headers
AtomicPtr.h has never been used since its introduction in
da7472fe81.

Same for Interval.h, since 4fedf5749e.

event.h’s last usage got removed in
70e2873e69.
2019-11-12 19:51:57 +03:00
Nekotekina abbf3c4d16 SPU LLVM: add SPU profiling to compilation thread
Run another thread to collect profile data from SPU threads.
Use this data to prioritize compiling hot spot SPU blocks.
Implement stx::init_mutex::wait_for_initialized() helper.
2019-11-11 23:13:13 +03:00
Eladash a21d7def33 SPU: Don't break blocks on DSYNC instruction in Safe mode (#6731) 2019-11-11 23:12:21 +03:00
kd-11 8234bdb8f0 vk: Check for heap change events after a grow to avoid spec violations
- Avoid referencing the old buffer in stale views. Status can be set
globally if requested during heap creation.
2019-11-10 17:53:12 +03:00
kd-11 5968427a2f vk: Initialize queries before use
- The spec does not guarantee that queries are initialized. In fact, it
now says all queries must be reset before they are used for the first
time.
2019-11-10 17:53:12 +03:00
kd-11 8ea9bc9874 vk: Reduce memory allocation sizes of default heaps
- The heaps will grow as desired, no need to overallocate to cater to
the most resource-hungry games
2019-11-10 17:53:12 +03:00
kd-11 0a32d478df vk: Enable auto-growing of the data heaps for the performance case 2019-11-10 17:53:12 +03:00
kd-11 357e0d2097 vk: Implement explicit runtime flags to manage events like heap sync 2019-11-10 17:53:12 +03:00
kd-11 f359342721 rsx: Implement mutable ring buffers with grow support 2019-11-10 17:53:12 +03:00
kd-11 5f39a594ac rsx: Clean up some unused legacy methods unnecessary after d3d removal 2019-11-10 17:53:12 +03:00
Eladash 3f3ce53c67 Fix string length check in cellGameThemeInstall
vm::ptr::size() returns sizeof type instead.
2019-11-10 14:32:15 +03:00
Eladash e8cc9d1f52 Loader: Fix default sdk version
Note: sdk version checks are unsigned checks, such value results in always true.
2019-11-10 14:32:15 +03:00
Eladash 1986944c61 Implement sysutil_check_name_string
* Fully implement 3, 4, 16 and 17 error checks of cellSaveData.
* cellSysCacheMount restrict characters in ID.
* cellHddGameCheck restricts characters in dirName.
2019-11-10 14:32:15 +03:00
Emmanuel Gil Peyrot 56f82d2701 rsx: Wrap gsl::span definition into Utilities/span.h 2019-11-09 20:00:50 +01:00
Emmanuel Gil Peyrot f29fcc10cf s/GSL/span/ in XML files too
This is completely untested, as I can’t run Visual Studio.
2019-11-09 19:30:06 +01:00
Emmanuel Gil Peyrot 7e4d142682 Remove GSL as we don’t use it anymore 2019-11-09 19:30:06 +01:00
Emmanuel Gil Peyrot f76720ceb0 Remove extraneous ::narrow<int>() calls
GSL’s gsl::span didn’t use the correct type for its index_type, which is
why they were needed.
2019-11-09 19:30:06 +01:00
Emmanuel Gil Peyrot 72cdf0b04c Replace gsl::span’s implementation with tcbrindle’s
This implementation optimises correctly on all relevant compilers,
unlike GSL’s which gave extremely slow code on any compiler other than
MSVC.

Supersedes #6948.
2019-11-09 19:30:06 +01:00
Emmanuel Gil Peyrot 25144caf12 Add tcbrindle’s span implementation 2019-11-09 19:30:06 +01:00
Nekotekina a83cbf63c6 Remove gsl::finally only use 2019-11-09 19:30:06 +01:00
Emmanuel Gil Peyrot ef368c5171 rsx: Replace gsl::byte with C++17’s std::byte 2019-11-09 19:30:05 +01:00
Nekotekina 6ea02c23a0 Fix SSSE3 usage in PPUInterpreter.cpp
Fixup
2019-11-09 20:39:56 +03:00
Nekotekina 1cca00ec3a Fix SSSE3 usage in PPUThread.cpp
Remove legacy ifdefs, allow SSSE3 usage in AppImages.
2019-11-09 20:10:59 +03:00
Nekotekina 191675bf31 Remove gsl::finally only use 2019-11-09 19:11:01 +03:00
Nekotekina 0d629743ca cellSysCache: poison opened cache files on cache clear
Make opened files return CELL_EIO after cache clear.
2019-11-09 14:50:41 +03:00
Nekotekina 73ee6abb0f cellSysCache: return /dev_hdd1 root
It simplifies internal logic a little.
2019-11-09 14:43:19 +03:00
Nekotekina e0bc276205 cellSysCache: keep mounted /dev_hdd1 after exitspawn 2019-11-09 14:43:19 +03:00
kd-11 7072489a6e rsx: Implement point sprite coordinate generation
- When the point sprite flag is set, overrides the input similar to the
2D mask. The returned X and Y values are always the gl_PointCoord values
for the fragment.
- Stacks with the 2D mask to override the z and w coordinates.
2019-11-09 12:50:53 +03:00
Nekotekina 81c61e230f Use std::from_chars in Emulator::SetUsr 2019-11-08 19:27:11 +03:00
Nekotekina ccac9d4777 Remove throwing and catching cpu_flag::stop
Since there is spu_runtime::g_escape function now.
2019-11-08 19:27:11 +03:00
Nekotekina e74a311931 GDB: remove wrong_checksum_exception 2019-11-08 19:27:11 +03:00
Nekotekina 587ae17aa2 Simplify fmt::throw_exception
Gradual exception deprecation: disallow choosing exception type.
However, the function itself can remain here forever.
2019-11-08 19:27:11 +03:00
Nekotekina 742bd633d8 Remove fs::file::set_delete
Since it's Windows-only functionality with limited use.
2019-11-08 19:27:11 +03:00
Nekotekina d6087978b5 Fix vfs::host::unlink (Win32)
Use fs::get_virtual_device properly.
2019-11-08 19:27:11 +03:00
kd-11 63673b1a9f rsx: Implement full color remap for the D24S8->ARGB8 converter 2019-11-08 19:11:59 +03:00
Nekotekina 24fdd24808 Fix vfs::host::remove_all
Separate WIN32-specific logic.
Don't call fs::remove_all on WIN32 path.
2019-11-07 21:21:21 +03:00
RipleyTom 4ff6acf6ba Fixes evdev settings & multiple pads handling 2019-11-07 15:02:01 +03:00
Eladash af0bd7136d PPU Disasm: Fix RC OE enabled instructions view 2019-11-07 14:09:23 +03:00
kd-11 8d1505752f rsx: Validate depth test setup to avoid address contention 2019-11-07 11:32:44 +03:00
Megamouse 77ac875b0b Qt: adjust custom context menu positions 2019-11-06 19:26:29 +01:00
Nekotekina 03b9ee27c5 Virtualize cellSysCache
Allows caches from multiple games to coexist.
Also change the way of handling cache IDs (file-less).
2019-11-06 14:12:43 +03:00
kd-11 508ffcb775 vk: Compute kernel fixups
- Adhere to workgroup count limits as exposed by the GPU vendor.
  They already execute properly even when going beyond the limits but this removes validation noise.
- Fix invocation counts for deswizzle kernel. The count was incorrect if blocksize was not 4, causing a bunch of useless work to be done.
2019-11-05 22:07:22 +03:00
kd-11 99d71fdc2a vk: Implement layer batching for the GPU swizzle decoder
- Handles all LODs per layer meaning cubemaps are now fully handled in 6 passes instead of 6 * (log2(width)) passes.
- Handles all LODs of a 3D texture in one pass as well.
- The improvements do warrant dropping down the number of allowed compute invocations a bit
2019-11-05 22:07:22 +03:00
kd-11 7a0b94f343 vk: Minor compute optimizations
- Remove use of uniform buffers for compute static data. Use push
constants instead.
- Minor touchups to the deswizzle code to avoid redundant data copies.
2019-11-05 22:07:22 +03:00
kd-11 1266b63135 vk: Enable gpu deswizzling 2019-11-05 22:07:22 +03:00
kd-11 9cd3530c98 rsx: Set up framework for hw deswizzle 2019-11-05 22:07:22 +03:00
Nekotekina 531afe0f97 atomic2: fix pessimisations 2019-11-04 22:53:26 +03:00
Nekotekina ec25deed2b atomic2: fix corruption bug 2019-11-04 22:52:45 +03:00
Nekotekina be306afae9 atomic2: add TSX path for multi_cas 2019-11-04 22:52:24 +03:00
Nekotekina 1f9250e39a Linux: disable update check at startup if not running from AppImage 2019-11-04 22:52:03 +03:00
Nekotekina da135fbfcc SPU LLVM: Disable "special" branch patchpoints 2019-11-04 22:52:03 +03:00
kd-11 57d3c9e171 rsx: Take empty queries into account for engines that spam report reads.
- Some games will spam the report queue with requests but have zpass
statistics enabled.
2019-11-04 18:48:41 +03:00
kd-11 2a8f2c64d2 rsx: Implement report transfer deferring
- Allow delaying report flushes triggered by image_in or buffer_notify
- When the report is ready, all the delayed transfers will automatically
be done.
- TODO: Make this configurable?
2019-11-04 18:48:41 +03:00
kd-11 3e0f9dff4d vk: Improve zcull synchronization
- Use zcull sync hints more aggressively
2019-11-04 18:48:41 +03:00
kd-11 fe3c290d03 vk: Reimplement occlusion result reading
- Implement partial result reads
2019-11-04 18:48:41 +03:00
kd-11 51e0eaaddc rsx: Implement backend notification for upcoming zcull reads 2019-11-04 18:48:41 +03:00
kd-11 df63de8f16 rsx: Allow u32 restart index with full index width 2019-11-04 16:56:34 +03:00
kd-11 6b3af09fa5 vk: Improved crash message for missing MSAA features 2019-11-04 16:56:34 +03:00
ipkpjersi 8ed45a0553 Qt: Fixed plurals of time played strings (#6937) 2019-11-03 21:22:23 +01:00
Silent e1638b9326 Fix context menu showing twice in Game List 2019-11-03 20:13:20 +01:00
Eladash 7475be99ab lv2: Check ipc_key value if object is process shared 2019-11-03 14:59:47 +03:00
eladash 33fe0fdd6b Add missng check for key in cellAudioSetNotifyEventQueue
key is checked once according to hw test.
2019-11-03 14:59:47 +03:00
Megamouse 3be92ec52b Qt: implement time played and last played 2019-11-02 12:48:12 +01:00
RipleyTom 35c0c05707 Stop autoupdater renaming file across devices 2019-11-02 12:31:38 +03:00
Nekotekina f75661bfae Fix ALSA and PULSE building on Linux (workaround) 2019-11-01 20:41:16 +03:00
Nekotekina 35249d2578 Implement multi_cas with atomic2 type
stx::atomic2 is a "fat atomic" for use with multi_cas.
stx::multi_cas is minimal transaction routine.
2019-11-01 20:41:16 +03:00
kd-11 bbed791ee0 vk: Add explicit support for identity image views
- Allows bypassing all remap shenanigans to make some operations that
rely on the raw image to work correctly.
2019-11-01 19:35:46 +03:00