* WIP: add initial intel xe/i915 support
* feat: basic gpu clock configuration
* wip i915 freq controls
* fix: applying frequency settings on i915
* feat: intel DRM info
* feat: show EUs and subslices in UI
* refactor: exclude all system-dependent info in tests with conditional compilation
* chore: ignore clippy errors on bindgen file
* fix: more test fixes
* feat: generate drm bindings for xe
* wip
* refactor: GPU controller initialization
* fixes
* chore: disable currently unused xe headers
* feat: dynamically load libdrm for intel
* chore: drop println
* Merge with master
* fix: tests
* chore: avoid error in vulkan when running tests
* feat: numerous i915 additions
* feat: show fan speed
* feat: hwmon monitoring on xe
* fix: avoid crashing history graph on empty plot with throttling data
* feat: report pstates
* doc: update readme
* chore: update API docs link
* feat: profile ordering
* feat: profile matching logic
* feat: automatic switching
* perf: optimize profile rules evaluation
* feat: detect gamemode process start
* feat: add benchmark for profiles matching
* perf: string interner, inline hot function
* feat: option to enable auto profile switching
* wip
* chore: change label
* chore: minor profile switching fixes
* chore: drop interner
* wip
* refactor: header messages
* feat: delay profile evaluation
* fix: moving profiles around
* feat: initial profile rule editor UI
* refactor: only create one RuleWindow instead of creating it per-row
* feat: add option to include profile watcher state in api response
* feat: ui for selecting process name
* feat: API endpoint to evaluate a single profile rule
* perf: store process names in a map to speed up profile evaluation
* feat: full configurability in the UI, many improvements
* fix: downgrade dependency to build on older rust
* fix: deleting currently active profile
* fix: populate profiles list when it's empty
* fix: pin project to rust 1.78
* fix: setting args
* fix: running benchmarks
* test: add tests for retrieving data from various debug snapshots
* chore: add power profiles mode to snapshot, add rx 7700s test data
* fix: update rust workflow
* feat: abstract GpuController
* test?
* fix: dont re-initialize nvidia gpu
* feat: more info on nvidia
* feat: core stats on nvidia
* fix: nvidia uses milliwatts not microwatts
* feat: include device info and stats responses in debug snapshot
* chore: avoid logging msg twice
* fix: correctly handle only secondary line series being present in a plot
* feat: more reporting
* feat: support for setting the power cap
* chore: avoid trying to initialize drm for non-amd gpus
* chore: avoid drawing primary plot label when only secondary values are present
* feat: hide unknown values on the info page
* feat: report cuda cores
* chore: limit power usage value accuracy
* Threaded plot render
* Better supersampler implementation
* Better to display nothing than do long freeze
* Fix plot throttling jumping around
* Further improve rendering by using filled legend
* Spawn render thread with minimum priority
* Optimize Cairo bindings
* Simplify code as we no longer need to track initial state
Signed-off-by: Alik Aslanyan <inline0@pm.me>
* Add plotters package override for opt-level 3 in release
* Immediately react to size changes of the widget, don't wait for new data
* feat: nvidia fan control
* Scale plots in GTK, instead of Cairo for Trillinear filtering, rewrite supersampling
* feat: pstate reporting
* doc: update README to mention that nvidia is now supported
* doc: add historical data to readme
* doc: improve screenshot alignemnt
* doc: add nvidia driver note
---------
Signed-off-by: Alik Aslanyan <inline0@pm.me>
Co-authored-by: Alik Aslanyan <inline0@pm.me>
libdrm was initially added as a way to get more information, but is now
used for some crucial functionality like GPU generation and VRAM type
detection. it should always be used to avoid these things not working