Hey all,
I've now got time to revisit this issue.
#1. I've changed to the (binary blob from nvidia) that is included in the non-free repos because I'm tired of the stupid manual installation that needs to be done every time I update a machine. I must have run that *$#%*#$ installer 100 times and wasted hours of my life. So I switched to the one in the repo that will just work with debian out of the box. Only issue is its a slightly older version (87xx) rather than (97xx) but I was using gem user the 87xx series for ages without issues.
I have not had any issues with those older drivers, and in fact before I gave up the annoyance of the nvidia installer I was using the very same driver version, just through the manual installer.
so to clarify I *AM* using the nvidia binary driver, just the ones made debian friendly in their repos:
http://packages.debian.org/testing/x11/nvidia-glx-dev
which provides all this stuff:
/. /usr /usr/bin /usr/bin/nvidia-bug-report.sh /usr/lib /usr/lib/xorg /usr/lib/xorg/modules /usr/lib/xorg/modules/drivers /usr/lib/xorg/modules/drivers/nvidia_drv.o /usr/lib/xorg/modules/extensions /usr/lib/xorg/modules/extensions/libglx.so.1.0.8776 /usr/lib/tls /usr/lib/nvidia /usr/lib/nvidia/libnvidia-tls.so.1.0.8776 /usr/lib/nvidia/libnvidia-cfg.so.1.0.8776 /usr/lib/nvidia/tls_test /usr/lib/nvidia/tls_test_dso.so /usr/lib/libXvMCNVIDIA.so.1.0.8776 /usr/lib/libGL.so.1.0.8776 /usr/lib/libGLcore.so.1.0.8776 /usr/lib/libnvidia-tls.so.1.0.8776 /usr/share /usr/share/lintian /usr/share/lintian/overrides /usr/share/lintian/overrides/nvidia-glx /usr/share/bug /usr/share/bug/nvidia-glx /usr/share/bug/nvidia-glx/script /usr/share/doc /usr/share/doc/nvidia-glx /usr/share/doc/nvidia-glx/README.Debian /usr/share/doc/nvidia-glx/copyright /usr/share/doc/nvidia-glx/examples /usr/share/doc/nvidia-glx/examples/XF86Config.sample.gz /usr/share/doc/nvidia-glx/changelog.Debian.gz /usr/share/doc/nvidia-glx/NEWS.Debian.gz /usr/share/doc/nvidia-glx/NVIDIA_Changelog.gz /usr/share/doc/nvidia-glx/README.txt.gz /etc /etc/default /etc/default/nvidia-glx /etc/init.d /etc/init.d/nvidia-glx /usr/lib/xorg/modules/extensions/libglx.so package diverts others to: /usr/lib/nvidia/libglx.so.xlibmesa /usr/lib/libXvMCNVIDIA_dynamic.so.1 /usr/lib/libXvMCNVIDIA.so.1 /usr/lib/libnvidia-tls.so.1 /usr/lib/libGLcore.so.1 /usr/lib/libGL.so.1 package diverts others to: /usr/lib/nvidia/libGL.so.1.xlibmesa
I confirmed that the GL headers I'm compiling against are provided by nvidia, not mesa:
glext.h:
#ifndef __glext_h_ #define __glext_h_
#ifdef __cplusplus extern "C" { #endif
/******************************************************************************
Copyright NVIDIA Corporation 2005 ...
and glext.h does include glUniform2i:
GLAPI void APIENTRY glUniform2i (GLint, GLint, GLint);
I'm sure I'm compiling against those headers, because they are located in /usr/include/GL and the mesa headers have been renamed.
I can see that glext.h provides the declaration for glUniform2i, but what library is supposed to contain that symbol? nm says all the nvidia provided libs "contain no symbols"
too add insult to injury I have GEM working on an almost identical machine at school with the same version of the nvidia driver from the debian repo. If I try and load the binary built on that machine here I get glUniform4iARB is unresolved. (which is defined in the same glext.h header (the same one on both machines also)
So it seams the binaries are not inline with the headers, so I have to figure out what is different about the two machines. (in terms of GL binary libs) after another hour of digging I can't tell what is the difference between the two machines, my machine has /usr/lib/libGL.a (which is supposedly provided by a debian package that I don't have installed) but renaming it made no difference.
I've attached my ./configure from both machines, which are pretty well identical. And here are the GL packages installed on both:
bbogart@sr-01499:~$ dpkg -l "*mesa*" | grep ^ii ii libgl1-mesa-dri 6.5.1-0.6 A free implementation of the OpenGL API -- D ii libgl1-mesa-glx 6.5.1-0.6 A free implementation of the OpenGL API -- G ii libglu1-mesa 6.5.1-0.6 The OpenGL utility library (GLU) ii libglu1-mesa-dev 6.5.1-0.6 The OpenGL utility library -- development su ii mesa-utils 6.3.2-2.1 Miscellaneous Mesa GL utilities
bbogart@insitu:~$ dpkg -l "*mesa*" | grep ^ii ii libgl1-mesa-dri 6.5.1-0.6 A free implementation of the OpenGL API -- D ii libgl1-mesa-glx 6.5.1-0.6 A free implementation of the OpenGL API -- G ii libglu1-mesa 6.5.1-0.6 The OpenGL utility library (GLU) ii libglu1-mesa-dev 6.5.1-0.6 The OpenGL utility library -- development su ii mesa-utils 6.3.2-2.1 Miscellaneous Mesa GL utilities
bbogart@sr-01499:~$ dpkg -l "*nvidia*" | grep ^ii ii nvidia-glx 1.0.8776-4 NVIDIA binary XFree86 4.x driver ii nvidia-glx-dev 1.0.8776-4 NVIDIA binary XFree86 4.x / Xorg driver deve ii nvidia-kernel-2.6.18-4-486 1.0.8776+6 NVIDIA binary kernel module for Linux 2.6.18 ii nvidia-kernel-2.6.18-4-686 1.0.8776+6 NVIDIA binary kernel module for Linux 2.6.18 ii nvidia-kernel-common 20051028+1 NVIDIA binary kernel module common files ii nvidia-settings 1.0+20060516-3 Tool of configuring the NVIDIA graphics driv
bbogart@insitu:~$ dpkg -l "*nvidia*" | grep ^ii ii nvidia-glx 1.0.8776-4 NVIDIA binary XFree86 4.x driver ii nvidia-glx-dev 1.0.8776-4 NVIDIA binary XFree86 4.x / Xorg driver deve ii nvidia-kernel-2.6.18-4-686 1.0.8776+6 NVIDIA binary kernel module for Linux 2.6.18 ii nvidia-kernel-common 20051028+1 NVIDIA binary kernel module common files ii nvidia-kernel-source 1.0.8776-4 NVIDIA binary kernel module source
both machines are up to date etch's as of today...
I don't get it...
.b.
chris clepper wrote:
On 1/26/07, *B. Bogart* <ben@ekran.org mailto:ben@ekran.org> wrote:
Hey all, I changed from nvidia's binary driver to the one in the etch repo (8776).
Why? Only the Nvidia binary actually uses the GPU for rendering.
Gem compiles (anon cvs update from today), but PD wont load it: /usr/lib/pd/extra/Gem.pd_linux: /usr/lib/pd/extra/Gem.pd_linux: undefined symbol: glUniform2i
This was covered in the two previous postings to this list. You need non busted drivers with OpenGL 2.0 support. The NV binaries certainly work.
checking for Base/configLinux.h.in... yes checking for g++... g++ checking for C++ compiler default output file name... a.out checking whether the C++ compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether compiler accepts "-fPIC"... yes building Gem with Controls-objects building Gem with Geos-objects building Gem with Manips-objects building Gem with Nongeos-objects building Gem with Particles-objects building Gem with Pixes-objects building Gem with openGL-objects building Gem without Vertex-objects checking for sin in -lm... yes checking for main in -lz... yes checking for dlopen in -ldl... yes checking how to run the C++ preprocessor... g++ -E checking for X... libraries , headers checking for gethostbyname... yes checking for connect... yes checking for remove... yes checking for shmat... yes checking for IceConnectionNumber in -lICE... yes checking for main in -lX11... yes checking for main in -lXext... yes checking for XF86VidModeGetAllModeLines in -lXxf86vm... no checking for main in -lXext... (cached) yes checking for "OpenGL"-framework... no checking for glInitNames in -lGL... yes checking for gluLookAt in -lGLU... yes checking for "AGL"-framework... no checking for "Carbon"-framework... no checking for "QuickTime"-framework... no checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for PKG_TIFF_CFLAGS... checking for PKG_TIFF_LIBS... checking for tiff-config... no checking for TIFFOpen in -ltiff... yes checking for PKG_JPEG_CFLAGS... checking for PKG_JPEG_LIBS... checking for jpeg-config... no checking for jpeg_read_header in -ljpeg... yes checking for PKG_LIBQUICKTIME_CFLAGS... -I/usr/include/lqt checking for PKG_LIBQUICKTIME_LIBS... -lquicktime -lpthread -lm -lz -ldl checking for PKG_LQT_CFLAGS... checking for PKG_LQT_LIBS... checking for lqt-config... yes checking for PKG_MPEG3_CFLAGS... checking for PKG_MPEG3_LIBS... checking for mpeg3-config... no checking for mpeg3_check_sig in -lmpeg3... yes checking for PKG_MPEG_CFLAGS... checking for PKG_MPEG_LIBS... checking for mpeg-config... no checking for OpenMPEG in -lmpeg... no checking for PKG_AVIFILE_CFLAGS... -I/usr/include/avifile-0.7 checking for PKG_AVIFILE_LIBS... -laviplay checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking linux/videodev.h usability... yes checking linux/videodev.h presence... yes checking for linux/videodev.h... yes checking for PKG_IEEE1394_CFLAGS... checking for PKG_IEEE1394_LIBS... checking for ieee1394-config... no checking for main in -ldv... yes checking whether linker accepts "-lGLU -lGL -lfreetype -lz -lftgl_pic "... yes checking for PKG_FTGL_CFLAGS... -I/usr/include/FTGL -I/usr/include/freetype2 checking for PKG_FTGL_LIBS... -lGLU -lGL -lfreetype -lz -lftgl_pic checking for PKG_ARTOOLKIT_CFLAGS... checking for PKG_ARTOOLKIT_LIBS... checking for artoolkit-config... no checking for arInitCparam in -lAR... no checking for pthread_create in -lpthread... yes checking for X... libraries , headers checking for ANSI C header files... (cached) yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking float.h usability... yes checking float.h presence... yes checking for float.h... yes checking for memory.h... (cached) yes checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking for strings.h... (cached) yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking termios.h usability... yes checking termios.h presence... yes checking for termios.h... yes checking for unistd.h... (cached) yes checking for stdbool.h that conforms to C99... yes checking for _Bool... no checking for an ANSI C-conforming const... yes checking for inline... inline checking for size_t... yes checking whether time.h and sys/time.h may both be included... yes checking for GLsizeiptrARB... yes checking for unsigned int... yes checking size of unsigned int... 4 checking for void *... yes checking size of void *... 4 checking for error_at_line... yes checking for pid_t... yes checking vfork.h usability... no checking vfork.h presence... no checking for vfork.h... no checking for fork... yes checking for vfork... yes checking for working fork... yes checking for working vfork... (cached) yes checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking for stdlib.h... (cached) yes checking for unistd.h... (cached) yes checking for getpagesize... yes checking for working mmap... yes checking for bzero... yes checking for floor... yes checking for gettimeofday... yes checking for memset... yes checking for munmap... yes checking for pow... yes checking for sqrt... yes checking for strchr... yes checking for strdup... yes checking for strrchr... yes checking for strstr... yes checking for lqt_add_video_track... yes checking for glBindProgramARB... yes checking for glBindProgramNV... yes checking m_pd.h usability... yes checking m_pd.h presence... yes checking for m_pd.h... yes checking whether compiler accepts "-freg-struct-return"... yes enabling "register struct return" allows to make use of FreeFrame-effects without recompiling them might break things, if you are using several different compilers checking whether compiler accepts "-O3"... yes checking whether compiler accepts "-falign-loops=32 -falign-functions=32 -falign-jumps=32 -funroll-loops"... yes checking whether compiler accepts "-ffast-math"... yes checking whether compiler accepts "-mmmx"... yes checking whether compiler accepts "-msse2"... yes checking whether compiler accepts "-fpascal-strings"... no checking whether linker accepts "-shared -Wl,-export-dynamic"... yes checking whether linker accepts "-dynamiclib -mmacosx-version-min=10.3 -undefined dynamic_lookup"... no checking whether linker accepts "-bundle -undefined suppress -flat_namespace"... no checking for strip... strip checking if strip is GNU strip... yes checking for dos2unix... no configure: creating ./config.status config.status: creating Make.config config.status: creating Base/configLinux.h
Result: Target : Gem.pd_linux Objects : Base Controls Geos Manips Nongeos Particles Pixes openGL
Configuration: Compiler : g++ CXXFLAGS : -g -O2 -fPIC -freg-struct-return -O3 -falign-loops=32 -falign-functions=32 -falign-jumps=32 -funroll-loops -ffast-math -mmmx -msse2 : -I/usr/include/lqt -I/usr/include/lqt -I/usr/include/avifile-0.7 -I/usr/include/FTGL -I/usr/include/freetype2 INCLUDES : -I/usr/include/FTGL -I/usr/include/freetype2 DEFINES :
LIBS : -ldv -lmpeg3 -ljpeg -ltiff -lGLU -lGL -lXext -lXext -lX11 -ldl -lz -lm -lpthread : -lGLU -lGL -lfreetype -lz -lftgl_pic -laviplay -L/usr/lib -lquicktime -lpthread -lm -lz -ldl -lquicktime -lpthread -lm -lz -ldl LDFLAGS : -shared -Wl,-export-dynamic -lGLU -lGL -lfreetype -lz -lftgl_pic :
Strip : strip --strip-unneeded
Install path : /usr/
pure-data: version : 0.39
openGL : using version : (default) using ARB-extensions : yes using NV-extensions : yes
used optional libraries:
font-rendering : FTGL
image-support use ImageMagick : no (forced) use TIFF : yes use JPEG : yes video-support use mpeg : no use mpeg-3 : yes use QuickTime : yes use aviplay : yes use ffmpeg : no (forced) input-support use v4l : yes use ieee1394 : yes
misc using ARB-extensions : yes
Now run make ...
checking for Base/configLinux.h.in... yes checking for g++... g++ checking for C++ compiler default output file name... a.out checking whether the C++ compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether compiler accepts "-fPIC"... yes building Gem with Controls-objects building Gem with Geos-objects building Gem with Manips-objects building Gem with Nongeos-objects building Gem with Particles-objects building Gem with Pixes-objects building Gem with openGL-objects building Gem without Vertex-objects checking for sin in -lm... yes checking for main in -lz... yes checking for dlopen in -ldl... yes checking how to run the C++ preprocessor... g++ -E checking for X... libraries , headers checking for gethostbyname... yes checking for connect... yes checking for remove... yes checking for shmat... yes checking for IceConnectionNumber in -lICE... yes checking for main in -lX11... yes checking for main in -lXext... yes checking for XF86VidModeGetAllModeLines in -lXxf86vm... yes checking for main in -lXext... (cached) yes checking for "OpenGL"-framework... no checking for glInitNames in -lGL... yes checking for gluLookAt in -lGLU... yes checking for "AGL"-framework... no checking for "Carbon"-framework... no checking for "QuickTime"-framework... no checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for PKG_TIFF_CFLAGS... checking for PKG_TIFF_LIBS... checking for tiff-config... no checking for TIFFOpen in -ltiff... yes checking for PKG_JPEG_CFLAGS... checking for PKG_JPEG_LIBS... checking for jpeg-config... no checking for jpeg_read_header in -ljpeg... yes checking for PKG_LIBQUICKTIME_CFLAGS... -I/usr/include/lqt checking for PKG_LIBQUICKTIME_LIBS... -lquicktime -lpthread -lm -lz -ldl checking for PKG_LQT_CFLAGS... checking for PKG_LQT_LIBS... checking for lqt-config... yes checking for PKG_MPEG3_CFLAGS... checking for PKG_MPEG3_LIBS... checking for mpeg3-config... no checking for mpeg3_check_sig in -lmpeg3... yes checking for PKG_MPEG_CFLAGS... checking for PKG_MPEG_LIBS... checking for mpeg-config... no checking for OpenMPEG in -lmpeg... yes checking for PKG_AVIFILE_CFLAGS... -I/usr/include/avifile-0.7 checking for PKG_AVIFILE_LIBS... -laviplay checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking linux/videodev.h usability... yes checking linux/videodev.h presence... yes checking for linux/videodev.h... yes checking for PKG_IEEE1394_CFLAGS... checking for PKG_IEEE1394_LIBS... checking for ieee1394-config... no checking for main in -ldv... yes checking whether linker accepts "-lGLU -lGL -lfreetype -lz -lftgl_pic "... yes checking for PKG_FTGL_CFLAGS... -I/usr/include/FTGL -I/usr/include/freetype2 checking for PKG_FTGL_LIBS... -lGLU -lGL -lfreetype -lz -lftgl_pic checking for PKG_ARTOOLKIT_CFLAGS... checking for PKG_ARTOOLKIT_LIBS... checking for artoolkit-config... no checking for arInitCparam in -lAR... no checking for pthread_create in -lpthread... yes checking for X... libraries , headers checking for ANSI C header files... (cached) yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking float.h usability... yes checking float.h presence... yes checking for float.h... yes checking for memory.h... (cached) yes checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking for strings.h... (cached) yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking termios.h usability... yes checking termios.h presence... yes checking for termios.h... yes checking for unistd.h... (cached) yes checking for stdbool.h that conforms to C99... yes checking for _Bool... no checking for an ANSI C-conforming const... yes checking for inline... inline checking for size_t... yes checking whether time.h and sys/time.h may both be included... yes checking for GLsizeiptrARB... yes checking for unsigned int... yes checking size of unsigned int... 4 checking for void *... yes checking size of void *... 4 checking for error_at_line... yes checking for pid_t... yes checking vfork.h usability... no checking vfork.h presence... no checking for vfork.h... no checking for fork... yes checking for vfork... yes checking for working fork... yes checking for working vfork... (cached) yes checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking for stdlib.h... (cached) yes checking for unistd.h... (cached) yes checking for getpagesize... yes checking for working mmap... yes checking for bzero... yes checking for floor... yes checking for gettimeofday... yes checking for memset... yes checking for munmap... yes checking for pow... yes checking for sqrt... yes checking for strchr... yes checking for strdup... yes checking for strrchr... yes checking for strstr... yes checking for lqt_add_video_track... yes checking for glBindProgramARB... yes checking for glBindProgramNV... yes checking m_pd.h usability... yes checking m_pd.h presence... yes checking for m_pd.h... yes checking whether compiler accepts "-freg-struct-return"... yes enabling "register struct return" allows to make use of FreeFrame-effects without recompiling them might break things, if you are using several different compilers checking whether compiler accepts "-O3"... yes checking whether compiler accepts "-falign-loops=32 -falign-functions=32 -falign-jumps=32 -funroll-loops"... yes checking whether compiler accepts "-ffast-math"... yes checking whether compiler accepts "-mmmx"... yes checking whether compiler accepts "-msse2"... yes checking whether compiler accepts "-fpascal-strings"... no checking whether linker accepts "-shared -Wl,-export-dynamic"... yes checking whether linker accepts "-dynamiclib -mmacosx-version-min=10.3 -undefined dynamic_lookup"... no checking whether linker accepts "-bundle -undefined suppress -flat_namespace"... no checking for strip... strip checking if strip is GNU strip... yes checking for dos2unix... no configure: creating ./config.status config.status: creating Make.config config.status: creating Base/configLinux.h config.status: Base/configLinux.h is unchanged
Result: Target : Gem.pd_linux Objects : Base Controls Geos Manips Nongeos Particles Pixes openGL
Configuration: Compiler : g++ CXXFLAGS : -g -O2 -fPIC -freg-struct-return -O3 -falign-loops=32 -falign-functions=32 -falign-jumps=32 -funroll-loops -ffast-math -mmmx -msse2 : -I/usr/include/lqt -I/usr/include/lqt -I/usr/include/avifile-0.7 -I/usr/include/FTGL -I/usr/include/freetype2 INCLUDES : -I/usr/include/FTGL -I/usr/include/freetype2 DEFINES :
LIBS : -ldv -lmpeg -lmpeg3 -ljpeg -ltiff -lGLU -lGL -lXext -lXxf86vm -lXext -lX11 -ldl -lz -lm -lpthread : -lGLU -lGL -lfreetype -lz -lftgl_pic -laviplay -L/usr/lib -lquicktime -lpthread -lm -lz -ldl -lquicktime -lpthread -lm -lz -ldl LDFLAGS : -shared -Wl,-export-dynamic -lGLU -lGL -lfreetype -lz -lftgl_pic :
Strip : strip --strip-unneeded
Install path : /usr/
pure-data: version : 0.39
openGL : using version : (default) using ARB-extensions : yes using NV-extensions : yes
used optional libraries:
font-rendering : FTGL
image-support use ImageMagick : no (forced) use TIFF : yes use JPEG : yes video-support use mpeg : yes use mpeg-3 : yes use QuickTime : yes use aviplay : yes use ffmpeg : no (forced) input-support use v4l : yes use ieee1394 : yes
misc using ARB-extensions : yes
Now run make ...