Releases: ilya-zlobintsev/LACT
Test release
dev: add test data for more RDNA2, RDNA1 and Sea Islands
v0.6.0
[0.6.0] - 2024-11-14
This is a big release, adding several new major features:
- Nvidia support! LACT now works with Nvidia GPUs for all of the core functionality (monitoring, clocks configuration, power limits and fan control). It uses the NVML library, so unlike the Nvidia control panel it doesn't rely on X11 extensions and works under Wayland.
- Multiple profiles for configuration. Currently it is not possible to switch them automatically, but they are configurable through the UI or the unix socket.
- Clocks configuration now works on AMD IGPUs (at least RDNA2). Previously it was not parsed properly due to lack of VRAM settings.
- Zero RPM mode settings on RDNA3. Currently this needs a linux-next to be used, and the functionality is expected to land in kernel 6.13. But this resolves a long-standing issue with RDNA3 that made the fan always disabled below a certain temperature, even if using a custom curve.
There are many other improvements as well, such as better looking and more efficient plots rendering in the historical charts window (thanks to @In-line ) and a Fedora COPR repository providing LACT packages (currently in testing).
Nvidia showcase:
Full list of changes:
🚀 Features
- Add support for multiple settings profiles (#327)
- Show dialog when attempting to reconnect to daemon
- Include device info and stats responses in debug snapshot
- Improve plot rendering, use supersampling and do it in a background thread
- [breaking] Add initial Nvidia support (#388)
- Implement clocks control on Nvidia (#398)
- Add special case for invalid throttle mask
- Add snapshot command to CLI
- Add RDNA3 zero RPM setting (#393)
🐛 Bug Fixes
- Getting pci info in snapshot
- Retry reading p-states if the value is nonsensical
- Increase retry intervals when evaluating GPUs at start
- Make throttling flags ellipsized to avoid massively oversized window (#402)
- Deduplicate throttle status bits
- Update amdgpu-sysfs with iGPU fixes, add steam deck quirk (#407)
- Fedora spec non-default builds (#410)
🚜 Refactor
- Make info page a relm component (#404)
- Drop redundant ClockSettings structure in the ui
📚 Documentation
- Update issue template to mention common RDNA3 problems
- Fix issue template yaml
- Move description to label in issue template
⚙️ Miscellaneous Tasks
- Bump version
- Update docs, enforce minimum rust version
- Set codegen-units=1 to decrease binary size in release (#390)
- Include service log in debug snapshot
- Drop old bench feature
- Bump dependencies
- Bump version
- Remove unused Cargo features (#405)
Developer
- Automatically create release on tag push
- Trigger workflow on tag push
- Bump workflow rust version
- Add debug builds to makefile
- Skip building signed packages if signing secret is not found
- Don't run rust checks on master pushes, only PRs
Packaging
v0.5.6
[0.5.6] - 2024-09-22
This release has two main features: custom power profile heuristics and support for remote management over TCP.
Parts of the UI have also been ported to use the relm4 library. This doesn't affect UI looks in any way, but allows for better structuring of code and is less verbose compared to using gtk-rs subclassing for custom widgets.
New power profile heuristics UI:
To set up remote daemon access see this README section.
Full list of changes:
🚀 Features
- Restart daemon if it crashes (just in case)
- Show detailed power profile information (#360)
- Support for power profile heuristics configuration (#361)
- Use ScrolledWindow for initramfs output when enabling/disabling oc (#364)
- Bump amdgpu-sysfs with fix for #367
- Show effective VRAM clockspeed in the GUI on GDDR6 (#368)
- Improve config change watcher logic to avoid unnecessary reloads
- Add option to reset all configuration
- Use relm4 for the UI (only main parts) (#375)
- Prevent repeated enabling/disabling of overclocking before reboot
- Remote management over TCP (#379)
- Add headless packages for RHEL (via Rocky Linux) (#380)
🐛 Bug Fixes
- Avoid malloc_trim non non-gnu systems (#353)
- Avoid crashing on non-numeric input in fan curve editor
📚 Documentation
- Update nixos package info
⚙️ Miscellaneous Tasks
- Fix deprecation warnings
- Update dependencies, adopt new gtk-rs clone macro syntax
- Bump version
- Drop support for building without libdrm
- Skip serializing empty values in the config
- Remove drm feature from makefile
v0.5.5
[0.5.5] - 2024-06-15
This is a fairly minor release that fixes various settings not applying on certain GPUs and adds a fan speed graph to the plots window.
🚀 Features
- Check /sys/bus/pci/devices for devices that don't have a drm entry initialized
- Add fan speed plot (#338)
- Rearrange graphs in a grid
🐛 Bug Fixes
- Find matching debugfs device by searching through all names
- Apply power profile mode after the performance level
- Fix press 'Enable Overclocking' will panic (#320)
- Gracefully handle transient fan control errors
- Label text clipping
- Set fan speed graph y axis label to rpm
- Only set PMFW options when they're different from the current value
- Defer committing clocks/fan settings changes until all the values have been written (#340)
📚 Documentation
- Add development build info to readme
⚙ Miscellaneous Tasks
- Bump dependencies
- Drop unused dependency
Packaging
- Add ubuntu 24.04 package (#332)
v0.5.4
[0.5.4] - 2024-04-22
Major new features:
-
Historical charts
Added a dedicated window that shows clockspeed, temperature and power usage values over a period of time.
Thanks to @In-line for the initial implementation. -
Fan control hysteresis
There are two new settings for custom fan curves: spindown delay and speed change threshold.
These settings help avoid unwanted fan speed changes caused by small temperature changes and short temperature drops (such as during a loading screen in a game for example), reducing fan noise. -
VBIOS dumping
It is now possible to dump the current GPU VBIOS into a file (the option is in the dropdown menu). -
Automatic config reloading
Now when you manually edit the config file in/etc/lact/config.yaml
, LACT will automatically apply the changes. This can be useful in headless environments.
There are also some hardware handling fixes and usability improvements, see the full changelog below.
If you want to support the development of LACT, please consider sponsoring.
Full changelog:
🚀 Features
- Improved error reporting, RX 7900 Fixes (#279)
- Clearer gpu/card model separation (#287)
- Use drm for getting the gpu device name when possible (#288)
- Automatically reload configuration when the config file is changed
- Fan control hysteresis (#292)
- Set higher process priority (nice value) in the default systemd unit
- Implement historical charts window (#301)
- Add support for dumping VBIOS to a file (#305)
🐛 Bug Fixes
- Statistics jumping around in the OC page (#280)
- Consistently format GPU statistics in OC page (#282)
- Skip config file events that happen right after writing the config to avoid unnecessary reloads
- Set performance level after the clocks table, reset it to auto before applying a custom value (#298)
- Avoid freezing the UI when enabling/disabling overdrive (#300)
- Add system update to arch linux package build script
- Add update fix to headless and libadwaita arch package builds
⚡ Performance
- Optimize plot drawing
⚙️ Miscellaneous Tasks
v0.5.3
[0.5.3] - 2024-03-02
Features
- Display current_gfxclk if available (#250)
- Compress debug snapshots into .tar.gz, include system info in them. This allows them to be attached to github issues
- OpenSUSE packaging (#262)
- Display info about throttling (#274)
- Handle scenarios when only the fan PWM is present, without speed readings. This should allow fan control on older GPUs
- Add package signing to fedora packages (#276)
- Improve fan curve point adjustment, add ability to manually set the speed value
- Include git commit in version info (#249)
Bug Fixes
- Segfault caused by incorrect usage of
fork
in the embedded daemon (#259) - Intermittent CI failures due to a pkger distro detection error
- Fix amdgpu_bo_cpu_map failed error in embedded mode (#264)
- Avoid selectable labels for dynamic info (#270)
- Include
name
in the hwmon snapshot - Dont fail release creation on artifact errors
Refactor
- Use blueprint for the info page (#273)
Documentation
- Add Gentoo installation (#252)
- Add socket permission notes to README (#260)
- Update README hardware support table (#277)
- Add issue templates (#278)
- Create FUNDING.yml
- Fix kofi link
Miscellaneous Tasks
- Restructure Cargo.toml files to use workspace-level dependencies
- Update dependencies, adopt breaking changes
- Bump version
- Set opt-level and lto for smaller binary size
v0.5.2
[0.5.2] - 2024-01-22
Features
- Initial support for RDNA3 fan configuration (PMFW) (#239)
- Add support for custom fan curves and static fan speed on RDNA3 (#248)
- Set the GPU to the lowest power state before applying a power limit if current consumption exceeds the new limit (#233)
- Include 7000 series fan control files in sysfs snapshot
- Automatically regenerate initramfs on arch and debian-based systems
- Add support for regenerating initramfs on fedora
- Use gpu-provided allowed range for voltage offset when it is available
- Disable thermals controls on rdna3+ when overdrive is disabled, as it is not writeable
- Close VulkanFeaturesWindow with shortcut (#245)
- Add support for disabling overdrive
Bug Fixes
- Make snapshot file read errors non-fatal
- Bump amdgpu-sysfs-rs with fix for #242
Documentation
- Update information on initramfs in README
- Update README.md
Miscellaneous Tasks
- Bump dependencies
- Add keywords to dektop file (#241)
- Update dependencies, switch to stable release of amdgpu-sysfs
v0.5.1
[0.5.1] - 2023-12-23
Bug Fixes
- Allow gui build without drm (#217)
- Use DESTDIR properly in the Makefile and introduce PREFIX (#220)
- Set lactd to run without requiring graphical mode (#221)
- Add check for minimum system uptime when starting the daemon
- Bump amdgpu-sysfs with 5000 series table vddc curve clearing fix
- Avoid clearing the table if vddc curve is present
- Normalize VDDC curve before applying it
Documentation
- Add blueprint-compiler version info to build dependencies
Features
- Use VBIOS version field from DRM when possible
- New icon (#223)
- Install svg icon; fix some install permissions (#226)
- Add alternative headless and libadwaita builds (#227)
- Add option to generate a debug snapshot of the SysFS (#231)
Miscellaneous Tasks
v0.5.0
This is a major release, the main addition being support for power states configuration.
Parts of the UI have also been rewritten using the blueprint layout language (this did not change the look of the app, but it makes future ui changes easier)
[0.5.0] - 2023-11-21
Features
- Power states configuration support
- Show if resizeable bar is enabled
- Show cache size info
- Print warning if gui and daemon versions mismatch
- Show info on how to enable the daemon if it is not running
- Use new power1_input interface for power usage readings instead of power1_average when it is available
- Using blueprint for parts of the UI
Bug Fixes
- Avoid resetting fan control mode when it is not available
- Avoid showing active power state if the data is invalid
- Fix voltage offset config apply
Documentation
- Update README with hardware info, nix package link and added features
Miscellaneous Tasks
- Bump Fedora versions in packaging
- Add more logging
- Improve clocks configuration management
- Bump dependencies
v0.4.5
[0.4.5] - 2023-10-21
Bug Fixes
- Handle missing drm values when updating info in gui
- Use BTreeMap to store gpu controllers so the order of gpus is defined
- Treat closing the confirmation dialog as reverting
- Update power cap frame properly when switching gpus
- Don't show overclock warning label when overclocking is not available
- Update vram size instantly when switching gpus
- Stop the settings refresh timer after choosing an option when applying (#196)
- Update amdgpu-sysfs with 7900xt fixes
Documentation
- Remove typo (#201)
Features
- Bump amdgpu-sysfs with RDNA3 changes, change values to signed integers
- Bump amdgpu-sysfs with support for unlabled sensors
- Assign numbers to gpus in the gpu selector
- Added static fan control option (#198)
Miscellaneous Tasks
- Print more info when applying settings
- Use glib futures instead of threads in the gui, replace mutex/rwlock with refcell
- Use LocalSet for daemon tasks, replace mutex/rwlock with refcell
- Show a message when vulkan is not available on the selected gpu
- Clean up dependency features
- Strip binary in release mode
- Bump dependencies
- Clippy fixes