Highlights
- Performance improvements: This update includes a broad round of optimizations aimed at reducing CPU usage and memory footprint in several subsystems, including process and window management, LibreHardware, SDL event waiting, and power management logic.
- OpenXInput implementation: Recent Windows changes broke the previous method we relied on for associating an XInput controller with its UserIndex. HC now implements OpenXInput. This replaces our previous approach for retrieving XInput controller UserIndex through the device path and gives us a much more reliable foundation beyond Xbox 360-based controllers, extending support to Xbox One-based controllers as well.
What Changed
Performance
- Reduced CPU and memory footprint from process and window management.
- Reduced CPU and memory footprint from LibreHardware.
- Reduced CPU footprint from SDL.WaitEventTimeout().
- Reduced CPU footprint in PerformanceManager, with RequestCoreParkingMode now checking current values before reapplying them.
- Reduced overall CPU and memory footprint across the application.
Controller / Input
- Implemented OpenXInput (Xinput1_4.dll) to support Windows 11 KB5086672 update while improving the UserIndex reading logic.
- Implemented ReleaseNumber reading, which may help manage firmware-related HID index differences in the future.
- Improved the overall Inputs manager robustness and implemented per-device, KeyboardChord-based flush intervals.
- Improved the overall Controller manager robustness.
- Fixed an issue causing a race condition with XInput controller IsGone / IsBusy.
- Fixed SDL GetPathFromUserIndex() logic.
UI / UX
- Reworked the Controller Page architecture around a cleaner MVVM structure, improving maintainability and helping make future controller-related UI changes easier to build and manage.
- Improved threading and observable collection management.
- Fixed an issue preventing UI navigation when focus was on a disabled, hidden, or collapsed control.
- Fixed a controller lock race condition that could freeze the UI.
Device
- Legion Go: updated factory default fan values.
- Legion Go: reduced keyboard hook flush interval from 150ms to 10ms.
Library / Dependencies
- PixiEditor.ColorPicker
- Sentry
- WindowsAPICodePack
Full Changelog: 0.24.1.2...0.28.6.10