1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2025-01-12 19:06:36 +00:00

Fix nvidia memory frequency reading patch sf.net id #2493134.

This commit is contained in:
Alexander Monakov 2009-02-17 22:10:15 -07:00 committed by Brenden Matthews
parent 966a05a984
commit 24ddc9665e
7 changed files with 52 additions and 31 deletions

View File

@ -12,6 +12,7 @@
* fix number printing in human_readable()
* network $upspeed and $downspeed now use human_readable()
* Fix diskio_read/write patch sf.net id #2493084 (thanks Alexander)
* Fix nvidia memory frequency reading patch sf.net id #2493134
2009-02-15
* Added out_to_x

3
README
View File

@ -1309,13 +1309,14 @@ conky(1) conky(1)
Hostname
1mnvidia threshold temp gpufreq memfreq imagequality0m
1mnvidia threshold temp ambient gpufreq memfreq imagequality0m
Nvidia graficcard support for the XNVCtrl library. Each option
can be shortened to the least significant part. Temperatures
are printed as float, all other values as integer.
1mthreshold22m: the thresholdtemperature at which the gpu slows down
1mtemp22m: gives the gpu current temperature
1mambient22m: gives current air temperature near GPU case
1mgpufreq22m: gives the current gpu frequency
1mmemfreq22m: gives the current mem frequency
1mimagequality22m: which imagequality should be choosen by OpenGL ap

View File

@ -311,29 +311,6 @@ if test x$want_wlan = xyes; then
AC_DEFINE(HAVE_IWLIB, 1, [Define if you want wireless support])
fi
dnl
dnl NVIDIA libXNVCtrl support
dnl
AC_ARG_ENABLE([nvidia],
AC_HELP_STRING([--enable-nvidia], [enable if you want nvidia support @<:@default=no@:>@]),
[want_nvidia="$enableval"], [want_nvidia=no])
if test x$want_nvidia = xyes; then
if test "x$want_x11" != "xyes"; then
# do nada
want_nvidia=no
else
AC_CHECK_HEADERS([NVCtrl/NVCtrl.h], [], AC_MSG_ERROR([NVCtrl/NVCtrl.h header not found]))
dnl AC_CHECK_LIB([XNVCtrl], [XNVCTRLQueryVersion], [] ,[AC_MSG_ERROR([grrr])] )
dnl AC_CHECK_LIB([XNVCtrl], [XNVCTRLCheckTargetData], [], [AC_MSG_ERROR([grr])])
dnl ## am I Stupid ??
dnl ## it won't find the lib for some reason!?
LIBS="$LIBS -lXNVCtrl"
AC_DEFINE(NVIDIA, 1, [Define if you want nvidia support])
fi
fi
AM_CONDITIONAL(BUILD_NVIDIA, test x$want_nvidia = xyes)
dnl
dnl IMLIB2
dnl
@ -496,6 +473,29 @@ if test x$want_xft = "xyes"; then
fi
fi
dnl
dnl NVIDIA libXNVCtrl support
dnl
AC_ARG_ENABLE([nvidia],
AC_HELP_STRING([--enable-nvidia], [enable if you want nvidia support @<:@default=no@:>@]),
[want_nvidia="$enableval"], [want_nvidia=no])
if test x$want_nvidia = xyes; then
if test "x$want_x11" != "xyes"; then
# do nada
want_nvidia=no
else
AC_CHECK_HEADERS([NVCtrl/NVCtrl.h], [], AC_MSG_ERROR([NVCtrl/NVCtrl.h header not found]))
dnl AC_CHECK_LIB([XNVCtrl], [XNVCTRLQueryVersion], [] ,[AC_MSG_ERROR([grrr])] )
dnl AC_CHECK_LIB([XNVCtrl], [XNVCTRLCheckTargetData], [], [AC_MSG_ERROR([grr])])
dnl ## am I Stupid ??
dnl ## it won't find the lib for some reason!?
LIBS="$LIBS -lXNVCtrl"
AC_DEFINE(NVIDIA, 1, [Define if you want nvidia support])
fi
fi
AM_CONDITIONAL(BUILD_NVIDIA, test x$want_nvidia = xyes)
dnl
dnl GLIB
dnl

View File

@ -1140,7 +1140,7 @@ not. Both mbox and maildir type mailboxes are supported.
Hostname
.TP
\fB\*(T<\fBnvidia\fR\*(T>\fR \*(T<\fBthreshold\fR\*(T> \*(T<\fBtemp\fR\*(T> \*(T<\fBgpufreq\fR\*(T> \*(T<\fBmemfreq\fR\*(T> \*(T<\fBimagequality\fR\*(T>
\fB\*(T<\fBnvidia\fR\*(T>\fR \*(T<\fBthreshold\fR\*(T> \*(T<\fBtemp\fR\*(T> \*(T<\fBambient\fR\*(T> \*(T<\fBgpufreq\fR\*(T> \*(T<\fBmemfreq\fR\*(T> \*(T<\fBimagequality\fR\*(T>
Nvidia graficcard support for the XNVCtrl library.
Each option can be shortened to the least significant part.
Temperatures are printed as float, all other values as integer.
@ -1151,6 +1151,9 @@ the thresholdtemperature at which the gpu slows down
\fBtemp\fR:
gives the gpu current temperature
.br
\fBambient\fR:
gives current air temperature near GPU case
.br
\fBgpufreq\fR:
gives the current gpu frequency
.br

View File

@ -1660,6 +1660,7 @@
<command><option>nvidia</option></command>
<option>threshold</option>
<option>temp</option>
<option>ambient</option>
<option>gpufreq</option>
<option>memfreq</option>
<option>imagequality</option>
@ -1675,6 +1676,9 @@
<member><command>temp</command>:
gives the gpu current temperature
</member>
<member><command>ambient</command>:
gives current air temperature near GPU case
</member>
<member><command>gpufreq</command>:
gives the current gpu frequency
</member>

View File

@ -27,9 +27,16 @@
#include "nvidia.h"
const int nvidia_query_to_attr[] = {NV_CTRL_GPU_CORE_TEMPERATURE,
NV_CTRL_GPU_CORE_THRESHOLD,
NV_CTRL_AMBIENT_TEMPERATURE,
NV_CTRL_GPU_CURRENT_CLOCK_FREQS,
NV_CTRL_GPU_CURRENT_CLOCK_FREQS,
NV_CTRL_IMAGE_SETTINGS};
int get_nvidia_value(QUERY_ID qid, Display *dpy){
int tmp;
if(!XNVCTRLQueryAttribute(dpy, 0, 0, qid, &tmp)){
if(!XNVCTRLQueryAttribute(dpy, 0, 0, nvidia_query_to_attr[qid], &tmp)){
return -1;
}
/* FIXME: when are the low 2 bytes of NV_GPU_FREQ needed? */
@ -56,6 +63,10 @@ int set_nvidia_type(struct nvidia_s *nvidia, const char *arg)
else
return 1;
break;
case 'a': // ambient temp
nvidia->print_as_float = 1;
nvidia->type = NV_TEMP_AMBIENT;
break;
case 'g': // gpufreq
nvidia->type = NV_GPU_FREQ;
break;

View File

@ -33,11 +33,12 @@
#include <NVCtrl/NVCtrlLib.h>
typedef enum _QUERY_ID {
NV_TEMP = NV_CTRL_GPU_CORE_TEMPERATURE,
NV_TEMP_THRESHOLD = NV_CTRL_GPU_CORE_THRESHOLD,
NV_GPU_FREQ = NV_CTRL_GPU_CURRENT_CLOCK_FREQS,
NV_MEM_FREQ = NV_CTRL_GPU_CURRENT_CLOCK_FREQS,
NV_IMAGE_QUALITY = NV_CTRL_IMAGE_SETTINGS
NV_TEMP,
NV_TEMP_THRESHOLD,
NV_TEMP_AMBIENT,
NV_GPU_FREQ,
NV_MEM_FREQ,
NV_IMAGE_QUALITY
} QUERY_ID;
struct nvidia_s {