use nvml for nvidia gpu memory instead of nvctrl

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

@ -76,7 +76,7 @@ void *getNvidiaGpuInfo(void *){
getNvidiaInfo();
gpuLoad = nvidiaUtilization.gpu;
gpuTemp = nvidiaTemp;
gpuMemUsed = nvidiaMemUsed();
gpuMemUsed = nvidiaMemory.used / (1024 * 1024);
}
pthread_detach(nvidiaSmiThread);

@ -135,6 +135,18 @@ bool libnvml_loader::Load(const std::string& library_name) {
return false;
}
#if defined(LIBRARY_LOADER_NVML_H_DLOPEN)
nvmlDeviceGetMemoryInfo =
reinterpret_cast<decltype(this->nvmlDeviceGetMemoryInfo)>(
dlsym(library_, "nvmlDeviceGetMemoryInfo"));
#endif
#if defined(LIBRARY_LOADER_NVML_H_DT_NEEDED)
nvmlDeviceGetMemoryInfo = &::nvmlDeviceGetMemoryInfo;
#endif
if (!nvmlDeviceGetMemoryInfo) {
CleanUp(true);
return false;
}
loaded_ = true;
return true;

@ -40,10 +40,10 @@ vklayer_files = files(
'nvml.cpp',
'file_utils.cpp',
'memory.cpp',
'nvctrl.cpp',
# 'nvctrl.cpp',
)
lib_xnvctrl = cc.find_library('XNVCtrl')
# lib_xnvctrl = cc.find_library('XNVCtrl')
vklayer_mesa_overlay = shared_library(
'MangoHud',
util_files,
@ -66,8 +66,7 @@ vklayer_mesa_overlay = shared_library(
vulkan_wsi_deps,
libimgui_core_dep,
dep_dl,
dep_pthread,
lib_xnvctrl],
dep_pthread],
include_directories : inc_common,
link_args : cc.get_supported_link_arguments(['-Wl,-Bsymbolic-functions', '-Wl,-z,relro']),
install : true

@ -8,7 +8,7 @@ nvmlDevice_t nvidiaDevice;
bool nvmlSuccess = false;
unsigned int nvidiaTemp;
struct nvmlUtilization_st nvidiaUtilization;
struct nvmlMemory_st nvidiaMemory;
struct nvmlMemory_st nvidiaMemory {};
bool checkNvidia(){
if (nvml.IsLoaded()){
@ -29,5 +29,5 @@ void getNvidiaInfo(){
nvml.nvmlDeviceGetHandleByIndex(0, &nvidiaDevice);
nvml.nvmlDeviceGetUtilizationRates(nvidiaDevice, &nvidiaUtilization);
nvml.nvmlDeviceGetTemperature(nvidiaDevice, NVML_TEMPERATURE_GPU, &nvidiaTemp);
// nvml.nvmlDeviceGetMemoryInfo(nvidiaDevice, &nvidiaMemory);
nvml.nvmlDeviceGetMemoryInfo(nvidiaDevice, &nvidiaMemory);
}
Loading…
Cancel
Save