Commit Graph

1755 Commits

Author SHA1 Message Date
Billy Laws
516ece6b04 Calculate renderarea from attachment min size 2022-12-22 18:05:45 +00:00
Billy Laws
4a3cd69257 Populate graphics pipeline manager from cache at launch-time 2022-12-22 18:05:45 +00:00
Billy Laws
e9bcdd06eb Introduce a pipeline cache manager for simple read/write cache accesses
All writes are done async into a staging file, which is then merged into the main pipeline cache file at the time of the next launch. Upon encountering file corruption the cache can be trimmed up to the last-known-good entry to avoid any excessive loss of data from just one error.
2022-12-22 18:05:45 +00:00
Billy Laws
06bf1b38af Introduce a pipeline state accessor that reads from a bundle 2022-12-22 18:05:45 +00:00
Billy Laws
7dd3a1db0f Avoid InterconnectContext use in graphics PipelineManager
We will soon move to a global pipeline manager instance, so it wont be possible to use InterconnectContext at pipeline-creation time anymore
2022-12-22 18:05:45 +00:00
Billy Laws
ffe7263848 Add quirk for 615 drivers with broken multithreaded compilation 2022-12-22 18:05:45 +00:00
Billy Laws
755f7c75af Add pipeline (de)serialisation support to bundle
See comments in code for details on the on-disk format.
2022-12-22 18:05:45 +00:00
Billy Laws
937eff392f Switch execution-numbers to be globally unique tags
This is required for making pipelines usable across channels without introducing caching bugs.
2022-12-22 18:05:45 +00:00
Billy Laws
072b8193a1 Implement thread pool based async pipeline compilation with futures
By distributing the load of shader compiling onto multiple threads and then only waiting for completion until absolutely neccessary we can reduce compilation stutters significantly.
2022-12-22 18:05:45 +00:00
Billy Laws
186549748d Implement HelperShader-local pipeline cache and use dynamic state
Avoids the heavy overhead of the VK pipeline cache when we really only have a few bits of non-dynamic state
2022-12-22 18:05:45 +00:00
Billy Laws
9115b8cae8 Properly hash dynamic states in pipeline cache 2022-12-22 18:05:45 +00:00
Billy Laws
7c4b4765bf Reduce thresholds for slot increase and buffer/texture fast readback 2022-12-22 18:05:45 +00:00
Billy Laws
f32ab1feff Include BS thread pool library 2022-12-22 18:05:45 +00:00
Billy Laws
ce428af2e6 Use attachment formats rather than views in VK pipeline cache 2022-12-22 18:05:45 +00:00
Billy Laws
e849264028 Abstract out pipeline-compile-time GPU state accesses
Introduces the base abstractions that will be used for pipeline caching, with a 'PipelineStateBundle' that can be (de)serialised to/from disk and an abstract accessor class to allow switching between creating disk-cached pipelines and fresh ones.
2022-12-22 18:05:45 +00:00
Billy Laws
2e96248fb6 Track RT format info in PackedPipelineState and move VK conv code there
When caching pipelines we can't cache whole images, only their formats so refactor PackedPipelineState so that it can be used for pipeline creation, as opposed to passing in a list of attachments.
2022-12-22 18:05:45 +00:00
Billy Laws
bc7e1eb380 Split-out hash from ShaderBinary struct
This isn't necessary for pipeline creation and creates some difficulty with pipeline caching.
2022-12-22 18:05:45 +00:00
Dima
de10ab1219 Stub SetConnectionConfirmationOption 2022-12-18 20:34:55 +00:00
Dima
f3b2b4317e Stub some IPrepoService calls 2022-12-18 20:34:55 +00:00
Dima
efef67b92b Stub some IAudioDevice calls 2022-12-18 20:34:55 +00:00
Dima
3a94bcf692 Fix ListOpenContextStoredUsers stub
The problem is in StoreOpenContext wasn't storing any user, but ListOpenContextStoredUsers was writing default user (when it's not stored by StoreOpenContext)
2022-12-18 20:34:55 +00:00
TheASVigilante
3c5f8dd876 Fix small typo 2022-12-18 14:49:54 +00:00
lynxnb
18506a6e52 Update actions/checkout 2022-12-10 15:39:54 +00:00
lynxnb
c8a99582c2 Upload artifacts on ci-labeled PRs only 2022-12-10 15:39:54 +00:00
lynxnb
6599c1dccf Stub GyroscopeZeroDriftMode
Related service calls are called in a loop by SM3DW. A variable tracking zero drift mode has been added to `npad_device`, but it's unused at the moment.
2022-12-10 14:59:44 +00:00
Dima
dcc3047ba8 Stub ErrorCommonArg 2022-12-10 14:58:20 +00:00
Dima
68253fe995 Stub mii:e/mii:u
Needed for SSBU
2022-12-10 14:58:20 +00:00
Dima
69ee3cfc66 Stub DeleteDirectory
Should allow deleting/rewriting saves in some games
2022-12-10 14:58:20 +00:00
Dima
bbd34ae7e7 Validate if entries are not empty before using
Should fix saving problem in Baldur's Gate: Dark Alliance II at least
2022-12-10 14:58:20 +00:00
Dima
5f510d84d7 Stub IsVibrationPermitted 2022-12-10 14:58:20 +00:00
Dima
51d1f519af Stub ListDisplays 2022-12-10 14:58:20 +00:00
Dima
a3866a3129 Stub LibraryAppletShop 2022-12-10 14:58:20 +00:00
Dima
1ebec7db82 Stub GetImageSize and LoadImage 2022-12-10 14:58:20 +00:00
Dima
52c4228ecf Stub some friends service calls
Needed for Diablo 3
2022-12-10 14:58:20 +00:00
Dima
ebcbc5b05b Validate NpadId for ActivateVibrationDevice 2022-12-10 14:58:20 +00:00
Dima
4bdd033354 Stub SetRecordVolumeMuted 2022-12-10 14:58:20 +00:00
Dima
f6d95aae01 Stub GetCacheStorageSize 2022-12-10 14:58:20 +00:00
Dima
4ab8699cd4 Stub ImportServerPki 2022-12-10 14:58:20 +00:00
Dima
41cf4bb12d Stub GetLanguageCode 2022-12-10 14:58:20 +00:00
Dima
3e078d54b6 Stub GetIdleTimeDetectionExtension 2022-12-10 14:58:20 +00:00
Dima
2311f777fc Stub IsCpuOverclockEnabled 2022-12-10 14:58:20 +00:00
Dima
4601c28c28 Stub GetCurrentIpAddress 2022-12-10 14:58:20 +00:00
Dima
18e6a6c53c Stub DeclareOpenOnlinePlaySession and DeclareCloseOnlinePlaySession 2022-12-10 14:58:20 +00:00
Dima
150c1370c2 Stub some IApplicationFunctions funcs 2022-12-10 14:58:20 +00:00
Dima
a6f3aa3062 Stub TrySelectUserWithoutInteraction and ListQualifiedUsers 2022-12-10 14:58:20 +00:00
Dima
5a9a2861df Add TitleId TextView in App Dialog 2022-12-10 14:57:46 +00:00
Abandoned Cart
b08fcd7027 Favor a predefined "click" over system vibration 2022-12-10 14:57:33 +00:00
Abandoned Cart
cfd3bfecba Add a rudimentary OSC button vibration setting 2022-12-10 14:57:33 +00:00
Niccolò Betto
2afd33b305
Replace Ko-fi link with Patreon 2022-12-05 15:19:00 +01:00
Billy Laws
7c802aea46 Mark vertex buffers as dirty on limit changes 2022-12-03 22:50:56 +00:00