Commit graph

3639 commits

Author SHA1 Message Date
kd-11
a8441b28e8 rsx: Implement basic 2D bilinear filtering for MSAA images 2022-04-04 16:51:03 +03:00
kd-11
4a86638ce8 rsx: Avoid unnecessary memprotect syscalls 2022-03-29 12:35:32 +03:00
kd-11
e037b5c438 rsx: Handle in-place image swaps when locking data for WCB/WDB
- Rare, but possible if a surface address is switched from color to depth usage
- In such a case, deref the old image and ref the new one to avoid leaks
2022-03-29 12:35:32 +03:00
kd-11
f45343a345 rsx: Handle DMA block init where empty pages exist in the range 2022-03-29 12:35:32 +03:00
kd-11
94a7e52c1f rsx: Disable ref count on exit 2022-03-28 19:55:34 +03:00
kd-11
2b42895bc7 rsx: Reduce log spam a bit 2022-03-28 19:55:34 +03:00
kd-11
d98d152d23 rsx: Fix leaking surface cache refs from texture cache
- Lock surfaces in use by texture cache to prevent complete deletion
- Remove discarded surfaces from the reprotect cache to avoid uaf
2022-03-28 19:55:34 +03:00
kd-11
b645a7faf5 vk: Rebuild swapchain in case of unexpected errors during present 2022-03-28 19:55:34 +03:00
kd-11
ffa841e7c1 vk: Force resolve explicitly for transfer operations 2022-03-28 19:55:34 +03:00
kd-11
e66d6a9399 Fix interpreter 2022-03-26 16:10:18 +03:00
kd-11
ef65c47592 vk: Restore UBO alignment
- NV requires some very large alignment thresholds
2022-03-26 16:10:18 +03:00
kd-11
1592ecdc55 rsx: Invalidate transform block on program change
- Since each program now does a remap of the outputs, we need to reupload the constants
- This is not a loss, constants are almost always changing between draw calls anyway
2022-03-26 16:10:18 +03:00
kd-11
96742852eb Fix OGL 2022-03-26 16:10:18 +03:00
kd-11
de0e660d28 rsx: Handle vertex shaders with no constant references
- If no vc[] refs exist, do not upload anything!
2022-03-26 16:10:18 +03:00
kd-11
d057ffe80f rsx: Fix program generation and compact referenced data blocks 2022-03-26 16:10:18 +03:00
kd-11
9a2d4fe46b rsx: Relocatable transform constants 2022-03-26 16:10:18 +03:00
RipleyTom
a4d715e25d Warning Fixes 2022-03-23 19:35:10 +01:00
kd-11
af0e1f609e Fix vulkan compilation warnings 2022-03-23 11:26:06 +03:00
kd-11
1ab5b481ff Fix ambiguous comparison operator warning 2022-03-23 11:26:06 +03:00
kd-11
26ee1246ae rsx: Block size back down to 4MB
- 4M is a good compromise, a 720p surface occupies just under 4MB
2022-03-23 11:26:06 +03:00
kd-11
d0402332f7 rsx: Bump surface cache block size to 16M 2022-03-23 11:26:06 +03:00
kd-11
43c7417906 rsx: Rework ranged map
- Adds metadata lookup for intersecting range calculations
- Make fetch/put methods more explicit
2022-03-23 11:26:06 +03:00
kd-11
56540a55ec Fix linux 2022-03-23 11:26:06 +03:00
kd-11
35ec4de776 rsx: Optimize surface store for faster scanning 2022-03-23 11:26:06 +03:00
kd-11
bc7ed8eaab rsx/vk: Rework MSAA implementation 2022-03-17 22:02:20 +03:00
Megamouse
04df392866 Log cpu usage periodically 2022-03-16 19:42:06 +01:00
kd-11
78b8bd80e4 rsx: Unconditionally set MSAA flags if MSAA is active 2022-03-11 01:15:13 +03:00
kd-11
1943d9819f rsx: Clean up surface cache routines around RTT invalidate 2022-03-10 20:43:58 +03:00
kd-11
59a0cf94ab rsx: Fix msvc build 2022-03-08 22:06:26 +03:00
kd-11
3e4faf602a rsx: Fix clang build 2022-03-08 22:06:26 +03:00
kd-11
454a724f4e rsx: Reduce the performance impact of enabling the profiling timer
- Just use TSC if available
2022-03-08 22:06:26 +03:00
kd-11
cfecbb24ca rsx: Avoid calling slow functions every draw call
- Use TSC for timing where interval duration matters.
- Use atomic counter for ordering timestamps otherwise.
2022-03-08 22:06:26 +03:00
kd-11
762b594927 rsx: Fully process texture if surface cache configuration changed 2022-03-08 22:06:26 +03:00
kd-11
8d3d290e33 rsx: Fix build 2022-03-08 22:06:26 +03:00
kd-11
0df903090d rsx: Optimize metrics a bit
- For some reason this has a massive impact on performance above some arbitrary threshold of calls
  Shows up under surface_cache::get_merged_memory_region when doing gathers.
2022-03-08 22:06:26 +03:00
kd-11
6812fa4764 rsx: Fix surface write coherency when MSAA is active 2022-03-08 22:06:26 +03:00
Megamouse
cd97d74f0f cellMusic/Decode: add SelectContents functions 2022-03-08 09:02:59 +01:00
Megamouse
aafd74f9ea cellMusicDecode: initial implementation
Implements the basic functionality of cellMusicDecode.
Works with Space Invaders (if you add the list selection from the other PR).
Probably fixes SSX custom music.
2022-03-05 18:34:27 +01:00
kd-11
0dbfe314a3 vk: Encode image type when caching resources 2022-03-01 21:51:55 +03:00
kd-11
00a1864a95 Revert "rsx: Downgrade depth-1 3D images to 2D (#11593)"
This reverts commit 6c096b72b5.
2022-03-01 21:51:55 +03:00
kd-11
6c096b72b5
rsx: Downgrade depth-1 3D images to 2D (#11593)
- Fixes problems with implicit view types derived from dimensions.
2022-03-01 10:45:50 +03:00
kd-11
e035000864 vk: Do not enable passthrough DMA unconditionally (yet)
- There are still some kinks to work out. Host labels do not fix all the bugs which means I missed something.
2022-02-26 10:28:46 +03:00
kd-11
6db5d83615 Flush dma offloader on texture read sema 2022-02-25 10:53:55 +03:00
kd-11
f3823232e0 Disable passthrough DMA for proprietary intel driver 2022-02-23 21:15:08 +03:00
kd-11
6b8b23c401 vk: Drain the label queue before using the CPU fallback to avoid out-of-order signals
- This avoids crashes in some game engines which expect RSX semaphores to signal in the order they are submitted.
2022-02-23 12:57:04 +03:00
kd-11
6fd2a9b677 rsx: Remove leftover dprints 2022-02-23 12:57:04 +03:00
kd-11
da559b5568 vk/rsx: Tuning and optimization for host labels 2022-02-23 12:57:04 +03:00
kd-11
24587ab459 rsx: Add the option to the advanced tab 2022-02-23 12:57:04 +03:00
kd-11
c7e49b58a8 rsx: Implement host GPU sync labels 2022-02-23 12:57:04 +03:00
kd-11
10e6b43a2f Drop redundant declaration 2022-02-21 23:58:01 +03:00