* 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
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‐
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
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
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.
\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
<command><option>nvidia</option></command>
<option>threshold</option>
<option>temp</option>
+ <option>ambient</option>
<option>gpufreq</option>
<option>memfreq</option>
<option>imagequality</option>
<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>
#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? */
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;
#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 {