Commit Graph
70 Commits
Author SHA1 Message Date
David ReneltandPhyxionNL a792c26891 Add intel vram sensors (#2077)
* 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>
2025-11-28 21:54:04 +01:00
David Renelt 4c9e9f5dfd Add VRAM memory and bandwidth sensors for Intel discrete GPUs (#2067)
- 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
2025-11-23 13:45:55 +01:00
Carlos BederiánandPhyxionNL fe9857c2ed Intel discrete GPU support (#1822)
* Intel discrete GPU support through Intel GCL library

* Formatting

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-10-09 20:11:02 +02:00
辉夜andPhyxionNL 3023089017 Changed NvApi lifecycle (#1885)
* Changed NvApi lifecycle

* Changed from public to internal

* Revert unnecessary changes.
Reinitialize() -> Initialize().

* Refactor try-catch blocks for NVML device methods

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-09-26 10:34:20 +02:00
Betalos (Oussama Thoura) 12fcfa6752 Record RTX 50XX gpu core temp with decimal precision (#1899) 2025-09-25 19:05:35 +02:00
辉夜 3d8642c03f Fix RTX 40 Series Hot Spot and Memory Junction sensor not reading (#1890)
* Resolved an issue where RTX 40 Series sensors.

* change if to else if
2025-09-22 23:00:21 +02:00
Betalos (Oussama Thoura)andPhyxionNL 2f595d76c2 FIX RTX 50XX Memory junction temp reading (#1878)
* Update NvidiaGpu.cs

* Enhance 50 series detection logic

* Remove unused namespace import in NvidiaGpu.cs

Removed unused 'System.Xml.Linq' namespace import.

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-09-21 13:54:21 +02:00
namazsoandPhyxionNL eb5e1a20be Swap WinRing0 to PawnIO (#1857)
* Replace WinRing0 with PawnIO

* Update RAMSPDToolkit

* Add install check + cleanup

* Move folder + formatting

* Add back missing TryLoadDll

* Update PawnIo.cs

* Add third party notices file

* Remove the how to apply section

* Drop silent

* Don't crash if PawnIO isn't installed

* Formatting

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2025-09-16 11:58:31 +02:00
Daniel VargaandPhyxionNL f0681e14ea Fix duplicate sensor index in nvidia-gpu (#1441) (#1442)
* Fix duplicate sensor index in nvidia-gpu (#1441)

* Update NvidiaGpu.cs

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2024-11-24 10:51:01 +01:00
SeongChan Lee a044f1fe31 GpuIntelIntegrated initial power value should be read from MSR_PP1_ENERGY_STATUS, not from MSR_RAPL_POWER_UNIT (#1366) 2024-06-26 10:49:45 +02:00
Emerson Pinter 3959e8e3c0 Fix AMD Overdrive, update ADL methods to ADL2 variants (#1332)
After the change of ADL2_Main_Control_Create in commit 07234e3,
overdrive api checks and sensors broke. Updating to ADL2_ variants fixes
the problem.
2024-05-15 19:21:11 +02:00
Emerson Pinter e62443761b Fix ADL PMLog sensor, ignore invalid values (#1329)
There was a missing condition to avoid invalid values reported by some
cards.
2024-05-05 15:32:43 +02:00
Emerson Pinter 418888502a Add shared memory free/total for Intel iGPU (#1328) 2024-05-03 10:23:21 +02:00
Emerson Pinter 92bfa55f12 Add memory info for Amd GPUs (#1326)
* Add DedicatedVideoMemorySize to D3D

* Add memory info for Amd GPUs
2024-05-02 23:55:39 +02:00
Emerson Pinter 07234e3594 Avoid multiple initializations of AmdGpu (#1324)
ADL finds multiple logical gpus, this commit avoids multiple
unneeded initializations of AmdGpu class. The main control is moved to
AmdGpuGroup and the ADL_* calls are updated to ADL2_*, using the
context. Adapters using PMlog should be initialized only if sensors are
detected, adapters that pmlog is not enabled or doesn't work, should
fallback previous logic.
2024-05-02 21:42:22 +02:00
Emerson PinterandPhyxionNL 0c3ebb1933 Refactor ADL sensors update (#1317)
* Refactor ADL sensors update

- Check support for each sensor, on OD8 and new PMLog.
- Exclude cards before Vega10 from using PMLog
- Better validation for individual sensor support (for now asic-power/board-power)
- Validate pmlog struct using the lastUpdate, there are situations the
  sensors values are corrupted, maybe because something blocking the pointer access to
  the struct, but this needs to be verified.

* Update AmdGpu.cs

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2024-04-27 13:47:50 +02:00
Emerson PinterandPhyxionNL 331d334aef Add ADL pmlog support, fix metrics on newer gpus (#1308)
* Add ADL pmlog support, fix metrics on newer gpus

Newer GPUs needs this to show performance metrics properly. Sample rate
is hard coded (1000ms).

* Clean up

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2024-04-09 11:00:16 +02:00
dde9e52823 reading the proposed Total Board Power for RX 7000 Cards (#1123)
* reading the proposed Total Board Power for RX 7000 Cards

* undo requested changes

* Update AmdGpu.cs

---------

Co-authored-by: Peter Hindelang <PHindelang@artiso.com>
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2023-08-31 10:14:40 +02:00
PhyxionNL cd77cec0b5 Unify CPU namespace with folder (#1023) 2023-03-21 18:11:40 +01:00
PhyxionNL dcf42adac9 Check if number of nodes is still identical for Intel iGPU. 2023-03-15 19:28:56 +01:00
PhyxionNL 50d7adb9ba Fixes #948 2023-03-15 19:11:17 +01:00
PhyxionNL 76245c9a32 Read storage performance sensors without WMI 2023-03-15 18:00:38 +01:00
PhyxionNL ad575e7a13 Fixes #971
Closes #972
2023-03-15 16:34:26 +01:00
PhyxionNL 20bf5bb1f7 Check if ADL overdrive caps method exists and InpOut opened OK. 2023-03-14 17:29:28 +01:00
ntoff 640ba73f83 add nvidia gpu memory used as percentage (#912)
Adds a sensor to the "Load" category to show GPU memory usage
as a percentage for Nvidia GPUs
2022-11-27 14:16:19 +01:00
PhyxionNL 58cef111a1 Use file-scoped namespaces (#842) 2022-10-09 13:22:57 +02:00
PhyxionNL 3ac329f247 Fix some code analysis issues (#841) 2022-10-09 13:16:31 +02:00
PhyxionNL 517bf2629d Check if ADL_Adapter_ID_Get exists (#827) 2022-09-22 16:58:39 +02:00
PhyxionNL 38b97e10d0 Update editorconfig + changes (#771) 2022-06-29 19:38:57 +02:00
PhyxionNL 0d20a0db2c Fixes #753 2022-06-23 19:06:05 +02:00
PhyxionNL 0f523b4a10 Expose device id for GPUs (#762)
* Expose device id for GPUs

* Update NvidiaGpu.cs
2022-06-23 19:02:32 +02:00
Bjarni Ivarsson 627f0a56ce Add Intel integrated GPU (#671)
Thanks to @bjarniivarsson.
2022-02-26 10:14:09 +01:00
PhyxionNL b0dc162359 Fixes #625 2022-01-10 17:55:09 +01:00
Tim Sirmovics 1701eb91b2 Nvidia Hotspot / VRAM temps (#583)
Thanks to @TimSirmovics
2021-10-27 16:34:07 +02:00
JoeBroeseleandPhyxionNL 6b86ec9253 Fixes saving the sensor values on program exit and the displayed fan control values for NVIDIA GPUs.. (#575)
* Fixes saving the sensor values on program exit.

* Fixes the displayed fan control values for NVIDIA GPUs.

* Update NvidiaGpu.cs

Check cooler id.

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
2021-10-18 22:11:56 +02:00
Nick Babcock ce882e3910 Remove duplicate nvidia moniker in hardware name (#571)
Thanks to @nickbabcock
2021-10-06 16:19:56 +02:00
PhyxionNL b05a3ad4df Fixes #564 (#567) 2021-10-02 10:57:36 +02:00
PhyxionNL 8c01e4b21b NV API changes (#553)
* NV API changes

Restores parts of https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/commit/eea8558825cc0d5a76aa3e57fcc862b5d6f22100 while implementing the missing bits from the original implementation.

Fixes #524.
2021-09-29 11:34:13 +02:00
javguit 0fd00e27bb Fixed compatibility with older AMD/ATI cards when calling ADL2_Adapter_FrameMetrics_Caps (#535) 2021-09-10 11:02:39 +02:00
PhyxionNL e061f72229 Fixes #516 (#518) 2021-08-19 23:07:19 +02:00
M 91d9e81c07 Fix Nvidia memory report where free and used memory were mixed (#499) 2021-07-25 11:00:52 +02:00
PhyxionNL 3064810283 Order D3D sensors by name 2021-06-23 15:51:16 +02:00
PhyxionNL 9dc90f1ff7 Update NvidiaGpu.cs
Some small changes.
2021-06-23 15:30:34 +02:00
PhyxionNL eea8558825 Use NvAPIWrapper (#479)
From https://github.com/falahati/NvAPIWrapper
2021-06-21 19:02:10 +02:00
PhyxionNL 743cc795d7 Add D3D sensors to the end (#480) 2021-06-21 18:23:29 +02:00
PhyxionNL e276614418 Report all ADL status (#474)
* Report all ADL status

* Formatting
2021-06-19 10:12:44 +02:00
kolos ad1b8a8687 Add check for ADL (fan) Sensor support (#467)
* Add check for ADL (fan) Sensor support

* Use the right property.
2021-06-10 17:14:43 +02:00
PhyxionNL a8dc0a03ad Fix AMD overdrive 8 (#466) 2021-06-10 09:25:31 +02:00
PhyxionNL fe1be6b224 Fixes #451 2021-06-01 13:36:40 +02:00
kolos 5dc6cb95c8 Add D3D GPU Sensors (#426)
Thanks to @kolos.
2021-06-01 13:30:52 +02:00