kd-11
0031c41630
rsx: Check all attachments when generating pipeline hash key
2021-08-07 19:38:39 +03:00
kd-11
f745971cc8
rsx: Fix coordinate scaling for shadow access ( #10668 )
...
- For shadow2DProj the 3rd coordinate is actually the depth value, do not scale
2021-08-06 22:49:50 +01:00
kd-11
456b649b19
vk: Do not force check for successful texture cache load
...
The following set of conditions can fail
1. We hit a RTT owned texture
2. The texture is invalidated (failed memory integrity test) and set to write/read-through
In this situation, RTT overlap check will skip this surface, and a match can be found in texture cache if WCB/WDB is enabled.
The incoming hit however has no managed payload. This is expected behavior, the search should load from CPU.
2021-08-06 22:07:23 +03:00
kd-11
dff5707e19
Formatting fix
2021-08-06 17:18:48 +03:00
kd-11
0f5603a4bc
Disable warnings around 3rdparty header
2021-08-06 17:18:48 +03:00
kd-11
a4c1fcb59a
Fix 3rdparty imports for case-sensitive platforms (fixes *NIX build)
2021-08-06 17:18:48 +03:00
kd-11
d0a824996b
vk: Add basic support for FSR 1.0
...
- Only implemented for image upscaling.
- Disabled by default. Emulators cannot ensure upscalers are injected at the right rendering step.
- GUI integration not implemented.
2021-08-06 17:18:48 +03:00
kd-11
69b34693f0
vk: Simplify compute job cleanup on exit
...
- Just call destroy automatically on object destruct
2021-08-06 17:18:48 +03:00
kd-11
9a63ed6c50
vk: Unbind global renderer if it is destroyed
2021-08-06 17:18:48 +03:00
kd-11
6f6eda6413
vk/device: Formatting fixes only (EOL)
2021-08-06 17:18:48 +03:00
kd-11
da3c9948e6
rsx: Revert use of std::has_single_bit
...
- Zero is not a power of 2 in this situation, and we do not want to treat it as such
2021-08-04 20:28:25 +03:00
kd-11
daa8265a47
rsx: Fix interpreter texture fetch
2021-08-04 20:28:25 +03:00
kd-11
8aec943093
Use c++20 has_single_bit for POT test
2021-08-03 00:36:04 +03:00
kd-11
99b6963fab
rsx: Improve unnormalized coordinate sampling
...
- Improve rounding when sampling nearest neighbour. This is mostly a problem with NVIDIA
- Implement unnormalized 3D sampling
2021-08-03 00:36:04 +03:00
kd-11
b3c65b7bca
rsx: Implement vtc encoding for NVIDIA OpenGL support
2021-08-03 00:36:04 +03:00
kd-11
0ec526c5f1
rsx: Do not use VTC tiling on NPOT textures
...
- Seems to be ignored for 'normal' textures. Mostly verified through games.
2021-08-03 00:36:04 +03:00
kd-11
f6e4cc14a2
vk: Fix a few incorrectly calculated scratch buffer sizes
2021-07-30 12:43:21 +03:00
Nekotekina
658b4f70ef
Fix some warnings
2021-07-30 09:31:36 +03:00
Megamouse
0a7a12bbff
RSX: fix 'Working buffer not big enough'
2021-07-27 23:59:12 +02:00
kd-11
ace187cdd0
vk: Fix scratch allocation when doing GPU deswizzle
...
- We have to use double the memory because the transformation does not occur in-place like normal bswap
2021-07-27 19:56:31 +03:00
kd-11
c54ddabe0b
vk: Handle out of memory errors that are deferred during texture binding
...
- Set out-of-memory flag if we have a failure to build a subresource.
- Mark textures as requiring reload in case of references to invalid data.
- TODO: This is overly complicated and can be handled better with a smart restructure.
2021-07-27 10:52:21 +03:00
kd-11
e5029c532b
vk: Fix comparison between composite memory types
2021-07-27 10:52:21 +03:00
kd-11
a4cd9e022a
vk: Force explicit minimum size declaration for scratch buffers
2021-07-27 10:52:21 +03:00
kd-11
99bbcd15e1
vk: Fix undefined format class for typeless helpers
2021-07-27 10:52:21 +03:00
kd-11
9d11c8cbb5
vk: Allow creating temporary subresources to fail if we run out of memory.
2021-07-27 10:52:21 +03:00
kd-11
92d1534917
rsx: Set composite images upload context based on their actual contents
2021-07-27 10:52:21 +03:00
kd-11
abd8bbd6ef
vk: Allocate enough scratch memory for GPU deswizzle
...
- Forgot to take alignment into account.
2021-07-27 10:52:21 +03:00
kd-11
13abe785a9
vk: Try to spread memory usage evenly across compatible types if possible
...
- Avoids running into budget constraints if you just dump everything into one heap
2021-07-27 10:52:21 +03:00
kd-11
6a9d1edee1
vk: Fix use-after-free hazard by checking if we're faulting from within the texture cache
...
- If we're using the texture cache, DO NOT delete resources.
2021-07-25 20:55:09 +03:00
kd-11
69bdbe97a8
vk: Make use of multi-pool memory types
2021-07-25 20:55:09 +03:00
kd-11
de7ed1cbe9
vk: Scrap minimum scratch buffer size and just allocate what is requested.
2021-07-25 20:55:09 +03:00
kd-11
7d3bbd3cf7
vk: Dynamically select panic boundaries based on resolution scale
2021-07-25 20:55:09 +03:00
kd-11
59e7379010
vk: Implement heap aggregation
...
- Aggregate heaps of same type under one object and allow allocator to try each matching type.
2021-07-25 20:55:09 +03:00
kd-11
0502f7881f
vk: Disable async texture streaming on all NVIDIA cards
2021-07-20 23:00:00 +03:00
Megamouse
50354253c8
replace some random Emu.Pause with fatal errors
2021-07-20 19:47:00 +02:00
Eladash
6f901636bf
rsx: Fix vertical windows' clip
2021-07-18 13:44:23 +02:00
kd-11
0d87d909c6
vk: Fix double-spill for invalidated resources
2021-07-17 21:28:11 +03:00
kd-11
2d4df57d87
vk: Fix nul deref in spill code
...
- Restores code lost in a rebase
2021-07-17 21:28:11 +03:00
kd-11
b7df539871
vk: Fix null deref in texture cache when dumping temporary storage
2021-07-17 21:28:11 +03:00
kd-11
d53f2f10fb
rsx/vk: Improve recovery during OOM situations
...
- Do not spill when running on IGP with only one heap as it will just crash anyway.
- Do not handle collapse operations when OOM. This will likely just crash and there are better ways to handle old surfaces.
- Spill or remove everything not in the current working set
- TODO: MSAA spill without VRAM allocations
2021-07-17 21:28:11 +03:00
kd-11
aaac4c1bde
Clang workaround for c++20 non-compliance
2021-07-15 18:05:35 +03:00
kd-11
974a3c8807
Fix linux build
2021-07-15 18:05:35 +03:00
kd-11
369f1132f3
Formatting fixes
...
- Non-functional stuff, move along
2021-07-15 18:05:35 +03:00
kd-11
2524c35638
vk: Improve handling of texture cache temporary resources
...
- Temp resources from the texture cache are used to hold composite objects being sent to the GPU and can waste a lot of memory.
- Remove them if we run out of memory as they can linger around for a long time.
2021-07-15 18:05:35 +03:00
kd-11
d906ccc77e
vk: Switch on the new VRAM management system
2021-07-15 18:05:35 +03:00
kd-11
a2f93b0696
rsx: Implement a simple cache eviction routine
...
- Can remove all non-essential textures from the cache except those passed as an exclusion list
2021-07-15 18:05:35 +03:00
kd-11
77c9dff054
vk: Minor whitespace fix
...
- Non-functional formatting and warning fixes
2021-07-15 18:05:35 +03:00
kd-11
09f9f21261
vk: Add overallocation quota for texture cache
2021-07-15 18:05:35 +03:00
kd-11
5f6d1644cf
vk: Refactor VkTextureCache by moving most of the code to cpp file
...
- Makes adding next set of changes easier
2021-07-15 18:05:35 +03:00
kd-11
c18e5e07cc
vk: Implement VRAM spilling
...
- The idea is to shift memory to "shared graphics memory" when VRAM is running out
2021-07-15 18:05:35 +03:00