- 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>
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>
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>
a race condition where the BootGame() function was called directly from the GMainWindow constructor. This would create and start the EmuThread before the main Qt application event loop (app.exec()) had begun. As a result, the LoadingScreen UI was not fully initialized and could not properly process the progress signals from the background emulation thread, causing the hang.
The fix defers the call to emu_thread->start() by wrapping it in a QTimer::singleShot(0, ...) with a lambda function. This places the start command on the Qt event queue, ensuring it only executes after the GMainWindow has been fully constructed and the event loop is active. This guarantees the UI is ready to receive signals, resolving the race condition.
Signed-off-by: Collecting <collecting@noreply.localhost>
- Cache focus state result to prevent race condition from double-call
- Signal caller applet resume notification on PopOutData
Fixes freezes in games using controller applet (e.g. Mario Kart 8 Deluxe).
Signed-off-by: Zephyron <zephyron@citron-emu.org>
Add safety checks to prevent dumping game files while emulation is active, which could cause crashes or data corruption.
- Check EmulationSession.IsRunning() before starting dump in native.cpp
- Check NativeLibrary.isRunning() in GamePropertiesFragment.kt
- Show user-friendly toast message when dump is blocked
Remove Moderate, Heavy, and Extreme GC aggressiveness levels, keeping only Off and Light options for simpler configuration.
- Light mode now uses 75%/90% VRAM thresholds
- Simplified switch statements in texture/buffer cache
- Updated UI dropdowns for desktop and Android
- Light is now the default and recommended setting
- Add home menu popup event and request handling
- Implement various self controller functions for applet lifecycle
- Add applet common functions with event support
- Implement application accessor and debug function stubs
- Add window system hooks for QLaunch integration
- Add OpenHomeMenuProxy (cmd 110) for QLaunch support
- Add GetSystemProcessCommonFunctions (cmd 450)
- Add Cmd460 stub for system process initialization
- Implement IApplicationObserver and ISystemProcessCommonFunctions services
Games appear to have horrendous VRAM leaking with this setting enabled. By default, this setting was turned on, leaving users without any information of the setting or what the setting does and seems to have adverse effects in certain titles. Disabling it so that users don't have it automatically chosen.
Signed-off-by: Collecting <collecting@noreply.localhost>