Commit Graph

28170 Commits

Author SHA1 Message Date
collecting
dca10aff6b vk_pipeline_cache: Fix unbounded memory growth during shader compilation 2026-02-11 21:20:57 +01:00
Collecting
dae42407c1 Merge pull request 'feat(shaders): Proper Component Type Handling w/ various types of textures' (#133) from feat/shader-component-type-handling into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/133
2026-02-10 22:58:11 +01:00
collecting
9a8e6a20ca fix(texture): Apply F32 Adjustments for Proper Z-A Rendering 2026-02-10 12:06:54 -05:00
Zephyron
9b7e7b26aa feat(renderer): add BCn unswizzle compute shader
Add block_linear_unswizzle_3d_bcn.comp compute shader for improved
BCn format support. The shader uses GLSL 460 and handles block-space
coordinate conversion for BCn compressed textures.

- Add block_linear_unswizzle_3d_bcn.comp shader
- Update host shaders CMakeLists to include new shader

Co-Authored-By: ForrestMarkX <forrestmarkx@outlook.com>
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-02-10 03:09:56 -05:00
Zephyron
f95faaade5 feat(shader): integrate component type into texture pass optimization
Update texture descriptor comparison to include component_type, ensuring
textures with different component types are properly differentiated.

- Add ReadTextureComponentType helper function
- Include component_type in texture descriptor comparison
- Use component type when creating texture descriptors

Co-Authored-By: ForrestMarkX <forrestmarkx@outlook.com>
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-02-10 03:09:56 -05:00
Zephyron
9fa9a8056f feat(video-core): add texture component type caching and serialization
Implement texture component type conversion and caching in shader
environments, with full serialization support for shader cache.

- Add ConvertSamplerComponentType using std::bitset for component tracking
- Implement ReadTextureComponentType for Graphics/Compute/File environments
- Add texture_component_types cache to all environment classes
- Update Serialize/Deserialize to include component types
- Cache component types alongside texture types for performance

Co-Authored-By: ForrestMarkX <forrestmarkx@outlook.com>
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-02-10 03:09:56 -05:00
Zephyron
46de959188 feat(shader): add SamplerComponentType enum and infrastructure
Add SamplerComponentType enum to classify texture component types
(float, signed int, unsigned int, depth, stencil) and add
ReadTextureComponentType method to Environment interface.

- Add SamplerComponentType enum with constexpr helper functions
- Add component_type field to TextureDescriptor struct
- Add ReadTextureComponentType virtual method to Environment base class

Co-Authored-By: ForrestMarkX <forrestmarkx@outlook.com>
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-02-10 03:09:56 -05:00
Zephyron
eb04a096de feat(spirv): implement texture component type handling in SPIR-V backend
Update SPIR-V backend to use component-specific sampled types for
textures, ensuring correct type conversions for integer and depth/stencil
textures.

- Add ComponentScalarType helper function
- Update ImageType to accept component-specific sampled types
- Add TextureColorResultType and TextureSampleResultToFloat helpers
- Update all texture sampling functions to handle component types
- Add output_s32 for signed integer outputs
- Add Flat decorations for integer inputs in fragment shaders
- Add NonWritable decoration for read-only storage buffers

Co-Authored-By: ForrestMarkX <forrestmarkx@outlook.com>
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-02-10 03:09:49 -05:00
Collecting
decb26a766 Merge pull request 'fix(vulkan): Combine Lanczos-CRT Constants & Fix MP4 Mountain Jitter' (#132) from fix/jitter/mp4 into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/132
2026-02-10 08:58:41 +01:00
Zephyron
c116f001b5 fix(vulkan): revert query cache FlushBeginTFB order to fix menu freeze
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-02-10 17:42:15 +10:00
Zephyron
66ca68a52e perf(vulkan): use double viewport math only when scale < 1
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-02-10 17:19:50 +10:00
collecting
48fa6d0e03 fix(vulkan): MP4 Mountain Jitter 2026-02-10 02:03:57 -05:00
Collecting
b04f92eda8 Merge pull request 'fix(macOS): Compiler Issues' (#131) from fix/sigsegv into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/131
2026-02-09 03:19:26 +01:00
collecting
04f2ba8d86 fix(macOS): Compiler Issues 2026-02-08 21:18:18 -05:00
Collecting
00570d4174 Merge pull request 'fix: Race Condition w/ Shutdown Logic' (#130) from fix/sigsegv into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/130
2026-02-09 01:39:11 +01:00
collecting
13e8c06f44 fix: Race Condition w/ Shutdown Logic 2026-02-08 19:08:59 -05:00
Collecting
18a9a4fc94 Merge pull request 'fix/feat: Introduce CAS & Add Dynamic Slider Viewing for Toggled WAF's, and remove Android ASTC visibility on PC' (#129) from fix/feat/cas-sliders into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/129
2026-02-05 09:02:22 +01:00
collecting
37dd2fddc4 fix/feat: Introduce CAS & Add Dynamic Slider Viewing for Toggled WAF's, and remove Android ASTC visibility on PC 2026-02-05 02:57:28 -05:00
Collecting
29fcea0537 Merge pull request 'fix: Icon Blurriness & add Citron Logo' (#127) from fixup/icon-game-load into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/127
2026-02-05 04:01:15 +01:00
collecting
9443737034 fix: Icon Blurriness & add Citron Logo 2026-02-04 21:59:51 -05:00
Collecting
43326b89e7 Windows Header Ordering
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-02-05 02:53:16 +01:00
Collecting
bc3cd4c639 Fix MSVC & macOS compiler issues
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-02-05 02:25:38 +01:00
Collecting
717fc9e30f Merge pull request 'Fix Updater Logic & Remove version.txt requirement w/ refined SCM' (#126) from fix/updater into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/126
2026-02-05 01:58:31 +01:00
collecting
1aa1ec9ee9 Fix Updater Logic & Remove version.txt requirement w/ refined SCM 2026-02-04 19:54:52 -05:00
Collecting
a6c0c47e44 Merge pull request 'Fixup Saving/Profiling logic' (#125) from hotkey/fixups into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/125
2026-02-05 01:27:52 +01:00
collecting
be0e131113 Fixup Saving/Profiling logic 2026-02-04 19:26:27 -05:00
Collecting
0b661b08d3 Merge pull request 'Fix Hotkey Saving Logic' (#124) from hotkey/fix into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/124
2026-02-04 19:51:57 +01:00
collecting
23e7ea382a Fix Hotkey Saving Logic 2026-02-04 13:50:01 -05:00
Collecting
53fe0174b0 No wonder why I use Linux and not Windows
Windows is insanely brutal

Signed-off-by: Collecting <collecting@noreply.localhost>
2026-02-04 17:33:12 +01:00
Collecting
4a731f2089 More Unused Variables needing to be removed
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-02-04 16:53:43 +01:00
Collecting
dc4153cb70 Remove Unused Variable
MSVC likes to complain a lot but also my bad, forgot that I removed from all the other stuff. This should be last commit spam.

Signed-off-by: Collecting <collecting@noreply.localhost>
2026-02-04 16:28:08 +01:00
Collecting
280c75bef0 Add missing voids
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-02-04 15:57:50 +01:00
Collecting
9e5c7433e1 Merge pull request 'MSVC Compiler Warnings' (#123) from compiler/warnings into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/123
2026-02-04 15:40:22 +01:00
collecting
d919f1da3b MSVC Compiler Warnings 2026-02-04 09:38:36 -05:00
Collecting
2d4da984cf Merge pull request 'Fix Compiler Issues Multiplatform' (#122) from compiler/fix into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/122
2026-02-04 14:56:21 +01:00
collecting
105aa1dcb4 Fix Compiler Issues Multiplatform 2026-02-04 08:55:36 -05:00
Collecting
6e2e515612 Merge pull request 'feat(hotkeys): Introduce Hotkey_Profile_Manager' (#121) from hotkey-profile-manager into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/121
2026-02-04 14:30:55 +01:00
collecting
c5ec4bd7f9 feat(hotkeys): Introduce Hotkey_Profile_Manager 2026-02-04 08:29:10 -05:00
Collecting
113b76e669 Merge pull request 'Hotfix: QLaunch Technical Overhaul & Various Misc. Bugfixes' (#120) from hotfix/qlaunch/etc into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/120
2026-02-04 12:49:26 +01:00
collecting
75dfdce858 Add more missing services 2026-02-04 06:37:06 -05:00
collecting
d18df2919b Remove Redundant yuzu_meta testing 2026-02-04 03:29:10 -05:00
Zephyron
4d80cbba7f feat(renderer): add extended resolution scale options
- Add 1.25X (900p/1350p) and 1.75X (1260p/1890p) resolution scales

- Fix Android resolution array value mappings (was incorrectly mapped)

- Add all resolution options (0.25X to 8X) to Android settings

- Mark experimental resolutions with [EXPERIMENTAL] tag

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-02-04 17:48:34 +10:00
collecting
c5eef10697 Core and UI: Implement missing service functions and QLaunch improvements 2026-02-03 15:42:35 -05:00
Zephyron
c788400b7c Merge pull request 'feature/android-astc-crt-settings' (#119) from feature/android-astc-crt-settings into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/119
2026-02-03 09:44:37 +01:00
Zephyron
127d339de9 feat(android): add ASTC mode and CRT shader settings to Zep Zone
ASTC Settings:
- Add ANDROID_ASTC_MODE enum to IntSetting.kt
- Add setting to Zep Zone panel in SettingsFragmentPresenter.kt
- Add string resources for Auto/Native/Decompress options
- Add arrays for option names and values

CRT Shader Settings:
- Add 6 CRT float settings to FloatSetting.kt (scanline_strength, curvature, gamma, bloom, brightness, alpha)
- Add CRT_MASK_TYPE int setting for mask type selection
- Add scale factor support to SliderSetting.kt for float-to-percentage conversion
- Add conditional visibility for CRT settings (only shown when CRT filter is enabled)
- Add string resources and arrays for all CRT settings

The CRT settings section only appears in Zep Zone when the scaling filter is
set to CRTEasyMode or CRTRoyale.

Co-Authored-By: FDT <fdt@citron-emu.org>
2026-02-03 18:41:22 +10:00
Zephyron
82fd6778ab feat(video_core): add native ASTC texture cache optimization for Adreno 740+
- Add AndroidAstcMode enum to settings_enums.h (Auto/Native/Decompress)
- Add android_astc_mode setting to settings.h
- Add Adreno 7xx+ GPU detection in vulkan_device (IsAdrenoGpu, IsAdreno7xxOrNewer, SupportsNativeAstc)
- Add compressed_size_bytes field to ImageBase for accurate ASTC VRAM tracking
- Add use_compressed_eviction flag to texture cache for Android-optimized eviction
- Increase VRAM budget to 90% for Android devices with native ASTC support
- Add SupportsNativeAstc() to Vulkan and OpenGL texture cache runtimes

This improves performance on high-end Android devices by allowing more ASTC
textures to be cached when using compressed size for eviction calculations.

Co-Authored-By: FDT <fdt@citron-emu.org>
2026-02-03 18:40:18 +10:00
Zephyron
544456b8be fix(android): Correct GC Aggressiveness description to match actual options
Updated description to accurately describe Off and Light options instead
of implying multiple "higher levels" that don't exist.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-02-01 14:18:26 +10:00
Zephyron
c3a90a1f59 fix(ui): Correct GC Aggressiveness tooltip to match actual options
The tooltip described 5 levels (Off, Light, Moderate, Heavy, Extreme)
but only Off and Light are implemented in the enum.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-02-01 14:16:37 +10:00
Zephyron
6a9c5f39e4 fix(ui): Add SVG support and fallback icons for Surprise Me button
Added Qt6::Svg to CMake configuration and implemented fallback
icon chain.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-02-01 14:13:51 +10:00
Zephyron
5c5baf69e2 chore(version): bump to 2026.02.1
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2026-02-01 12:09:56 +10:00