kd-11
d25ba03e82
vk: Lazy evaluate renderpass scope
...
- Spamming the driver with renderpass open/close cycles is bad for performance.
2020-03-15 18:39:40 +03:00
kd-11
47bbfdd2aa
vk: Change texture cache memory management for disposed textures
...
- Use global resource manager instead of using the 2-frame hold behavior.
- Fixes high VRAM usage in some games
2020-03-11 16:29:34 +03:00
kd-11
7989de9d16
vk: Properly release dma resources.
2020-03-10 22:02:02 +03:00
kd-11
93295f7f50
vk: Fix image properties for flip temporary images to be samplable.
...
- In case of gamma correction or other effects, they may require shader access.
- BGRA8_UNORM is usually safe to use directly without staging memory.
2020-03-07 16:58:35 +03:00
kd-11
7fe9802f87
vk: Properly use declared pitch when loading simple images
2020-03-01 00:16:52 +03:00
kd-11
76bbbe27f1
vk: Fix dma resource leak
...
- Fix broken check; a relic of the past where flush method would reset the fence
2020-03-01 00:16:02 +03:00
kd-11
9af52d12a8
vk: Improve events
...
- Make events properly managed objects.
- Add a workaround for AMD's broken event status query
2020-03-01 00:16:02 +03:00
Megamouse
fe75311be2
move config structs to own files and clean up some headers
2020-02-17 15:08:17 +03:00
Nekotekina
c0f80cfe7a
Use attributes for LIKELY/UNLIKELY
...
Remove LIKELY/UNLIKELY macro.
2020-02-05 10:42:34 +03:00
kd-11
698702cd4a
vk: Fix DMA data leak
...
- There still does not exist a ranged flush implementation which is required.
- TODO: Implement this properly
2020-01-26 13:58:48 +03:00
kd-11
1166ae19bb
vk: Use appropriate layouts depending on use case when creating new textures to avoid needless barriers
2020-01-26 13:58:48 +03:00
kd-11
9b34f00241
vk: Optimize image transfers
...
- Adds the same optimization/simplification steps to complex image
transfer routines. Whenever possible, multi-step transfers are collapsed
into a single operation.
2020-01-16 22:29:26 +03:00
kd-11
3d96fe79cc
vk: Implement dynamic sized compute heap
...
- Implements a dynamically sized compute heap to allow growing up the
size if it is too small.
2020-01-15 15:42:36 +03:00
kd-11
8bbda3dedb
vk: Restructure command queue flushing behavior to avoid deadlock
...
- Queueing commands on the offloader is a good idea but unfortunately
page faults can still happen causing a cyclic dependency and eventual
deadlock. Characterized by a vk::wait_for_event timed out error
accompanied by severe hitching.
- Drain the fault-able commands before pushing a submit operation to the
queue. If a fault is in progress, bypass the queue system and submit
raw. Technically this is incorrect but there isn't much that can be
done about it right now.
2020-01-14 14:32:40 +03:00
kd-11
a51395370e
vk: Implement multithreaded command submission
...
- A few nagging issues remain, specifically that partial command stream
largely caused by poor synchronization structures for partial CS flush
and also the fact that occlusion map entries wait on a command buffer
and not an EID!
2019-12-29 13:49:46 +03:00
Megamouse
ef6f565dbd
silence some annoying warnings
2019-12-28 15:40:57 +01:00
Nekotekina
377e7d2a73
C-style cast cleanup VI
2019-12-04 17:56:22 +03:00
kd-11
bd1bcc6be7
vk: Remove a redundant memory barrier
2019-10-18 14:46:37 +03:00
kd-11
decf9cfcf6
rsx: Notify the backend to release or delete temporary surfaces after we're done with them.
2019-10-18 14:46:37 +03:00
kd-11
840b52fe80
rsx: Implement mipmap gathering from texture cache
2019-10-17 18:18:00 +03:00
kd-11
d6d8766f8d
rsx: Refactoring
...
- Move some helper routines out of the cache core
- Prep for multi-layered image search
2019-10-17 18:18:00 +03:00
kd-11
305a5bd717
typo fix
2019-10-05 12:01:46 +03:00
kd-11
4a19a2dd24
rsx: Explicity describe transfer regions for both source and destination blocks
2019-10-04 18:10:46 +03:00
kd-11
858014b718
rsx: Experiments with nul sink
2019-09-12 23:32:21 +03:00
kd-11
212ac19c11
vk: Reimplement DMA synchronization
2019-09-12 23:32:21 +03:00
kd-11
75fcfac00e
rsx: Modify find_cached_texture to respect gcm_format. Can pass 0 for "dont care"
2019-09-10 16:54:02 +03:00
kd-11
312bf6840e
vk: Fix surface_transform::argb_to_bgra transfers when no scaling is requested
2019-09-08 13:56:41 +03:00
kd-11
141072023b
rsx: Fix handling of ARGB8 memory
...
- Load into memory as straightforward BGRA
- Fixes a bug in vulkan caused by byte shuffling in blit engine vs shader access
- Removes the need for memory shuffling when transferring into a rendertarget
2019-08-21 21:17:15 +03:00
kd-11
9ca6546dec
vk: When reusing resources, make sure to reinitialize the component layout
2019-07-09 16:27:59 +03:00
kd-11
ad10eb391e
vk: Reuse discarded memory whenever possible instead of recreating new
...
objects
- Memory allocations are surprisingly expensive when spammed
2019-07-03 15:52:16 +03:00
kd-11
71e809a78b
rsx: Implement dma abort in case of a reset after misprediction
2019-07-03 15:52:16 +03:00
kd-11
ae93b417ec
vk: Handle emergency commandbuffer close with dangling queries
...
- TODO: Refactoring
2019-07-03 15:52:16 +03:00
kd-11
d69e8288ad
vk: Restructure commandbuffer submission into tagged event IDs
...
- Tagged eventIDs can be used to safely delete resources that are no
longer used
- TODO: Expand gc to collect images as well
- TODO: Fix the texture cache to avoid over-allocating image resources
2019-07-03 15:52:16 +03:00
kd-11
ce04a797c3
vk: Fix event signal race when speculation fails to avoid a cache miss
...
- TODO: Proper GC for stale events
2019-07-03 15:52:16 +03:00
JohnHolmesII
23094b48bb
Fix warnings related to -Wswitch
...
Add default cases.
Move default breaks to newline
Add proper handling in some instances.
Add missing enums to switches
2019-06-28 01:40:52 +03:00
Lassi Hämäläinen
c963c51a60
Remove unnecessary header includes
...
- Manually removed lot of unneeded #includes to clean code and reduce
compilation time
- Reordered some of the #includes to be in more logical order
2019-06-25 17:11:10 +03:00
kd-11
4104d7a6a1
vk: Simplify WCB heuristics and fix out-of-bounds access
2019-06-14 16:19:52 +03:00
kd-11
296e0105c4
vk: Fix WCB for antialiased memory
2019-06-14 16:19:52 +03:00
kd-11
e4671c29a6
rsx: Fix typo
...
- Arguments to the transform function are xxyy not xyxy
2019-06-14 16:19:52 +03:00
kd-11
5f34c0c59a
vk: Clean up WCB readbacks when resource is multisampled
...
- Resolve image first before performing any transfer operations
2019-06-14 16:19:52 +03:00
kd-11
0d906d6974
rsx: Remove surface aa_mode hacks
2019-06-14 16:19:52 +03:00
scribam
635695ac78
rsx: Apply Clang-Tidy fix "modernize-use-emplace"
2019-06-12 15:11:52 +03:00
scribam
a02a8642b0
rsx: Apply Clang-Tidy fix "modernize-make-unique"
2019-06-12 15:11:52 +03:00
scribam
ac7e89660f
rsx: Apply Clang-Tidy fix "readability-redundant-smartptr-get"
2019-06-12 15:11:52 +03:00
kd-11
57196f0504
vk: Move frame present synchronization to the driver
...
- Just use a semaphore and let the driver handle it instead of manual framepacing.
We lose framepace control but drivers have matured in the past few years so it should work fine.
2019-06-10 14:57:03 +03:00
kd-11
46ba53f122
vk: Propagate more information to the driver
...
- Pass "correct" layout to descriptors
- TODO: Fix renderpass attachment descriptors which are inadvertently doing silent transitions
2019-05-22 01:18:46 +03:00
kd-11
214bb3ec87
rsx: Always initialize memory unless it is guaranteed to be wiped
2019-05-16 19:25:26 +03:00
kd-11
b840f6da28
[WIP] rsx: Use a sane reference counting model
2019-05-16 19:25:26 +03:00
kd-11
a5ed30a8c0
rsx: Fixups for data cast operations via typeless transfer
2019-04-09 13:40:54 +03:00
kd-11
3249000511
rsx: Improvements to texture scanning
...
- Removes CPU-only transforms that broke GPU-side code.
-- Channels in GPU compute are laid out in cell-order, but CPU was uploading in favorable order and compensating with swizzles.
-- This leads to 2 different layouts depending on the location of the data (CPU vs GPU)
- Implement R8G8_R8B8 interleaved format decode
- General improvements
2019-04-09 13:40:54 +03:00