mirror of
https://github.com/n00mkrad/flowframes.git
synced 2025-12-16 16:37:48 +01:00
77 lines
1.8 KiB
C#
77 lines
1.8 KiB
C#
using NvAPIWrapper;
|
|
using NvAPIWrapper.GPU;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace Flowframes.OS
|
|
{
|
|
class NvApi
|
|
{
|
|
static PhysicalGPU gpu;
|
|
|
|
public static async void Init()
|
|
{
|
|
try
|
|
{
|
|
NVIDIA.Initialize();
|
|
PhysicalGPU[] gpus = PhysicalGPU.GetPhysicalGPUs();
|
|
if (gpus.Length == 0)
|
|
return;
|
|
gpu = gpus[0];
|
|
|
|
Logger.Log($"Initialized NvApi. GPU: {gpu.FullName}");
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Logger.Log($"Failed to initialize NvApi: {e.Message}\nIgnore this if you don't have an Nvidia GPU.");
|
|
}
|
|
}
|
|
|
|
public static float GetVramGb ()
|
|
{
|
|
try
|
|
{
|
|
return (gpu.MemoryInformation.AvailableDedicatedVideoMemoryInkB / 1000f / 1024f);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
return 0f;
|
|
}
|
|
}
|
|
|
|
public static float GetFreeVramGb()
|
|
{
|
|
try
|
|
{
|
|
return (gpu.MemoryInformation.CurrentAvailableDedicatedVideoMemoryInkB / 1000f / 1024f);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
return 0f;
|
|
}
|
|
}
|
|
|
|
public static string GetGpuName()
|
|
{
|
|
try
|
|
{
|
|
NVIDIA.Initialize();
|
|
PhysicalGPU[] gpus = PhysicalGPU.GetPhysicalGPUs();
|
|
if (gpus.Length == 0)
|
|
return "";
|
|
|
|
return gpus[0].FullName;
|
|
}
|
|
catch
|
|
{
|
|
return "";
|
|
}
|
|
}
|
|
}
|
|
}
|