using NvAPIWrapper.Native.GPU;
using NvAPIWrapper.Native.GPU.Structures;
namespace NvAPIWrapper.GPU
{
///
/// Contains information about a power domain usage
///
public class GPUPowerTopologyStatus
{
internal GPUPowerTopologyStatus(
PrivatePowerTopologiesStatusV1.PowerTopologiesStatusEntry powerTopologiesStatusEntry)
{
Domain = powerTopologiesStatusEntry.Domain;
PowerUsageInPCM = powerTopologiesStatusEntry.PowerUsageInPCM;
}
///
/// Gets the power usage domain
///
public PowerTopologyDomain Domain { get; }
///
/// Gets the current power usage in per cent mille (PCM)
///
public uint PowerUsageInPCM { get; }
///
/// Gets the current power usage in percentage
///
public float PowerUsageInPercent
{
get => PowerUsageInPCM / 1000f;
}
///
public override string ToString()
{
return $"[{Domain}] {PowerUsageInPercent}%";
}
}
}