* fix: amd tolerate emtpy power cap
* chore: add rx6800m test data with broken power1_cap
---------
Co-authored-by: Ilya Zlobintsev <ilya.zl@protonmail.com>
* add struct
* use dynamic channel info to pick the right vram/hotspot channel
* get mask from get_info to avoid extra nvapi call
* move get_info from stats poll to new
* fix type
* wip
* clean up
* upd comment
* fix vfcurve flip to enabled
* fmt
* rename old curve_is_configured
* move enable edit checkbox from VFCurve to OC panel
* cleanup tests
* set offset 0 on curve reset
* add defauilt to freq_offset
* bail if vf_curve is invalid or not editable
* hide apply/default buttons on ro curve
* fix curve margins
* vfcurve - show info that editing is disabled
* move top vf curve ceiling a bit
* center vf-curve-editing label
* fix flipping edit vfcurve checkbox
* easen up warning
* add abs to offset migration
* fix point_min_offset_mhz calculation
* don't let offset to be same or bigger than basefreq
* fix test
* marking Intel with the fan control flag, if available
* static fan RPM control for Intel
* firmware fan control and checking if we can atually control the fans
* improved the messages
* fan curve suport for Intel
* consuming the result
* getting the fan curve from hwmon for Intel, if available
* getting the fan static speed from hwmon for Intel, if available
* getting the fan control mode from hwmon for Intel, if available
* checking if the fan control is enabled for Intel
* checking the curve points amount with the expose controllable points for Intel instead of hardcoding
* applying the fan settings to all exposed fans for Intel
* consuming the result
* applying the Intel fan curve in its own function
* applying the Intel fans static speed in its own function
* properly validating the fan curve for Intel
* getting the max fan speed for Intel, if available
* setting the remaining points based on the last point for Intel
* auto completing the missing curve points on Intel
* omitting points we probably auto completed for Intel
* properly auto completing the fan curve points for Intel
* only omitting the last fan curve points for Intel
* cargo fmt on intel.rs
* cargo clippy --fix --lib -p lact-daemon
* removed the "Option::" prefix
* removed the debug code
* using a result on "apply_fan_curve" and "is_valid_fan_curve"
* improved the Result handling in "apply_fan_curve"
* cargo fmt
* refactor: code cleanup, truncate read curve off configured one
* chore: minor cleanup
* added the get_hwmon_fan_curve and get_hwmon_fan_curve_points and renamed the old get_hwmon_fan_curve to get_truncated_hwmon_fan_curve
The new get_hwmon_fan_curve returns the fan curve from hwmon as is.
The get_hwmon_fan_curve_points returns a Vec with the hwmon fan curve as is, used on both get_hwmon_fan_curve and get_truncated_hwmon_fan_curve.
The get_truncated_hwmon_fan_curve returns the fan curve from hwmon, but some points may be ommited
* chore: update b580 test data with the fan curve
* feat: smarter fan curve truncation
* returning a single points if all points are the same, Intel xe
If all points are the same speed, we display the current FanControlMode as Static, so we can safely display one point in the curve
* safely getting the first point
---------
Co-authored-by: Ilya Zlobintsev <ilya.zl@protonmail.com>
* ignoring the intel_pmt on snapshots
For some reason, when LACT tries to read that file, the Linux kernel decides to crash. Tested on 7.1.5, 7.2-rc4, 7.2-rc5
* chore: fmt
---------
Co-authored-by: Ilya Zlobintsev <ilya.zl@protonmail.com>
* feat: WIP service setup GUI
* fix: avoid crash when closing dialog with app already running
* wip
* feat: make it more usable
* wip logs
* feat: working logs display
* feat: use new dialog for version mismatch
* chore: cleanup
* fix: tcp functionality
* feat: handle setup errors
* perf: avoid refetching system info
* fix test
* feat: add detach/reattach option to temporarily ignore a GPU
* chore: require explicit gpu id arg for detach
* feat: keep NVML and NvAPI behind a refcount instead of global init
* fix: clippy
* update nvml bindings
* add basic power-mizer get/set
* upd generated-sources
* simplify schema
* finish rename
* gui: drop nvidia_power_mizer_modes
* controller: remove get_nvidia_power_mizer_info
* minor clean-ups
* hacky fix of tests
* use correct repo url for nvml-wrapper
* controller: rollback to Auto when no value is supplied
* gui: handle set_model reset on each tick
* chore: extremely minor cleanup
---------
Co-authored-by: Ilya Zlobintsev <ilya.zl@protonmail.com>
* fix: nvidia displayport2 bandwidth calculation fix
* move vendor specific heuristics to relevant controllers
* handle case where linkBW and dp2LinkBW are 0
* Revert "handle case where linkBW and dp2LinkBW are 0"
This reverts commit 7c805f6ebf.
* feat: handle VF curve without vf_tuple_base (Turing) (WIP)
* feat: handle both paths
* fix: use saved base VF curve instead of calculating from offsets when base is unsupported
* chore: force reset curve before saving it as base