jbm11208
dfcedb981c
Move Shader JIT Multithreading to a Separate Branch
2025-11-30 18:47:08 +00:00
jbm11208
d222b0c458
Use fmt for string concat in glsl_fs_shader_gen.cpp
2025-11-30 18:47:08 +00:00
jbm11208
680b881e30
Remove allowing constant stage alpha & color sources to fix graphical issues
2025-11-30 18:47:08 +00:00
jbm11208
29f3bdbe73
Fix: Block Until Shader Compilation Completes to Prevent Glitches
2025-11-30 18:47:08 +00:00
jbm11208
11583ab182
remove debug output
2025-11-30 18:47:08 +00:00
jbm11208
1125e3fff8
Optimize shader generation: reduce string formatting and concatenation overhead in TEV stage emission
2025-11-30 18:47:08 +00:00
jbm11208
dfc026ddd8
fix opengl
2025-11-30 18:47:08 +00:00
jbm11208
bb20404835
Optimize texture state changes: avoid redundant texture and sampler binds in OpenGL rasterizer
2025-11-30 18:47:08 +00:00
jbm11208
5c35027f0d
Reduce shader permutations: mask out fog, alpha test, blend, and logic op config fields when disabled
2025-11-30 18:47:08 +00:00
jbm11208
5ea21306f4
more optimizations
2025-11-30 18:47:08 +00:00
jbm11208
fa1389915f
Optimize shader state changes: avoid redundant SetupBatch calls by tracking VS config hash
2025-11-30 18:47:08 +00:00
jbm11208
ed94588449
Implement parallel shader compilation and safe fallback for missing shaders
2025-11-30 18:47:08 +00:00
jbm11208
2779da323b
Implement LRU-based shader cache eviction and size limit in JIT engine
2025-11-30 18:47:08 +00:00
jbm11208
3e5e981c93
Minimize Shader Cache Growth for Disabled Lighting
2025-11-30 18:47:08 +00:00
jbm11208
c383cb4ac1
More general optimizations
2025-11-30 18:47:08 +00:00
jbm11208
58d3743fc1
Fix clang-format in spv_fs_shader_gen.cpp
2025-11-30 18:47:08 +00:00
jbm11208
241b630262
Fix Graphical Glitches
2025-11-30 18:47:08 +00:00
jbm11208
671188ad6d
Fix clang-format and compilation errors
2025-11-30 18:47:08 +00:00
jbm11208
0be1120576
Update licensing
2025-11-30 18:47:08 +00:00
jbm11208
54dbdc2d96
video_core/shader: Optimize fragment shader by skipping passthrough TEV stages
...
This change adds a fast-path optimization in the fragment shader generator to detect and skip TEV stages that simply pass through their input unchanged. This reduces shader complexity and improves performance for common rendering cases where TEV stages are configured as passthrough.
The optimization checks for:
- Replace operation for both color and alpha
- Previous buffer as source
- No color/alpha modifiers
- Unity multipliers
This is a safe optimization as it preserves exact PICA behavior while reducing unnecessary shader instructions.
2025-11-30 18:47:08 +00:00
OpenSauce04
e0b8e8440a
cmake: Fixed AppImage build failure caused by upstream changes to linuxdeploy
...
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
Also improved error message when linuxdeploy run fails
2025-11-30 18:17:42 +00:00
OpenSauce04
4cc9792f66
configure_graphics.cpp: Corrected indentation
citra-build / source (push) Waiting to run
citra-build / linux (appimage) (push) Waiting to run
citra-build / linux (fresh) (push) Waiting to run
citra-build / macos (arm64) (push) Waiting to run
citra-build / macos (x86_64) (push) Waiting to run
citra-build / macos-universal (push) Blocked by required conditions
citra-build / windows (msvc) (push) Waiting to run
citra-build / windows (msys2) (push) Waiting to run
citra-build / android (push) Waiting to run
citra-format / clang-format (push) Waiting to run
citra-transifex / transifex (push) Waiting to run
2025-11-29 14:43:24 +00:00
OpenSauce04
4574b91561
Move VSync setting key from use_vsync_new to use_vsync
...
citra-build / source (push) Waiting to run
citra-build / linux (appimage) (push) Waiting to run
citra-build / linux (fresh) (push) Waiting to run
citra-build / macos (arm64) (push) Waiting to run
citra-build / macos (x86_64) (push) Waiting to run
citra-build / macos-universal (push) Blocked by required conditions
citra-build / windows (msvc) (push) Waiting to run
citra-build / windows (msys2) (push) Waiting to run
citra-build / android (push) Waiting to run
citra-format / clang-format (push) Waiting to run
citra-transifex / transifex (push) Waiting to run
This resets the VSync setting for all existing user configurations. Note in changelog.
2025-11-29 14:38:32 +00:00
David Griswold
04b6c69083
Default VSync to false on Android
...
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-11-29 14:37:30 +00:00
OpenSauce04
375c8c1910
video_core: Fixed occasional launch crash on certain platforms due to unsafe SDL_Init
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
2025-11-27 14:27:10 +00:00
OpenSauce
67f6735f02
qt: Add game launch stress test functionality behind new ENABLE_DEVELOPER_OPTIONS CMake option ( #1442 )
...
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
* qt: Implemented game launch stress test
* qt: Hide stress test behind ENABLE_DEVELOPER_OPTIONS CMake option
2025-10-21 16:29:15 +01:00
OpenSauce04
1f483e1d33
cmake: Fixed build issues on *nix introduced by Qt 6.10.0
2025-10-21 14:45:40 +00:00
OpenSauce04
068fec0d5f
ci: Updated ARM64 and universal macOS runners to macOS 26 Tahoe
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
2025-10-03 17:35:02 +00:00
David Griswold
f309d4881a
android: Add Display Listener methods for smoother secondary display updates
2025-10-03 17:04:57 +00:00
OpenSauce04
80ba2058a9
externals: Updated fmt to 12.0.0
...
This fixes a build failure with Clang 21
2025-10-03 16:28:01 +01:00
huesos_96
3716f6b9b6
Android: Dual screen fixes for Handhelds that have 2 screens like Ayaneo Pocket DS ( #1341 )
...
* Prevent SecondaryDisplay from stealing focus
The SecondaryDisplay Activity was stealing focus from the main
Activity when it was launched.
Set the `FLAG_NOT_FOCUSABLE` and `FLAG_NOT_TOUCH_MODAL` window flags
to prevent the SecondaryDisplay from gaining focus.
* Implement touch controls for secondary display
This commit introduces touch input handling for the secondary display.
The following changes were made:
- Added `onSecondaryTouchEvent` and `onSecondaryTouchMoved` to `NativeLibrary.kt` and `native.cpp` to process touch events on the secondary display.
- Implemented `onTouchListener` in `SecondaryDisplay.kt` to capture touch events and forward them to the native layer.
- Handles `ACTION_DOWN`, `ACTION_POINTER_DOWN`, `ACTION_MOVE`, `ACTION_UP`, `ACTION_POINTER_UP`, and `ACTION_CANCEL` motion events.
- Tracks the active pointer to ensure correct touch event handling.
* Refactor display logic for multi-display support
This commit introduces a `DisplayHelper` class to centralize display-related logic, particularly for handling scenarios where the application might be launched on an external display.
Key changes:
- Added `DisplayHelper.kt` to manage internal and external display identification based on launch conditions.
- `MainActivity` and `EmulationActivity` now use `DisplayHelper.checkLaunchDisplay()` to determine the initial display.
- `SecondaryDisplay` now uses `DisplayHelper.getExternalDisplay()` to correctly identify the target display for the secondary presentation.
- `InputOverlay` now queries `DisplayHelper.isBottomOnPrimary()` to determine if touch input should be processed for the primary display based on the current screen layout.
- `SecondaryDisplay` now queries `DisplayHelper.isBottomOnSecondary()` to conditionally pass touch events to the native layer based on which screen (primary or secondary) is currently displaying the 3DS bottom screen.
These changes ensure that the application behaves correctly when launched on either the internal or an external display, and that touch input is routed appropriately based on the user's chosen screen layout for the dual screens.
* Removed primary-screen checks so the input overlay always forwards touch events, ensuring all touches reach the native handler even when multiple displays are active
* Remove DisplayHelper class and adjust external display logic
* Formatting adjustments
---------
Co-authored-by: DavidRGriswold <novachild@gmail.com>
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-10-03 14:45:49 +01:00
OpenSauce04
3af2cd1227
ci: Update all macOS runners to macOS 15 Sequoia
2025-10-03 14:17:27 +01:00
lannoene
0be78e9550
Improve DLP and multiplayer compatability ( #1375 )
...
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
* Added NWM spectator mode (DLP now partially working), fixed debug assert, added applet utility cmd fallback
* Reverted AppletUtility command change
* Fixed inconsistent mac address
* Enabled DLP Child authorization
* Added the DLP module to recommended online modules
* Clean up
* Changed the returned number of words on GetProgramInfoFromCia to 7 insteead of 8, futher reverted AppletUtility function to match its original form
2025-09-20 19:59:54 +02:00
OpenSauce04
eb1197a65c
cmake: Remove SYSTEM from target_link_libraries
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
2025-09-16 16:05:38 +01:00
OpenSauce04
a674eb8367
vk_pipeline_cache: Fix directory creation failure if shaders/vulkan/ is missing
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
2025-09-13 01:19:52 +01:00
OpenSauce04
118d124852
tools: Added Github cache purge script
2025-09-13 01:19:19 +01:00
OpenSauce04
34d46528eb
Bump minimum Android version to Android 10
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
2025-09-11 01:08:32 +01:00
OpenSauce04
72c924a456
android: Rename performance overlay setting keys, strings and enums for clarity
citra-build / source (push) Waiting to run
citra-build / linux (appimage) (push) Waiting to run
citra-build / linux (fresh) (push) Waiting to run
citra-build / macos (arm64) (push) Waiting to run
citra-build / macos (x86_64) (push) Waiting to run
citra-build / macos-universal (push) Blocked by required conditions
citra-build / windows (msvc) (push) Waiting to run
citra-build / windows (msys2) (push) Waiting to run
citra-build / android (push) Waiting to run
citra-format / clang-format (push) Waiting to run
citra-transifex / transifex (push) Waiting to run
2025-09-10 22:49:46 +01:00
OpenSauce04
f27490aeab
android: Mark performance overlay toggle in settings as non-runtime-editable
2025-09-10 22:49:46 +01:00
OpenSauce04
ed451a72d9
android: Reimplemented performance overlay setting as a regular BooleanSetting
2025-09-10 22:49:46 +01:00
OpenSauce04
5c89977605
android: Removed hardcoded setting keys and default values for perf overlay
2025-09-10 22:49:46 +01:00
Briar
deda004227
renderer_opengl.cpp: Remove isPortrait check for second screen opacity
2025-09-10 18:43:44 +01:00
Briar
64f5277789
renderer_vulkan: Add second screen opacity support
...
& Update bottom screen opacity label in UI
2025-09-10 18:43:44 +01:00
marsia
5c5b1cdf45
android: Implement Hide All 3DS Images from Android setting
...
Co-Authored-By: Reg Tiangha <rtiangha@users.noreply.github.com>
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-09-10 18:28:37 +01:00
marsia
750286ae97
android: Add second screen opacity option
...
Co-authored-by: Reg Tiangha <rtiangha@users.noreply.github.com>
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-09-10 18:22:55 +01:00
Reg Tiangha
f35091eeb4
android: Implement Background Color settings UI
...
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-09-10 18:22:38 +01:00
OpenSauce04
8cd3bcc0e3
Updated compatibility list
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
2025-09-05 22:13:02 +01:00
OpenSauce04
e200bcbcbc
tools: Updated guidance regarding translation updates
citra-build / source (push) Waiting to run
citra-build / linux (appimage) (push) Waiting to run
citra-build / linux (fresh) (push) Waiting to run
citra-build / macos (arm64) (push) Waiting to run
citra-build / macos (x86_64) (push) Waiting to run
citra-build / macos-universal (push) Blocked by required conditions
citra-build / windows (msvc) (push) Waiting to run
citra-build / windows (msys2) (push) Waiting to run
citra-build / android (push) Waiting to run
citra-format / clang-format (push) Waiting to run
citra-transifex / transifex (push) Waiting to run
2025-09-05 21:56:02 +01:00
David Griswold
a2e6891f01
android: Re-fixed game termination bug ( #1357 )
...
* EmulationActivity and EmulationFragment clear only their own hooks
* EmulationLifecycleUtil: Rename `remove()` to `removeHook()`
* EmulationLifecycleUtil: Removed unused function `clear()`
* Corrected somewhat incorrect usage of the word "hook"
* Define `onShutdown` and `onPause` hook functions in constructors
* Formatting nitpicks
* Updated license header
* Re-added log messages for attempting to add duplicate hooks
---------
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-09-05 21:36:01 +01:00
OpenSauce04
e0078b2407
Revert "Fix android termination bug ( #1354 )"
...
This reverts commit 70f9379eef .
2025-09-05 21:33:32 +01:00