Varun.NvAPIWrapper.Net
8.9.0
This version has a lot of errors in the codebase, which have been fixed in the 9.0.1 version.
See the version list below for details.
dotnet add package Varun.NvAPIWrapper.Net --version 8.9.0
NuGet\Install-Package Varun.NvAPIWrapper.Net -Version 8.9.0
<PackageReference Include="Varun.NvAPIWrapper.Net" Version="8.9.0" />
<PackageVersion Include="Varun.NvAPIWrapper.Net" Version="8.9.0" />
<PackageReference Include="Varun.NvAPIWrapper.Net" />
paket add Varun.NvAPIWrapper.Net --version 8.9.0
#r "nuget: Varun.NvAPIWrapper.Net, 8.9.0"
#:package Varun.NvAPIWrapper.Net@8.9.0
#addin nuget:?package=Varun.NvAPIWrapper.Net&version=8.9.0
#tool nuget:?package=Varun.NvAPIWrapper.Net&version=8.9.0
<img src="NvAPIWrapper/Icon.png" width="24" alt="NvAPIWrapper"> NvAPIWrapper-V (Modernized NVIDIA NVAPI Wrapper)
Fork of falahati/NvAPIWrapper with safe modernization work focused on newer NVIDIA drivers/GPUs and better fallback behavior on older systems.
- Repository:
https://github.com/varun875/NvAPIWrapper-V - Package ID:
Varun.NvAPIWrapper.Net - Current package version in this repo:
8.9.0 - Library targets:
netstandard2.1,net461 - Library language version: C#
9.0
What Changed In This Fork
1. R580-era modern function mappings added
Modern IDs and delegates were wired for:
NvAPI_GPU_GetGspFeaturesNvAPI_GPU_NVLINK_GetCapsNvAPI_SYS_GetDisplayDriverInfoNvAPI_SYS_GetPhysicalGPUsNvAPI_SYS_GetLogicalGPUsNvAPI_RegisterRiseCallbackNvAPI_RequestRiseNvAPI_UninstallRise
2. Safe capability-first APIs (Try*) added
New Try* wrappers were added so unsupported drivers/GPUs do not throw in common telemetry paths:
GPUApi.TryGetGSPInfoGPUApi.TryGetNVLinkCapsGPUApi.TryGetPhysicalGPUHandleDataGPUApi.TryGetLogicalGPUHandleDataGPUApi.TryClientPowerTopologyGetStatusGPUApi.TryClientPowerPoliciesGetStatusGPUApi.TryClientPowerPoliciesGetInfoGPUApi.TryGetPerformancePoliciesStatusGPUApi.TryGetPerformanceDecreaseInfoGPUApi.TryGetCurrentPerformanceStateGeneralApi.TryGetDisplayDriverInfoNVIDIA.TryGetDisplayDriverInfo
3. High-level GPU improvements
PhysicalGPU.GetPhysicalGPUs()andLogicalGPU.GetLogicalGPUs()now try modern metadata enumeration first, then fall back to legacy enumeration.- Added
PhysicalGPU.GSPFirmwareVersion - Added
PhysicalGPU.NVLinkCapabilities - Added
PhysicalGPU.IsNVLinkSupported - Added power telemetry snapshot support:
PhysicalGPU.TryGetPowerTelemetrySnapshot(out GPUPowerTelemetrySnapshot?)PhysicalGPU.TryGetEstimatedBoardPowerUsageInWatts(...)PhysicalGPU.TryGetEstimatedGPUPowerUsageInWatts(...)
- Added safe thermal/usage helpers:
GPUThermalInformation.TryGetCurrentThermalLevel(...)GPUThermalInformation.TryGetThermalSensors(...)GPUUsageInformation.TryGetUtilizationDomainsStatus(...)GPUUsageInformation.TryGetDynamicPerformanceStatesEnabled(...)GPUPowerTopologyInformation.TryGetPowerTopologyEntries(...)GPUPowerTopologyInformation.TryGetPowerUsageInPercent(...)GPUPowerTopologyInformation.TryGetEstimatedPowerUsageInWatts(...)
4. Updated enum coverage for modern GPU reporting
- Memory:
GDDR6,GDDR6X,GDDR7,HBM2,HBM2e,HBM3,HBM3e,LPDDR5,DDR5 - PCIe:
PCIe4,PCIe5(plus display formatting updates) - System:
Workstation,DataCenter,Hyperscale,Edge - Public clock domains:
BaseClock,VideoEncode,Tensor,Display - Voltage domains:
PCIeCore,SOCCore,Memory
5. Packaging metadata modernized for NuGet
- Uses modern package metadata:
<license type="file"><icon><readme>
- Package includes:
LICENSEREADME.mdIcon.png
Quick Start
using NvAPIWrapper;
using NvAPIWrapper.GPU;
NVIDIA.Initialize();
foreach (var gpu in PhysicalGPU.GetPhysicalGPUs())
{
Console.WriteLine(gpu.FullName);
// Modern capability data with safe fallback behavior
Console.WriteLine($"GSP FW: {gpu.GSPFirmwareVersion ?? "N/A"}");
Console.WriteLine($"NVLink supported: {gpu.IsNVLinkSupported}");
// Power telemetry snapshot (when available)
if (gpu.TryGetPowerTelemetrySnapshot(out var snapshot) && snapshot != null)
{
Console.WriteLine($"GPU power %: {snapshot.GPUPowerUsageInPercent}");
Console.WriteLine($"Board power %: {snapshot.BoardPowerUsageInPercent}");
}
}
NVIDIA.Unload();
Power In Watts (Important Note)
NVAPI commonly reports power telemetry as percentages. The new watt helpers estimate watts by multiplying:
powerPercent * providedPowerLimitWatts / 100
So these values are estimates and depend on the limit you provide (for example board TGP/TDP).
Build And Pack
dotnet build NvAPIWrapper\NvAPIWrapper.csproj -c Release -p:SignAssembly=false
dotnet pack NvAPIWrapper\NvAPIWrapper.csproj -c Release -p:SignAssembly=false
Artifacts are generated in Release\.
API Surface
NvAPIWrapper.Display- Display and display-control APIsNvAPIWrapper.GPU- GPU APIs and high-level telemetry helpersNvAPIWrapper.Mosaic- Mosaic/Surround APIsNvAPIWrapper.DRS- Driver profile APIsNvAPIWrapper.Stereo- Stereo APIsNvAPIWrapper.Native- Low-level NVAPI delegates/structuresNvAPIWrapper.NVIDIA- General system entry points
Compatibility Philosophy
This fork prioritizes:
- Additive changes
- Capability checks before feature usage
- Legacy fallback paths to avoid regressions on older drivers/GPUs
License
Copyright (C) 2017-2026 Soroush Falahati and contributors
This project is licensed under LGPL v3. See LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| .NET Framework | net461 is compatible. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.1
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.