Artemide Experimental Async_0.2
Changelog
UI:
- Added a new “Artemide Tweaks” settings section to centralize Artemide-specific options.
- StreamSettings cleanup: context-aware show/hide for VSync/FastVsync and advanced controls.
- FSR upscale is greyed out when FastGL is selected.
- Stopped forcing FastGL from prefs (now user-controlled).
- Renamed UI label “async prefer lower delays” to “LFR”.
Async Decode:
- Extracted AsyncCodecAdapter and improved async setup robustness.
- Added an async no-render release queue, serialized releaseOutputBuffer() calls, and introduced adaptive + time-bounded draining to avoid callback-thread release bursts.
- Synced drop-policy with pacing; improved flush/recovery behavior and callback reattach safety.
Pacing / VSync:
- NanoPacer tuning for more stable 120 Hz fast-vsync behavior.
- Refresh-rate handling switched to float.
- Frame-rate hint is now applied also to the decoder output surface.
- Bumped Choreographer priority to urgent display and aligned GL upscaler Choreographer with renderer pacing.
FSR (EASU/RCAS):
- Fixed GL upscaler VSync switching + RCAS_OES probing.
- Fixed eglMakeCurrent failure (err=0x3002).
- Guarded against duplicate renderer thread.
- Refined EASU perf shader and added a Mali-optimized RCAS perf shader.
Perf / Telemetry:
- Extracted PerfOverlayComposer + DecodeLatencyTracker, improved stat reset and teardown hardening.
- Replaced the latency tracker with a lock-free bounded ring buffer to remove per-frame allocations.
CPU / MTK:
- CpuWarmUp/CpuAffinity: lazy init, minimal API, tier-aware/count-aware pinning.
- Reduced MTK buffering and tightened end-to-end timing.
- Updated ProGuard rules.
Misc:
- Snappy Input shutdown streamlined; comments/error handling refined.
- Removed additional QCOM “extra keys” in mchelper.
- Many additional fixes and refinements: see the commit history for details.
Full Changelog: Artemide_Experimenta_Async_0.1...Artemide_Experimental_Async_0.2
Having issues?
If you experience problems with this release, please try one of the following versions:
0.1_Async
6.5.1
6.2
As always,
⚠️ Heads up: this is experimental. I’ve only tested on my hardware, so things may break on yours. Use at your own risk.
Found a bug? Tell me and I’ll try to fix it.
Enjoy!