Commit Graph

27437 Commits

Author SHA1 Message Date
collecting
be70def422 #define STBI_NO_SIMD 2025-09-23 05:01:27 +00:00
collecting
c433436e8d #define STBI_NO_SIMD 2025-09-23 04:55:23 +00:00
Zephyron
0b10f729f7 Merge branch 'collecting-main-patch-79513' into 'main'
static_cast

See merge request citron/emulator!30
2025-09-23 11:18:14 +10:00
Zephyron
21f6703fe1 Merge branch 'collecting-main-patch-39194' into 'main'
static_cast

See merge request citron/emulator!31
2025-09-23 11:17:58 +10:00
Zephyron
761647207d Merge branch 'collecting-main-patch-12691' into 'main'
static_cast

See merge request citron/emulator!29
2025-09-23 11:12:45 +10:00
Zephyron
50b681c565 Merge branch 'collecting-main-patch-30296' into 'main'
Link Qt Application against Qt Network Module

See merge request citron/emulator!28
2025-09-23 11:12:24 +10:00
Zephyron
4411f74bfe Merge branch 'collecting-main-patch-54284' into 'main'
Add Boost::process @ 1224

See merge request citron/emulator!27
2025-09-23 11:12:07 +10:00
Zephyron
335ffd3aed Merge branch 'collecting-main-patch-49282' into 'main'
Add "process" @ 301, "Network" @ 375, remove 309

See merge request citron/emulator!26
2025-09-23 11:11:47 +10:00
collecting
bc6a169829 static_cast 2025-09-23 01:10:58 +00:00
collecting
5903a7ad56 static_cast 2025-09-23 01:10:07 +00:00
collecting
a2272afec3 static_cast 2025-09-23 01:09:13 +00:00
collecting
e3edcdf25b Link Qt Application against Qt Network Module 2025-09-23 01:08:07 +00:00
collecting
bb874dc09f Add Boost::process @ 1224 2025-09-23 01:06:41 +00:00
collecting
60be225750 Add "process" @ 301, "Network" @ 375, remove 309 2025-09-23 01:04:57 +00:00
Zephyron
8b48af611f Merge branch 'collecting-main-patch-82784' into 'main'
Fix null pointer dereference in patch_manager.cpp line 362

See merge request citron/emulator!16
2025-09-23 05:57:11 +10:00
collecting
09ef525ef2 Fix null pointer dereference in patch_manager.cpp line 362 2025-09-22 08:54:03 +00:00
Zephyron
a02d4ce6c4 Merge branch 'march-fix' into 'main'
fix(ci): resolve submodule initialization failures in GitLab CI

See merge request citron/emulator!14
2025-09-21 12:18:25 +10:00
Boss.sfc
392058e7d9 ci: fix march in cachyos v3
Signed-off-by: Boss.sfc <boss.sfc@citron-emu.org>
2025-09-21 09:16:35 +07:00
Zephyron
ce73fce35e ci: Remove max_size
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-21 11:47:04 +10:00
Zephyron
0c4fc23dcd fix: use gzip compression for CI artifacts to avoid size limit
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-21 11:45:41 +10:00
Zephyron
a76c3e8808 fix: resolve UpdaterService redefinition error with conditional compilation
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-21 11:33:26 +10:00
Zephyron
b585120025 fix: add UpdateResult enum to updater dialog forward declarations
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-21 11:11:30 +10:00
Zephyron
04132ac6b7 fix(ci): resolve submodule initialization failures in GitLab CI
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-21 11:02:20 +10:00
Zephyron
34f1e741a4 Merge branch 'mtune-fix' into 'main'
ci: fixed mtune

See merge request citron/emulator!13
2025-09-21 10:50:58 +10:00
Boss.sfc
e9d2d06f06 ci: fixed mtune
Signed-off-by: Boss.sfc <boss.sfc@citron-emu.org>
2025-09-21 07:47:23 +07:00
Zephyron
b3bbae83fc Merge branch 'boss-ci-fixes' into 'main'
ci: overhaul to the ci

See merge request citron/emulator!12
2025-09-21 10:39:55 +10:00
Boss.sfc
50f2e0472d ci: overhaul to the ci
- new build flags
- fixes compiling on linux
- fixes compiling on android
- changed ci from ubuntu to cachyos

Signed-off-by: Boss.sfc <boss.sfc@citron-emu.org>
2025-09-21 07:38:03 +07:00
Zephyron
1f4d6ccdc0 Merge branch 'taa-implementation' into 'main'
feat: add Temporal Anti-Aliasing (TAA) support for OpenGL and Vulkan

See merge request citron/emulator!11
2025-09-21 10:35:14 +10:00
Zephyron
19cf31b215 feat: add Temporal Anti-Aliasing (TAA) support for OpenGL and Vulkan
- Add TAA option to AntiAliasing enum in settings
- Implement TAA shaders for both OpenGL (GLSL) and Vulkan (SPIR-V)
- Add OpenGL TAA class with framebuffer management and temporal blending
- Add Vulkan TAA class following existing AntiAliasPass architecture
- Integrate TAA into OpenGL and Vulkan rendering pipelines
- Add UI translations and Android string resources for TAA option
- Implement Halton sequence jittering for temporal sampling
- Add motion vector validation and neighborhood clamping to reduce ghosting
- Configure aggressive temporal blending to minimize visual artifacts
- Add proper descriptor set management for Vulkan TAA implementation

The TAA implementation provides high-quality anti-aliasing by combining
information from multiple frames with per-pixel jittering, resulting
in smoother edges and reduced aliasing artifacts while maintaining
good performance and temporal stability.

Fixes: Black screen issues with proper descriptor set bindings
Fixes: Ghosting artifacts with improved temporal blending parameters
Fixes: Jitter visibility with reduced jitter intensity (50% scaling)
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-21 10:34:19 +10:00
Zephyron
42bc6b7b6c fix(android): Fix aspect ratio crash for non-16:9 settings
- Add missing Force 32:9 option and fix Stretch mapping
- Add safety checks to prevent division by zero in FixedRatioSurfaceView
- Update handlers to support all 6 AspectRatio enum values

Fixes crashes when selecting any aspect ratio other than Force 16:9.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-17 20:46:59 +10:00
Zephyron
da3f017c32 fix: resolve Qt MOC generation for conditionally compiled UpdaterDialog
Move UpdaterDialog class declaration outside #ifdef _WIN32 to ensure
Qt's MOC can see the Q_OBJECT macro. Add stub implementations for
non-Windows platforms to satisfy linker.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-17 20:27:22 +10:00
Zephyron
10c5e582fc ci: Fix GitLab CI YAML syntax errors for pipeline execution
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-16 15:32:13 +10:00
Zephyron
673341d7a6 ci: Initial impl
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-16 15:29:33 +10:00
Zephyron
28c5c74f54 Merge branch 'Boss-Boost-Fix' into 'main'
chore(core/debugger): modernize Boost.Process include path to v1

See merge request citron/emulator!6
2025-09-16 14:45:36 +10:00
Boss.sfc
056e6bf951 chore(core/debugger): modernize Boost.Process include path to v1
Signed-off-by: Boss.sfc <boss.sfc@citron-emu.org>
2025-09-15 21:59:01 +07:00
Zephyron
132caccc1a Merge branch 'Boss-Linux-Compilation-Fix' into 'main'
fix: Linux compiling

See merge request citron/emulator!5
2025-09-15 19:22:01 +10:00
Boss.sfc
a3c4f0614a fix: Linux compiling
Made it so that the updater stuff is windows only.

Signed-off-by: Boss.sfc <boss.sfc@citron-emu.org>
2025-09-14 18:46:18 +07:00
Zephyron
94119302ec feat: Add OpenGL ZBC clear support and refactor ZBC management
Moved ZBCManager to `video_core/zbc_manager.cpp/h` for modularity. Added
`gl_zbc_clear.cpp/h` for efficient OpenGL color, depth, and stencil clears.
Updated `RasterizerOpenGL::Clear` to use ZBC with fallback. Added stencil
type validation. Fixed color mask and logging. Updated `CMakeLists.txt`.
Enhances performance and code organization.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-14 20:28:39 +10:00
Zephyron
12c3e4b92c Revert "fix: resolve X11 macro conflicts with enum values and Qt constants"
This reverts commit c32ac3b3c1.
2025-09-14 20:15:29 +10:00
Zephyron
c32ac3b3c1 fix: resolve X11 macro conflicts with enum values and Qt constants
Rename Success enums and fix Qt event types to avoid X11 macro conflicts.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-14 20:09:09 +10:00
Zephyron
2d890316ad shader_recompiler: Implement ISBERD instruction for internal stage buffer reads
This commit properly implements the ISBERD (Internal Stage Buffer Entry Read)
instruction that was previously stubbed. The implementation supports all
modes and shift types:

- Patch mode: Reads tessellation patch attributes using ir.GetPatch()
- Prim mode: Reads primitive attributes for geometry shaders
- Attr mode: Reads generic vertex attributes
- Default mode: Maintains backward compatibility

The implementation also supports:
- U16 and B32 shift modes for different data formats
- SKEW and O flags for advanced buffer addressing
- Proper data type conversions and bit casting

This fixes rendering issues in UE4 titles that rely on internal stage
buffer operations in tessellation and geometry shaders. The previous
stubbed implementation caused compatibility problems with modern
rendering pipelines.

Credit: Hayate Yoshida (吉田 疾風) <hayate@citron-emu.org> for discovering
the root cause and providing insight on the proper implementation approach.

Fixes: Internal stage buffer read operations in tessellation shaders
Resolves: UE4 title rendering issues related to ISBERD instruction
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-14 19:01:19 +10:00
Zephyron
ce06115c2c Revert "shader_recompiler: Implement ISBERD instruction"
This reverts commit d2c6f3ab9c.
2025-09-14 18:19:36 +10:00
Zephyron
3c70fd52bd fix: update Android build config and dependencies
Update NDK/CMake versions, switch default build variant, re-enable x86_64
support, add ConstraintLayout dependency, and enable LTCG optimization.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-14 16:09:04 +10:00
Zephyron
0b0b61572b Merge branch 'insane-vram-mode' into 'main'
feat: add High-End and Insane VRAM modes with leak prevention

See merge request citron/emulator!3
2025-09-14 16:06:09 +10:00
Zephyron
6e6b2f438e feat: add High-End and Insane VRAM modes with leak prevention
- Add HighEnd and Insane VRAM usage modes for RTX 4090/4080+ users
- Implement VRAM limits: HighEnd (12GB), Insane (22GB) with scaling
- Optimize buffer allocation with larger chunks for high-end GPUs
- Add VRAM leak detection and aggressive cleanup for Insane mode
- Increase shader compilation buffer sizes for better performance
- Add VRAM monitoring functions to Vulkan rasterizer
- Implement memory usage tracking for staging buffers

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-14 16:05:31 +10:00
Zephyron
b4e0e50505 Merge branch 'vram-monitor-overlay' into 'main'
feat: add VRAM monitoring overlay with modern UI

See merge request citron/emulator!2
2025-09-14 16:00:37 +10:00
Zephyron
8356d9fea0 fix: clean up VRAM overlay layout and remove visual clutter
- Remove cut-off percentage labels from graph area
- Isolate graph with proper background and border
- Reduce padding and spacing to match performance overlay
- Compress leak warnings to single line
- Adjust widget size to 250x180 for consistent proportions

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-14 16:00:13 +10:00
Zephyron
192cb91286 feat: add VRAM monitoring overlay with modern UI
- Clean dark-themed overlay with real-time VRAM usage display
- Memory breakdown (Buffers, Textures, Staging) with color coding
- Interactive graph with 2-minute history and leak detection
- VRAM mode indicator with special highlighting for Insane mode
- Draggable interface with persistent positioning
- Menu integration with keyboard shortcut support
- Safe Vulkan renderer integration with exception handling

Files: CMakeLists.txt, main.cpp, main.h, main.ui, uisettings.h, vram_overlay.cpp, vram_overlay.h
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-14 15:49:27 +10:00
Zephyron
56d8bd7dd3 feat: Add mouse wheel support for game input passthrough
- Implement mouse wheel event handling in SDL2 backend (emu_window_sdl2)
- Add wheel event routing from GRenderWindow to input subsystem
- Add debugging logs to trace mouse wheel events through input chain
- Support mouse wheel input for mods like Ultracam when games are running (WIP)

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-14 15:18:38 +10:00
Zephyron
206d778782 Merge branch 'master' into 'main'
master -> main

See merge request citron/emulator!1
0.7.0
2025-09-06 07:44:34 +00:00