Commit Graph

1801 Commits

Author SHA1 Message Date
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
ffe7263848 Add quirk for 615 drivers with broken multithreaded compilation 2022-12-22 18:05:45 +00:00
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
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
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
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
9115b8cae8 Properly hash dynamic states in pipeline cache 2022-12-22 18:05:45 +00:00
7c4b4765bf Reduce thresholds for slot increase and buffer/texture fast readback 2022-12-22 18:05:45 +00:00
f32ab1feff Include BS thread pool library 2022-12-22 18:05:45 +00:00
ce428af2e6 Use attachment formats rather than views in VK pipeline cache 2022-12-22 18:05:45 +00:00
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
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
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
de10ab1219 Stub SetConnectionConfirmationOption 2022-12-18 20:34:55 +00:00
f3b2b4317e Stub some IPrepoService calls 2022-12-18 20:34:55 +00:00
efef67b92b Stub some IAudioDevice calls 2022-12-18 20:34:55 +00:00
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
3c5f8dd876 Fix small typo 2022-12-18 14:49:54 +00:00
18506a6e52 Update actions/checkout 2022-12-10 15:39:54 +00:00
c8a99582c2 Upload artifacts on ci-labeled PRs only 2022-12-10 15:39:54 +00:00
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
dcc3047ba8 Stub ErrorCommonArg 2022-12-10 14:58:20 +00:00
68253fe995 Stub mii:e/mii:u
Needed for SSBU
2022-12-10 14:58:20 +00:00
69ee3cfc66 Stub DeleteDirectory
Should allow deleting/rewriting saves in some games
2022-12-10 14:58:20 +00:00
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
5f510d84d7 Stub IsVibrationPermitted 2022-12-10 14:58:20 +00:00
51d1f519af Stub ListDisplays 2022-12-10 14:58:20 +00:00
a3866a3129 Stub LibraryAppletShop 2022-12-10 14:58:20 +00:00
1ebec7db82 Stub GetImageSize and LoadImage 2022-12-10 14:58:20 +00:00
52c4228ecf Stub some friends service calls
Needed for Diablo 3
2022-12-10 14:58:20 +00:00
ebcbc5b05b Validate NpadId for ActivateVibrationDevice 2022-12-10 14:58:20 +00:00
4bdd033354 Stub SetRecordVolumeMuted 2022-12-10 14:58:20 +00:00
f6d95aae01 Stub GetCacheStorageSize 2022-12-10 14:58:20 +00:00
4ab8699cd4 Stub ImportServerPki 2022-12-10 14:58:20 +00:00
41cf4bb12d Stub GetLanguageCode 2022-12-10 14:58:20 +00:00
3e078d54b6 Stub GetIdleTimeDetectionExtension 2022-12-10 14:58:20 +00:00
2311f777fc Stub IsCpuOverclockEnabled 2022-12-10 14:58:20 +00:00
4601c28c28 Stub GetCurrentIpAddress 2022-12-10 14:58:20 +00:00
18e6a6c53c Stub DeclareOpenOnlinePlaySession and DeclareCloseOnlinePlaySession 2022-12-10 14:58:20 +00:00
150c1370c2 Stub some IApplicationFunctions funcs 2022-12-10 14:58:20 +00:00
a6f3aa3062 Stub TrySelectUserWithoutInteraction and ListQualifiedUsers 2022-12-10 14:58:20 +00:00
5a9a2861df Add TitleId TextView in App Dialog 2022-12-10 14:57:46 +00:00
b08fcd7027 Favor a predefined "click" over system vibration 2022-12-10 14:57:33 +00:00
cfd3bfecba Add a rudimentary OSC button vibration setting 2022-12-10 14:57:33 +00:00
2afd33b305 Replace Ko-fi link with Patreon 2022-12-05 15:19:00 +01:00
7c802aea46 Mark vertex buffers as dirty on limit changes 2022-12-03 22:50:56 +00:00
df19810c6c Always set vertex stride for unbound buffers 2022-12-03 22:50:56 +00:00
f4f658e3b7 Fix typo 2022-12-03 22:50:56 +00:00
45b10ef776 Return whole mapping for shader code when end instrs aren't found 2022-12-03 22:50:56 +00:00
d849875656 Only unlock GPU channel state on queue wait if it was previously locked 2022-12-03 22:50:56 +00:00