* Support for 10 new MSI motherboards with NCT6687D-R SIO controller
* Support for newly established fan and control register structure
WILL ABSOLUTELY BREAK FAN CONTROL CONFIGS FOR NCT6687DR USERS. This introduces Support for 16 System Fans and Controls, including EZ-Connect, Pump Fan 2, and System Fan 7. Also improved the logic for nct6687dr control.
* Add support for X870E Tomahawk WIFI, fix B850 Gaming Plus WIFI PZ identification
Additionally sync with upstream
* Add support for B850M Gaming Plus WIFI and Z890 Unify-X
Also removes duplicate model identification case for B850M GAMING PLUS WIFI6E
* Bug fixes and Distinctive aliases
Fixed an exception when a Type was not registered in the dictionary
Added distinctive aliases for hardware and sensors to prevent confusion due to duplicated names
Reviewed units and factors
* Skip null values as per #1979
* On prometheus null value show full tagName if possible
* Using Dictionaries to keep track of hardware and sensor's names
* Fixing some logic errors.
* Bugfix: Typo in message
* Report up to 5 values per sensor.
* Renamed variables for clarity
Modified labels as requested
* Removed unused variables
Fixed error in dictionary key
* Fixed a logic error
* Removed remote debug
* Replaced alilas logic for a simpler `name (id)`
* Bugfix: Prometheus requires a colon here
Specially in strict mode and in victoriametrics.
* Forcing invariant locale conversion of numbers.
* Minor Code formatting
* Bug fixes and Distinctive aliases
Fixed an exception when a Type was not registered in the dictionary
Added distinctive aliases for hardware and sensors to prevent confusion due to duplicated names
Reviewed units and factors
* Skip null values as per #1979
* On prometheus null value show full tagName if possible
* Using Dictionaries to keep track of hardware and sensor's names
* Fixing some logic errors.
* Bugfix: Typo in message
* Report up to 5 values per sensor.
* Renamed variables for clarity
Modified labels as requested
* Removed unused variables
Fixed error in dictionary key
* Fixed a logic error
* Removed remote debug
* Replaced alilas logic for a simpler `name (id)`
* Bugfix: Prometheus requires a colon here
Specially in strict mode and in victoriametrics.
* Forcing invariant locale conversion of numbers.
* Minor Code formatting
* Misc
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Add Intel Arc VRAM sensors support
- Implement BDF-based device matching for Intel discrete GPUs
- Add VRAM sensors (total, used, free, load percentage)
- Use D3D device enumeration with fallback logic
- Enable Windows-specific VRAM monitoring for Intel Arc GPUs
- Fix device identification to distinguish between multiple identical GPUs
Resolves issue where both Intel Arc GPUs showed identical VRAM values.
Now each GPU displays unique, accurate memory usage statistics.
* Add defensive validation to GetBdfFromDeviceIdentifier
- Add null/empty check for deviceIdentifier parameter
- Return false explicitly when LastIndexOf('#') returns -1
- Add DEVPROPTYPE.DEVPROP_TYPE_UINT32 validation after property queries
- Use sizeof(uint) instead of hardcoded 4 for buffer sizes
- Apply PCI spec bit masks (5-bit device, 3-bit function)
- Add bus range validation (0-255)
* Revert to Windows DEVPKEY_Device_Address spec masks
Use 0xFFFF masks as per Windows documentation instead of PCI spec
bit widths. The Windows API uses full 16-bit fields for device and
function numbers.
* Update IntelDiscreteGpu.cs
* Update NativeMethods.txt
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Support for 10 new MSI motherboards with NCT6687D-R SIO controller
* Support for newly established fan and control register structure
WILL ABSOLUTELY BREAK FAN CONTROL CONFIGS FOR NCT6687DR USERS. This introduces Support for 16 System Fans and Controls, including EZ-Connect, Pump Fan 2, and System Fan 7. Also improved the logic for nct6687dr control.
- Add GPU Memory Total, Used, Free sensors (SmallData type, in MB)
- Add GPU Memory load sensor (percentage)
- Add GPU Memory Read/Write bandwidth sensors (Throughput type, in B/s)
- Use D3DDisplayDevice API to query VRAM usage via Windows kernel
- Match Intel discrete GPUs using PCI vendor/device IDs
- Include fallback detection for Intel GPUs if initial matching fails
- Bandwidth sensors read from Intel GCL telemetry with unit conversion
* Try and migrate the old GigabyteController stuff with PawnIO
* Bring back WinRing0 era GigabyteController stuff
* ISABridge use the PawnIO module with its built-in logic
* Ecio uses LpcIO directly (not sure about the initialization logic in TryCreate() to make this work)
* Code-review
* Fix inverted logic
* Remove IsaBridgeEc field init
* Format document
* Combine logic
* Gigabyte Implementation best attempt
* Update IsaBridgeGigabyteController.cs
* Cleanup and fix enablind logic for Isa version
* Add debug logs
* Update IsaBridgeGigabyteController.cs
* Code review
* Unmap + restore the mmio state is done through the closing of the module.
* Fix boolean logic
* Restore the fan control byte instead
* Fallback to ECIO if FanControl enable byte is 0xFF
+ add logs to ECIO
* Port back to validation logic
* Allow for one or the other MMIO to be 0
* Wrap enter/exit mmio logic + enter/exit each time
* Keep state of EcioPort enable
* Missing dispose + close order fix
* Update IsaBridgeGigabyteController.cs
* Remove empty line before TryCreate method
* Code review
* Remove try/finally for SW
* Cleanup debug log methods
* Add DEBUG_LOG define conditional
* Misc
* Misc
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Begin CrOS implementation for Framework Laptops
* CrOS: Talk directly to the EC, instead of through ACPI
* Add a few Framework models
* Remove early Framework models
These have a different EC, and don't currently work
* Migrate CrOS ECs to PawnIO
* Implement EcCommand and read sensor names
* Add more Framework models
* Add some error handling
* Misc
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Make the Debug,WriteLine opt in with a symbol define
Having all these Debug,WriteLine made the update method painfully slow and the running process laggy during a debug session.
* Update Nct677X.cs
* Update Nct677X.cs
* Update Nct677X.cs
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>