Commit graph

570 commits

Author SHA1 Message Date
SamoZ256
c01e6bf3b8
Merge branch 'main' into metal 2025-05-19 16:24:19 +02:00
Exzap
28ea70b6d8 GX2+TCL: Reimplement command buffer submission
- GX2 utilizes TCL(.rpl) API for command submission instead of directly writing to an internal GPU fifo
- Submission & retire timestamps are correctly implemented as incremental counters
- Command buffering behaviour matches console
- Fixes race conditions on aarch64
2025-05-17 21:35:42 +02:00
Exzap
61484598fc Vulkan: Use per-pipeline buffer robustness
And if the extension is not supported then fallback to enabling robust buffer access for all shaders.
2025-05-10 09:49:21 +02:00
SSimco
081ebead5f
Add AArch64 recompiler backend (#1556) 2025-05-09 12:47:22 +02:00
Exzap
d13dab0fd8 Vulkan: During shutdown submit buffer before deleting resources 2025-05-09 10:00:38 +02:00
Exzap
ba09daf328 PPCRec: Reenable float copy optimization 2025-05-09 02:06:08 +02:00
Exzap
557aff4024 PPCRec: Implement PSQ scaling 2025-05-08 08:29:47 +02:00
Exzap
de542410c2
PPCRec: Rework floating point instructions (#1554) 2025-05-08 03:48:22 +02:00
Crementif
352a918494
debug: add CLI option to have multi-core interpreter (#1553)
This option still allows you to have proper stack traces for crashes or for the PPC debugger, but is a lot faster then the really slow interpreter (especially when loading into large games like BotW where there has to be a lot of asset decompressing). It makes memory access breakpoints much more brittle though, so it's not a perfect option.

Normal users should of course stick with using the recompiler.
2025-05-04 18:04:26 +02:00
Crementif
d083fc0470 Reorder PPCInterpreter memory layout to keep plugin compatibility
Commit b089ae5b32 changed the PPCInterpreter struct that external plugins rely on to hook Cemu through e.g. the exported "osLib_registerHLEFunction". This commit moves some unused values down so that it keeps the same memory layout as before the PPC recompiler rework.
2025-05-04 17:19:56 +02:00
Exzap
b089ae5b32
PowerPC recompiler rework (#641) 2025-04-26 17:59:32 +02:00
Exzap
4972381edc Vulkan: Fix imgui validation error when sRGB framebuffer is used 2025-04-15 22:46:19 +02:00
Exzap
cd6eb1097b Vulkan: Fix a validation error + minor code refactor
We were using VK_EXT_DEPTH_CLIP_ENABLE but didn't actually request it.

Also fixed an assert when closing Cemu caused by incorrectly tracking the number of allocated pipelines
2025-04-15 21:10:11 +02:00
Crementif
186e92221a
debugger: allow printing registers using logging breakpoint placeholders (#1510)
This allows a savy user, developer or modder to change the comment field of a logging breakpoint to include placeholders such as {r3} or {f3} to log the register values whenever that code is hit.
2025-03-07 23:40:17 +01:00
goeiecool9999
31d2db6f78 OpenGL: Add explicit/matching qualifiers in output shader interface
fixes issues with old intel drivers
2025-03-05 22:23:06 +01:00
Samuliak
d4e2135725
add an option to force mesh shaders 2025-03-04 08:34:35 +01:00
Samuliak
06491baafa
check for mesh shaders support 2025-02-11 18:09:42 +01:00
Exzap
ec2d7c086a coreinit: Clean up time functions 2025-01-30 03:49:17 +01:00
Samuliak
3fececc3ba
support line strip as vertex output with geometry shaders 2025-01-28 19:23:47 +01:00
Samuliak
1fb9cfd783
create helper function for rasterization kill 2025-01-28 16:41:30 +01:00
Samuliak
05518c01fb
support max anisotropy overwrite 2025-01-28 07:12:10 +01:00
SamoZ256
2f9ef596d2
Merge branch 'main' into metal 2025-01-27 20:42:24 +01:00
Samuliak
58a8b708f4
turn position invariance on for Star Fox Zero 2025-01-27 20:36:34 +01:00
Samuliak
15e5e4487e
determine GPU vendor 2025-01-26 13:16:06 +01:00
Samuliak
8df01528f4
fix auto position invariance not working 2025-01-26 11:12:28 +01:00
Samuliak
5d17b1e525
improve sampler border color message 2025-01-26 10:46:18 +01:00
Samuliak
2e6eafde2e
make sampler hash more accurate 2025-01-26 10:39:39 +01:00
Samuliak
24e1bba31c
choose the closest matching sampler border color 2025-01-26 10:23:07 +01:00
Samuliak
0c216e40e0
speed up render pass change check 2025-01-25 20:23:22 +01:00
Samuliak
af08521676
cleanup auto position invariance 2025-01-25 09:57:03 +01:00
Samuliak
14f42fc653
create stack scoped helper macro 2025-01-25 08:59:48 +01:00
Samuliak
b50b9135a0
turn position invariance on in Mario Kart 8 2025-01-25 08:04:45 +01:00
Samuliak
4f0bc724a8
fix memory leaks 2025-01-24 16:19:42 +01:00
goeiecool9999
e834515f43
Vulkan: Improve post-shutdown cleanup and minor improvements (#1401) 2025-01-23 21:20:03 +01:00
Samuliak
28bcaf07d9
fix some memory leaks 2025-01-23 19:54:17 +01:00
Samuliak
a74c6eef49
apply position invariance in Wonderful 101 2025-01-23 19:26:12 +01:00
Samuliak
d912837c9c
add auto option for buffer cache mode 2025-01-23 15:03:48 +01:00
Samuliak
bc6fb816da
add auto option for position invariance 2025-01-23 14:50:14 +01:00
Samuliak
7ad4d480cb
filter framebuffer fetch more 2025-01-20 17:02:32 +01:00
Samuliak
29a4835278
fix incorrect ABGR4 texture decoder 2025-01-20 13:47:59 +01:00
Samuliak
709f24bf41
fix typo in framebuffer fetch 2025-01-19 15:43:08 +01:00
Samuliak
29cd6989c1
skip bindings for framebuffer fetched textures 2025-01-19 11:23:00 +01:00
Samuliak
db8c7de236
speed up framebuffer fetch lookup 2025-01-19 10:25:28 +01:00
Samuliak
9e94451093
check for texture and color tile mode 2025-01-19 10:15:20 +01:00
Samuliak
225d11c43e
fix dfdx and dfdy component count 2025-01-18 19:50:35 +01:00
Samuliak
86f364889a
fix: sample compare component count 2025-01-18 19:40:22 +01:00
Samuliak
bf93f90739
flush uploaded buffers 2025-01-18 18:01:40 +01:00
Samuliak
6d6c04ae3c
update debug overlay 2025-01-18 17:27:51 +01:00
Samuliak
d086eb3db5
fix: index buffer crashes 2025-01-18 17:22:28 +01:00
Samuliak
97b806f16f
rework buffer allocators 2025-01-18 14:42:57 +01:00