Commit graph

10991 commits

Author SHA1 Message Date
Wunk
ebc72d452a
Merge 0f1624608d into ad8526c4cf 2026-05-24 12:09:37 +02:00
Masamune3210
ad8526c4cf
pica_core.cpp: Initialize IRQ_CMP (#2143)
* initialize IRQ_CMP

* add comment explaining requirement

* Fix formatting

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2026-05-24 11:07:57 +01:00
project516
ae7d7dca1f ci: Update github actions to NodeJS 24 (#2110)
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2026-05-23 21:24:54 +01:00
OpenSauce04
4a4b75b0de libretro.yml: Don't fail fast in macOS job matrix 2026-05-23 19:59:34 +01:00
PabloMK7
b186b04995
core: Refactor thread unschedule and add debug frontend unschedule (#2145) 2026-05-23 17:25:14 +02:00
Wunk
ab6896a2ca
core: Fix debug compile error (#2132)
Fixes a compilation error when building in Debug mode. `count` should be `async_data->count` in this log message.
2026-05-17 15:15:21 +02:00
Wunkolo
0f1624608d renderer_gl: Resolve framebuffer after each draw
Brute force approach while trying to determine a better heuristic. Framebuffer changes are not enough to determine the end of a "render pass". An 'msaa dirty flag' is likely the better way here.
2026-05-17 00:56:00 -07:00
Wunkolo
b27f4d49e3 renderer_gl: Implement multisample Convert{DS24S8ToRGBA8,RGBA4ToRGB5A1} 2026-05-17 00:56:00 -07:00
Wunkolo
c39b140a11 renderer_gl: Fix surface ScaleUp implementation
Should assign the new `res_scale` and `sample_count`
2026-05-17 00:56:00 -07:00
Wunkolo
139c640311 renderer_gl: Initial MSAA implementation
Basically copied over some of the paradigms over from Vulkan. Covers most rendering uses-cases except for conversions such as `ConvertDS24S8ToRGBA8` and `ConvertRGBA4ToRGB5A1`
2026-05-17 00:56:00 -07:00
Wunkolo
f6d3a0d549 config: Refactor sample_count to antialiasing setting
Intended to allow for other anti-aliasing methods to be introduced
2026-05-17 00:56:00 -07:00
Wunkolo
cb40a21bac renderer_vulkan: Fix Multisample ConvertDS24S8ToRGBA8
Migrate `ResolveTexture` to `BlitHelper`.
If the conversion was multi-sample, do a final resolve at the end of the conversion to ensure the non-multisample textures are updated as well.

Fixes Pokemon!
2026-05-17 00:56:00 -07:00
Wunkolo
1cb091f366 renderer_vulkan: Fix MSAA image debug name 2026-05-17 00:56:00 -07:00
Wunkolo
d8977aeeb5 renderer_vulkan: Fix multisample framebuffer creation
MSAA renderpasses require the "current" image as the main resolve target, and the MSAA image as the second attachment.
2026-05-17 00:56:00 -07:00
Wunkolo
c010d05d26 renderer_vulkan: Fix multisample ClearTextureWithRenderpass
Ensure that the multisample framebuffer is used rather than the usual one when using a render pass to clear the textures.

That way, a MSAA-render AND resolve is used to clear the textures at the same time.
2026-05-17 00:56:00 -07:00
Wunkolo
ac77eddba0 renderer_vulkan: Fix ConvertDS24S8ToRGBA8 image targets
Ensure that the Multi-Sample texture is used for the destination color image as well. Should the dest image be MSAA too? Or should all the values be resolved into a minimum depth and some combination of stencil-values here?
2026-05-17 00:56:00 -07:00
Wunkolo
b634ee6970 renderer_vulkan: Fix Surface::ScaleUp scale/sample increase
This should be checking the _new_ value to possibly cull upscaled texture creation rather than the current value of the surface. Fixes broken up render passes when drawing UI in some games.
2026-05-17 00:56:00 -07:00
Wunkolo
7c7149daeb renderer_vulkan: Fix MSAA framebuffer target resolve surface
Use the specified type rather than defaulting to the surface's current one(implicit `ImageView` argument).
2026-05-17 00:56:00 -07:00
Wunkolo
bb866a480d renderer_vulkan: Fix narrowing byte conversion
Fixes a compilation error on Unix platforms.
2026-05-17 00:56:00 -07:00
Wunkolo
4c07ea6390 renderer_vulkan: Add TextureRuntime::ResolveTexture
Rather than use a big lambda, just rip this out into a proper function for other blit functions to utilize.
2026-05-17 00:56:00 -07:00
Wunkolo
6f819e65f5 renderer_vulkan: Fix cleanup and debug-naming for d24s8_to_rgba8_ms_comp 2026-05-17 00:56:00 -07:00
Wunkolo
1215e31167 renderer_vulkan: Fix initialization of image handles
Try to optimally create the new image handles when a change in res scale or sample-count has actually occured. MSAA images need to be updated too in the case that the resolution scale has changed
2026-05-17 00:56:00 -07:00
Wunkolo
12398d0771 renderer_vulkan: Derive framebuffer sample-count from attachments
Derive the framebuffer sample-count from the input color and depth operands. Similar to how `res_scale` is determined.
2026-05-17 00:56:00 -07:00
Wunkolo
34343d40d7 renderer_vulkan: Fix dangling surface reference during msaa resolve
These individual parameters need to be copied as the reference to the surface-object only lasts within the scope of this function.
2026-05-17 00:56:00 -07:00
Wunkolo
5e6f0de7ba renderer_vulkan: Fix Framebuffer::sample_count move-operator
`sample_count` needs to be move/copied over.

Also reorder the accessor order to match the declaration of variables.
2026-05-17 00:56:00 -07:00
Wunkolo
fd59978142 renderer_vulkan: Fix multisample texture init barrier
Should address the MultiSampled image directly since the multisampled image is just a transient image and not the leading state of the image.
2026-05-17 00:56:00 -07:00
Wunkolo
0345f4e21b renderer_vulkan: Implement multisample texture runtime
This seems to be enough for simple programs to render with MSAA enabled!
2026-05-17 00:56:00 -07:00
Wunkolo
8ed56d2dc2 renderer_vulkan: Implement multisample pipeline/renderpass support
Allows multi-sample render passes and graphics pipelines to be created, using sample-rate shading rather than coverage-based MSAA.
2026-05-17 00:56:00 -07:00
Wunkolo
c5ad490b5d rasterizer_cache: Initial support for multi-sample surfaces 2026-05-17 00:56:00 -07:00
Wunkolo
df72eef78f vk_instance: Add detection of MSAA features
Full multi-sample support is when renderpass-2 and depth-stencil-resolve extensions are available and when sample-rate-shading and msaa-storage-images are supported.
2026-05-17 00:56:00 -07:00
Wunkolo
ad3e5c433d vk_blit_helper: Add d24s8_to_rgba8_ms_comp
Helper host-shader for blitting multi-sampled DS24S8 textures to multi-sampled RGBA8
2026-05-17 00:56:00 -07:00
Wunkolo
d8f3225366 config: Add sample_count renderer option
Option is only enabled when the renderer is set to Vulkan, for now.
2026-05-17 00:56:00 -07:00
OpenSauce04
e11f3da493 Updated translations via Transifex 2026-05-16 17:32:14 +01:00
OpenSauce04
8ffb94b06c Implement Z3DS compression CLI in new citra_cli static library 2026-05-16 17:13:31 +01:00
PabloMK7
267887d7a9
Add attestation support to increase release security (#2117)
* ci: Add sbom and attestation

* tools: Add verify-release.sh

* verify-release.sh: Set executable permission

* verify-release.sh: Put downloads into a gitignored directory

* tools: Make verify-release also download sbom

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2026-05-14 14:52:10 +02:00
OpenSauce04
778ca369cd ci: Strip libretro cores after building 2026-05-12 11:56:22 +01:00
OpenSauce04
dbe7fd979f cmake: Add EXCLUDE_FROM_ALL to targets where applicable 2026-05-09 14:01:56 +01:00
PabloMK7
1c7c7a5f1b
svc: Fix instruction cache invalidation only affecting current core (#2100) 2026-05-09 14:03:55 +02:00
OpenSauce04
bf59d26c48 externals: Update dllwalker to commit 2f8b349 2026-05-09 10:32:52 +01:00
OpenSauce04
652fc02175 ci: Implement MXE CI/CD build job 2026-05-09 10:32:52 +01:00
OpenSauce04
854e198196 cmake: Implemented bundle target for MXE builds
Just copies the content of bin/<type>/ to bundle/
2026-05-09 10:32:52 +01:00
OpenSauce04
5ecd402811 cmake: Explicitly use gcc-ar instead of ar for MXE builds 2026-05-09 10:32:52 +01:00
OpenSauce04
0ce2a30d20 Implement proper DLL resolution for MXE builds 2026-05-09 10:32:52 +01:00
OpenSauce04
644a181aff cmake: Explicitly disable BUILD_SHARED_LIBS 2026-05-09 10:32:52 +01:00
OpenSauce04
422c7865a3 For Linux --> Windows cross-compilation, copy all cross-compiled DLLs during build
As per the comment, this is just to get the build functioning pending a real solution
2026-05-09 10:32:52 +01:00
OpenSauce04
ca99574700 tests: Don't run catch_discover_tests when cross-compiling to a different OS 2026-05-09 10:32:52 +01:00
OpenSauce04
f902010f04 externals: Don't fall back to bundled OpenSSL if USE_SYSTEM_OPENSSL is enabled 2026-05-09 10:32:52 +01:00
PabloMK7
929a51afc6
audio: Add option to simulate headphones plugged in (#2099)
Some checks failed
citra-build / source (push) Failing after 6m47s
citra-build / linux-x86_64 (appimage-wayland) (push) Successful in 4m21s
citra-build / linux-x86_64 (gcc-nopch) (push) Failing after 4s
citra-build / android (googleplay) (push) Successful in 7s
citra-build / android (vanilla) (push) Failing after 3m24s
citra-build / docker (push) Failing after 20s
citra-format / clang-format (push) Failing after 1s
citra-libretro / android (push) Failing after 2m54s
citra-build / linux-x86_64 (appimage) (push) Failing after 14m13s
citra-libretro / linux (push) Failing after 3m16s
citra-libretro / windows (push) Failing after 3m22s
citra-transifex / transifex (push) Has been skipped
citra-build / linux-arm64 (clang) (push) Has been cancelled
citra-build / linux-arm64 (gcc-nopch) (push) Has been cancelled
citra-build / macos (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-libretro / macos (arm64) (push) Has been cancelled
citra-libretro / macos (x86_64) (push) Has been cancelled
citra-libretro / ios (push) Has been cancelled
citra-libretro / tvos (push) Has been cancelled
2026-05-08 15:19:53 +02:00
PabloMK7
260f08c497
core: Add async filesystem operations (#2098) 2026-05-08 11:35:47 +02:00
PabloMK7
921ea178b9
ui: Made rom loading errors more clear and user friendly (#2097)
Some checks are pending
citra-build / source (push) Waiting to run
citra-build / linux-x86_64 (appimage) (push) Waiting to run
citra-build / linux-x86_64 (appimage-wayland) (push) Waiting to run
citra-build / linux-x86_64 (gcc-nopch) (push) Waiting to run
citra-build / linux-arm64 (clang) (push) Waiting to run
citra-build / linux-arm64 (gcc-nopch) (push) Waiting to run
citra-build / macos (push) Waiting to run
citra-build / windows (msvc) (push) Waiting to run
citra-build / windows (msys2) (push) Waiting to run
citra-build / android (googleplay) (push) Waiting to run
citra-build / android (vanilla) (push) Waiting to run
citra-build / docker (push) Waiting to run
citra-format / clang-format (push) Waiting to run
citra-libretro / android (push) Waiting to run
citra-libretro / linux (push) Waiting to run
citra-libretro / windows (push) Waiting to run
citra-libretro / macos (arm64) (push) Waiting to run
citra-libretro / macos (x86_64) (push) Waiting to run
citra-libretro / ios (push) Waiting to run
citra-libretro / tvos (push) Waiting to run
citra-transifex / transifex (push) Waiting to run
2026-05-07 20:39:30 +02:00