Commit graph

680 commits

Author SHA1 Message Date
kd-11
dfc626c99c rsx/vk: Fix WCB/Blit flush deadlock 2024-02-14 21:09:02 +03:00
kd-11
8786516c58 vk: Implement fast RSX release if there is no pending GPU work 2024-02-14 21:09:02 +03:00
kd-11
c3c73c7e24 rsx: Allow native UI render even when we have pending draw calls if FIFO queue is empty. 2024-01-30 16:36:58 +03:00
kd-11
9a9b5860df rsx: Forcefully disable writes to channels disabled on host
- Some formats may have dummy channels on host. Never write to them!
- This means that XRGB formats correctly only write 24 bits, not 32.
2024-01-21 12:30:37 +03:00
kd-11
51fc193395 rsx: De-spaghettify nv3089::image_in
- This function was a disaster with random code added in without much thought over a decade.
- Restructures the logic into decode and transfer steps for easier management.
2023-12-26 18:30:00 +03:00
Megamouse
3f2c75d920 overlays: move debug overlay to native overlay 2023-12-20 23:33:43 +01:00
Megamouse
907e0fa8c8 Fix fxo dependencies 2023-12-15 18:08:07 +01:00
Talkashie
dabb2cc9a0
Fix typos, improve consistency
Fixes typos where spelling or grammar is objectively wrong.
Changes wording and capitalization in some areas to be more consistent with other areas.
2023-07-28 13:09:06 +03:00
kd-11
d77a78cdf1 rsx: Rework texture coordinate handling to support clamping and a more sane scale-bias setup 2023-07-04 09:31:51 +03:00
kd-11
715e3856f2 vk: Update async compute (fast) to use the new sync API 2023-06-22 14:59:58 +03:00
kd-11
d5654d64d5 Nicer variable names 2023-06-16 15:29:36 +03:00
kd-11
06459eb37b vk: Latch query copy requests to reduce number of vulkan commands used 2023-06-16 15:29:36 +03:00
kd-11
49c6c2c529 vk: Do not hard-sync on first sign of fragmentation
- It is very likely that the resource would be available if we just waited a while for the GPU queue to clear.
- Instead of also discarding the current work, first check if we can get by without a hard sync.
2023-06-14 01:12:11 +03:00
kd-11
c1d875d841 vk: Handle VK_ERROR_FRAGMENTATION when allocating descriptor pools 2023-06-14 01:12:11 +03:00
kd-11
97f7461aa9 rsx: Allow the vertex cache to be enabled independently of MTRSX 2023-06-10 01:36:10 +03:00
kd-11
6f834e99d2 vk: Disable conditional rendering on MacOS 2023-06-06 22:05:54 +03:00
kd-11
86c7b31b6d Force disable conditional render on macOS 2023-06-06 22:05:54 +03:00
kd-11
f2f95a20a3 vk: Minor improvement to descriptor and garbage collector interaction 2023-06-01 19:25:50 +03:00
kd-11
12f213ffad rsx: Trim the number of in-flight invalidated resources (temp cache)
- This drastically improves memory allocation behavior.
  Holding too many invalidated resources can lead to a cascading overallocation error as old resources hold refs to even older resources and nothing gets deleted.
2023-06-01 19:25:50 +03:00
kd-11
6a2ea62f82 vk: Minor cleanup 2023-05-30 16:50:08 +03:00
kd-11
6cfd817b5a vk: Fix descriptor-related crashes 2023-05-30 16:50:08 +03:00
kd-11
c99ef4b09f vk: Refactor descriptor handling 2023-05-30 16:50:08 +03:00
kd-11
10171c19c3 vk: Unify descriptor allocation
- Pool management should be a backend implementation detail.
2023-05-30 16:50:08 +03:00
kd-11
57070aa8ff vk: Minor refactor in OOM handler to skip scans if we already found a match 2023-05-15 12:28:19 +03:00
kd-11
29d87a3743 vk: Refactor the vram exhausted handler
- Mostly a de-uglify pass
2023-05-15 12:28:19 +03:00
kd-11
9a2b06f35f vk: Refactor vram exhausted handler to minimize risk of UAF hazards
1. A hard sync before starting the routines on fatal will release some memory going in improving chances of a successful eviction elsewhere.
2. A hard sync on exit cleans up, ensuring no UAF (with caveats)
2023-05-15 12:28:19 +03:00
Megamouse
2d4e02f277 overlays: add ppu compile message if the progress dialog is unavailable 2023-03-05 02:55:59 +01:00
kd-11
1b8a69154f rsx: Use non-owning container to ellide a derpy allocation with msvc 2023-03-01 01:10:06 +03:00
kd-11
7c04b00e2b rsx/vk: Remove stale include 2023-02-24 00:46:53 +03:00
kd-11
ddc9e74aa8 rsx/overlays: Putting it all together
- Migrate dialogs with input-only threads to use the unified input
  system
2023-02-24 00:46:53 +03:00
kd-11
78a588cacb rsx: Use animated icon and message queue for shader compiler notifications 2023-02-03 09:13:27 +03:00
kd-11
5f0467b084 rsx: Remove framebuffer_status_valid flag and move to state 2023-01-26 11:42:39 +03:00
kd-11
6adcabda29 rsx: Fix graphics state foot-gun 2023-01-26 11:42:39 +03:00
kd-11
2752cd1390 rsx/vk: Fix some problems with dynamic state updates 2023-01-11 16:48:53 +03:00
kd-11
10b56415e8 vk: Avoid loading the whole dynamic state properties if only the shader changed
- Handles a common case where a game engine switches materials but uses the same configuration
  e.g rendering two types of wall or ground may need different shaders but similar state properties
2023-01-11 16:48:53 +03:00
kd-11
f71e7ef1cc vk: Switch programs if the primitive type changed
- This will change when EXT_dynamic_state is integrated
2023-01-11 16:48:53 +03:00
kd-11
c7fed20f3c vk: Short-circuit program load if state did not change
- TODO: Incorporate VK_EXT_extended_dynamic_state
2023-01-11 16:48:53 +03:00
kd-11
3dba894369 rsx: Minor refactoring RSXThread
- Part 1 of many
2023-01-11 16:48:53 +03:00
kd-11
4def7f143c rsx: Fix logicOp behavior when blending is also active 2022-12-27 02:56:43 +03:00
kd-11
a05e3f02b8 rsx: Avoid expensive protection scan by sharing some data between surface and texture cache 2022-12-17 20:16:58 +03:00
Eladash
8980fc5524 rsx: Fix exceptions 2022-12-17 14:27:20 +01:00
kd-11
9c0b2338cf rsx: Fix shader compilation 2022-12-11 15:21:58 +03:00
kd-11
a0ef1a672c rsx: Implement interpolation using barycentrics 2022-12-11 15:21:58 +03:00
kd-11
e3b23822fd rsx: Pass on shader flags to the cache 2022-12-11 15:21:58 +03:00
kd-11
b156b40f8f rsx: Fix clear color for formats with less than 32-bit width 2022-10-31 13:39:37 +03:00
Elad Ashkenazi
c214f45e14
Savestates/rsx/IO: Resume emulation on long START press, enable "Start Paused" by defaut (#12881)
* Savestates: Enable "Start Paused" by default
* Emu/rsx/IO: Resume emulation on long START press
* rsx: fix missing graphics with savestates' "Start Paused" setting
* rsx/overlays: Add simple reference counting for messages to hide them manually
* Move some code in Emulator::Pause() so thread pausing is the first thing done by this function
2022-10-29 19:53:00 +02:00
kd-11
ffe8133865 vk: Avoid unnecessary dynamic state updates 2022-10-07 11:53:34 +03:00
kd-11
7140e82189 rsx: Fix program invalidation rules 2022-10-07 11:53:34 +03:00
kd-11
533f960854 rsx: Handle some more corner cases 2022-10-03 12:57:16 +03:00
kd-11
765208a181 rsx: Avoid clobbering CELL memory when splitting fbos 2022-10-03 12:57:16 +03:00