Basic nvml implementation

pull/20/head
FlightlessMango 4 years ago committed by jackun
parent b28e0d2606
commit ef0b3d429e
No known key found for this signature in database
GPG Key ID: 119DB3F1D05A9ED3

File diff suppressed because it is too large Load Diff

@ -13,6 +13,10 @@
#include <string>
#include <sstream>
#include <regex>
extern "C"
{
#include "nvidia_info.h"
}
using namespace std;
int gpuLoad, gpuTemp, cpuTemp;
@ -161,6 +165,8 @@ void PrintStats(const std::vector<CPUData> & entries1, const std::vector<CPUData
}
void *cpuInfo(void *){
checkNvidia();
FILE *cpuInfo = fopen("/proc/cpuinfo", "r");
char line[256];
int i = 0;

@ -35,8 +35,10 @@ vklayer_files = files(
'overlay.cpp',
'overlay_params.c',
'font_unispace.c',
'nvml.c',
)
dep_nvml = cc.find_library('nvidia-ml')
vklayer_mesa_overlay = shared_library(
'MangoHud',
util_files,
@ -59,7 +61,8 @@ vklayer_mesa_overlay = shared_library(
vulkan_wsi_deps,
libimgui_core_dep,
dep_dl,
dep_pthread],
dep_pthread,
dep_nvml],
include_directories : inc_common,
link_args : cc.get_supported_link_arguments(['-Wl,-Bsymbolic-functions', '-Wl,-z,relro']),
install : true

@ -0,0 +1,8 @@
#include <nvml.h>
nvmlReturn_t result;
unsigned int nvidiaTemp, processSamplesCount, lastSeenTimeStamp, *vgpuInstanceSamplesCount;
nvmlValueType_t *sampleValType;
nvmlDevice_t nvidiaDevice;
struct nvmlUtilization_st nvidiaUtilization;
void checkNvidia(void);

@ -0,0 +1,16 @@
#include <stdio.h>
#include "nvidia_info.h"
#include <nvml.h>
void checkNvidia(){
result = nvmlInit();
if (NVML_SUCCESS != result) {
} else {
nvmlDeviceGetHandleByIndex(0, &nvidiaDevice);
nvmlDeviceGetUtilizationRates(nvidiaDevice, &nvidiaUtilization);
nvmlDeviceGetTemperature(nvidiaDevice, NVML_TEMPERATURE_GPU, &nvidiaTemp);
printf("temp: %i\n", nvidiaTemp);
printf("util: %i\n", nvidiaUtilization.gpu);
}
}
Loading…
Cancel
Save