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
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
Billy Laws
44f6aada18
Always set blend state for all colour attachments
2023-01-20 21:07:59 +00:00
Billy Laws
177925be93
Avoid OOB memory acceses when trying to read OOB TICs
...
Some games pass in invalid texture handles (0xffff) when they don't need the texture so return the null texture in this case.
2023-01-20 21:07:59 +00:00
Billy Laws
d8a4a2b08d
Use a spinlock for GPU waiter thread
2023-01-20 21:07:59 +00:00
Billy Laws
f1aed86177
Add a workaround for split-mapping shaders
...
Some games split shaders across multiple mappings and *also* miss the end header, so read a suitably large amount and hope that's enough for now.
2023-01-20 21:07:59 +00:00
Billy Laws
704660bbeb
Store render nodes in a linearly allocated linked list
...
This is much faster in reldebug builds than boost::stable_vector while still providing iterator stability
2023-01-20 21:07:59 +00:00
Billy Laws
326c05a5de
Add guest shader replacement and dumping support
2023-01-20 21:07:59 +00:00
Billy Laws
2f6d27e8d7
Rework circular queue locking
...
Should now be (hopefully) race-free, also switch to a spinlock to avoid any locking overhead.
2023-01-20 21:07:59 +00:00
lynxnb
5d527cb965
Add CNTFRQ_EL0
workaround value for Exynos 1280
2023-01-15 10:16:01 +00:00