Commit Graph

1945 Commits

Author SHA1 Message Date
Billy Laws
6ea1483c9a Fix a race with multiple threads pushing data into circular queue
If the 'end' changes when waiting for data to be consumed our 'waitNext' would be invalid leading to a deadlock.
2023-02-20 18:01:49 +00:00
Billy Laws
f55b135243 Assert on geometry stream usage 2023-02-20 18:01:49 +00:00
Billy Laws
2e64199640 Add host shader replacement and dumping support
This is useful for debugging, but shouldn't generally be used as bindings in SPIR-V etc are unstable.
2023-02-20 18:01:49 +00:00
Billy Laws
02786839a5 Flush pipeline after texture uploads 2023-02-20 18:01:49 +00:00
Billy Laws
ffdd50bdf3 Fix geometry and compute shaders on mali GPUs 2023-02-20 18:01:49 +00:00
mk73ds
cb62e15748 Ignore new layer creations instead of replacing previous ones while waiting for proper multiple layers support. 2023-02-18 12:06:37 +00:00
Erwin Spitaler
2855d12f31 quick and dirty implementation for GetFreeSpaceSize 2023-02-18 12:06:18 +00:00
Abandoned Cart
b20c6e9fc4 onBackPressed -> onBackPressedDispatcher 2023-02-16 14:50:02 +01:00
MrPurple666
bc3c49bc28 Add TIC format: 0x58D24946
Cult of the Lamb must be in-game and should fix some textures in Bayonetta 3

Co-authored-by: neogan-bot <neogan-bot@users.noreply.github.com>
2023-02-13 12:10:29 +00:00
PixelyIon
3407f5a6d1 Fix Depth RT layer stride
The layer stride provided by the depth register in Maxwell3D needs to be shifted by 2, this caused the stride to be 1/4th of what it needed to be resulting in OOB access.
2023-02-13 12:02:29 +00:00
PixelyIon
df3b961d5d Fix mipmapped GOB dimensions calculation
When calculating mip-level dimensions in terms of GOBs, they need to be divided by 2 while rounding upwards rather than downwards. This fixes corrupted textures and OOB access on lower mip levels across a substantial amount of titles, reducing arbitrary crashes as a result.
2023-02-13 12:02:29 +00:00
lynxnb
c9b055d0e3 Build reldebug instead of debug in CI 2023-02-12 22:21:25 +01:00
Niccolò Betto
439c18d8eb Fix ccache not working in CI
The default `compiler_check` strategy used by ccache was causing a 0% hit rate, as it was using the compiler's "modified time" as part of the hash. Since the script installs dependencies from scratch for every run, mtime was always different, causing different hashes even when source files were unchanged. To avoid this, use the NDK version as part of the hash instead.
2023-02-12 22:09:11 +01:00
lynxnb
9a96ea84ba Trigger an edge patch update on modified edge PRs 2023-02-12 03:22:00 +01:00
lynxnb
e9907d2fac Trigger an edge patch update on edge label added/removed 2023-02-09 23:49:20 +01:00
Billy Laws
bff232f326 Update edge names 2023-02-07 16:52:33 +00:00
Billy Laws
754a9dfd77 Avoid storing guest shader hash in generated spirv
This accidentally broke VK spec and could harm driver caching.
2023-02-07 16:50:46 +00:00
german77
9e1c9caa36 input: Fix motion orientation based on phone orientation 2023-02-07 16:16:41 +00:00
german77
56d43a70c0 Implement SixAxis sensor 2023-02-07 16:16:41 +00:00
lynxnb
bac4ec2977 Update Kotlin + Android dependencies
* Update Kotlin to 1.7.21
* Migrate Hilt to Gradle Plugin DSL and use updated package name
* Update dependencies
* Misc cleanup of build scripts
2023-02-06 15:04:20 +01:00
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