Commit Graph

1825 Commits

Author SHA1 Message Date
lynxnb 5137d7d876 Update gitignore to ignore gradle-generated files 2023-02-06 15:04:20 +01:00
lynxnb 85a711c420 Suppress warnings in `AndroidManifest` 2023-02-06 15:04:20 +01:00
lynxnb 8abd0032f1 Update Android Studio run configurations to the latest format 2023-02-06 15:04:20 +01:00
lynxnb 42e0cc4290 Update build.gradle to remove deprecated properties 2023-02-06 15:04:20 +01:00
PixelyIon 2cdff40bcb Add debug log for SVC `CancelSynchronization`
This SVC was missing a log which makes it harder to trace issues to it, it has been added to assist with future debugging.
2023-02-05 18:07:11 +05:30
PixelyIon 0cc2eede22 Add `output-metadata.json` to `.gitignore`
This JSON file is generated for any APK builds, it's entirely unnecessary to commit to the repository and has no relevance outside of the local context therefore has been added to `.gitignore`.
2023-02-05 18:05:32 +05:30
Billy Laws 7f1b6de1fe Update hades 2023-02-04 23:10:45 +00:00
Billy Laws 94ac457ce0 Ensure mappings are always aligned to big page size when deallocated and
mapped

Since we align up when allocating, not doing so when deallocating would result in a gradual buildup of boundary pages that eventually fill the whole address space.
2023-02-04 23:10:45 +00:00
Billy Laws d659b4f55e Swap min and max depth when negative scale is used
Fixes Super Mario 3D All Stars rendering.
2023-02-04 23:10:45 +00:00
Billy Laws 198e9e8e48 Avoid page faults when using the fallback shader size
These occured in some homebrew otherwise.
2023-02-04 23:10:45 +00:00
Billy Laws 10e7e6272a Pass in pipeline tessellation state to Vulkan 2023-02-04 23:10:45 +00:00
Billy Laws 12c88babd0 Fix address space allocator slow path to avoid OOB 2023-02-04 23:10:45 +00:00
Billy Laws 4a4f6df792 Stub GetBufferHistory transaction 2023-02-04 23:10:45 +00:00
Billy Laws 3795ecceff Stub IdleTickCount GetInfo result 2023-02-04 23:10:45 +00:00
Billy Laws 3ef84b27c3 Avoid pipeline cache warning 2023-02-04 23:10:45 +00:00
Billy Laws bb3baa888d Add a hack to disable shader subgroup shuffles
These are about 100x as expensive on adreno than nvidia due to the lack of a dedicated instruction, since some games work fine without them add a hack to disable them.
2023-02-04 23:10:45 +00:00
Billy Laws 568306195f Prevent Vulkan guest crashes by avoiding intermediate syncpt event signal state
The vulkan guest driver doesn't expect a 0xB return code from SyncptEventWait, even though this is valid when an event is being signalled. Just ignore the intermediate state instead as doing so avoids races without causing any more.
2023-02-04 23:10:45 +00:00
Billy Laws fcb8f2a229 Apply texture shader compiler generated descriptor shifts
These were missed on a hades version upgrade.
2023-02-04 23:10:45 +00:00
Billy Laws bbef006051 Simplify free descriptor set accounting and update ratios
Slightly reduces descriptor usage in Breath of The Wild
2023-02-04 23:10:45 +00:00
Billy Laws 5e862cf5f7 Bail out early if the new pipeline key matches that of the current one
Prevents the transition cache of some pipelines from getting full of copies of itself in cases where an update happens redundantly.
2023-02-04 23:10:45 +00:00
Billy Laws 3e971d4043 Wait for pipeline compilation to finish before loading the guest
The excessive blocking caused by initial compilation happening async to the guest caused issues in some cases, now we have a Vulkan pipeline cache to speed it up we can wait for a full compile before launch without too many issues.
2023-02-04 23:10:45 +00:00
Billy Laws be6f08cd97 Add debug pipeline statistics recording for finding redundant pipelines 2023-02-04 23:10:45 +00:00
Billy Laws 6333a92b53 Only include active RTs in pipeline state key
This was causing a buildup of many redundant pipelines in SMO as a depth-only shader was being called without previous RTs being unbound.
2023-02-04 23:10:45 +00:00
Billy Laws 9d3a9f63d5 Move graphics piplines away from storing hades shader info struct
By only using what we need, and mirroring the descriptor structs to allow for much tighter packing (while keeping the same member names) we can reduce pipeline memory to about 1/3 of what it was before.
2023-02-04 23:10:45 +00:00
Billy Laws dd92cb1536 Implement support for (de)serialising VkPipelineCaches to/from storage
Significantly improves launch times in games with many shader combinations, giving an 5x speedup in some cases.
2023-02-04 23:10:45 +00:00
Billy Laws db173083d7 Update edge credits 2023-02-04 23:10:45 +00:00
PixelyIon a1bf5d27a0 Add information about Skyline Edge to Contributing Guidelines 2023-01-30 20:31:30 +05:30
PabloG02 35617930d5 Fix rebase 2023-01-28 11:57:19 +00:00
PabloG02 8b9d6f79ab Add option to enable/disable shader cache 2023-01-28 11:57:19 +00:00
PixelyIon 8bfda0d84d Fix hole punching in mappings with SVC `UnmapPhysicalMemory`
Certain titles such as Super Smash Bros Ultimate can use SVC `UnmapPhysicalMemory` to punch holes into physical memory mappings, this wasn't handled correctly as we completely deleted the portion after the hole. It has now been fixed which results in these titles which depend on this behavior to work now.
2023-01-23 21:28:59 +00:00
hacobot.dev ff1e62df7a deleted unnecessary convertion 2023-01-23 21:28:49 +00:00
hacobot.dev 75f6f5e31c pull request requested changes 2023-01-23 21:28:49 +00:00
hacobot.dev 7cd13916a3 Main activity is now refreshing when the group checkbox is changed 2023-01-23 21:28:49 +00:00
hacobot.dev b67bfe3848 Added functionality to make optional to group games by format and sort 2023-01-23 21:28:49 +00:00
Billy Laws 6b9be2edd4 Add note about circular queue append contiguosity guarantees 2023-01-20 21:19:04 +00:00
PabloG02 535eafb57a Add Android 13 themed icon 2023-01-20 21:08:33 +00:00
PabloG02 d544ccf5ea Stub INotificationServicesForApplication 2023-01-20 21:08:12 +00:00
PabloG02 2fa5ea451e Stub IPrepoService::SaveReportWithUserOld2 2023-01-20 21:08:12 +00:00
PabloG02 7327cdbde9 Stub some functions in IDeliveryCacheStorageService 2023-01-20 21:08:12 +00:00
PabloG02 c53d99d393 Stub IDeliveryCacheFileService and IDeliveryCacheDirectoryService 2023-01-20 21:08:12 +00:00
PabloG02 299d11d86f Stub IApplicationFunctions::GetNotificationStorageChannelEvent 2023-01-20 21:08:12 +00:00
Billy Laws 7c623f8301 Use a spinlock for thread waiter mutex
Since the waitermutex is only ever locked for a short amount of time, spinning in contention-heavy scenarios ends up quite a bit more efficient than a kernel wait.
2023-01-20 21:07:59 +00:00
Billy Laws e2463b7619 Adjust gpfifo WFI to only do a pipeline barrier 2023-01-20 21:07:59 +00:00
Billy Laws 2b282ece1a Add more fine-grained buffer recreation locking 2023-01-20 21:07:59 +00:00
Billy Laws 85a23e73ba Implement a shared spinlock and use it for GPU VMM 2023-01-20 21:07:59 +00:00
Billy Laws fd5c141dbf Correct GetNpadIrCameraHandle return value 2023-01-20 21:07:59 +00:00
Billy Laws a8b32c3cef Cleanup helper pipeline cache code 2023-01-20 21:07:59 +00:00
Billy Laws 1f99d63a80 Incr transition cache size 2023-01-20 21:07:59 +00:00
Billy Laws 262f92900d Ensure unmapped VMM ranges return an invalid span 2023-01-20 21:07:59 +00:00
Billy Laws 0a608fb4b2 Update to latest hades 2023-01-20 21:07:59 +00:00