Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Aug 2003 17:32:19 +0100
From:      =?iso-8859-2?Q?Morgoth?= <morgothdbma@go2.pl>
To:        freebsd-questions@FreeBSD.ORG
Subject:   OpenGL problem, need HEEELP!
Message-ID:  <20030807153219.3712234319@rekin.go2.pl>

next in thread | raw e-mail | index | archive | help
	My name is Lucas Griglicki
	Address: Poland, Minsk Maz Warszawska Street 196 flat 30
	Email Address:	morgothdbma@o2.pl


I have a problem with OpenGL on FreeBSD, it cannot link
My system is:

FreeBSD starlight.morgoth.domain 5.1-RELEASE FreeBSD 5.1-RELEASE #1: Tue Jul 22 02:07:13 CEST 2003     root@starlight.morgoth.domain:/usr/src/sys/i386/compile/STARLIGHT  i386

My X Server is:


XFree86 Version 4.3.0
Release Date: 27 February 2003
X Protocol Version 11, Revision 0, Release 6.6
Build Operating System: FreeBSD 5.1 i386 [ELF] 
Build Date: 24 May 2003
	Before reporting problems, check http://www.XFree86.Org/
	to make sure that you have the latest version.
Module Loader present

My NVIDIA drivers are:

-r--r--r--  1 root  wheel  4522076 Jul 18 23:04 /data/pkgs/nvidia/nvidia_freebsd_x86_10_4365-FOR_FREEBSD51.tar.gz
/boot/kernel/nvidia.ko: ELF 32-bit LSB shared object, Intel 80386, version 1 (FreeBSD), not stripped

My hardware is:
	Athlon XP 2200+
	NVIDIA GeForce II MX 400
	DDR 512MB
	HDD 114GB

My GCC is:

gcc (GCC) 3.2.2 [FreeBSD] 20030205 (release)
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

My glxinfo output is:

name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.3
server glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig, 
    GLX_SGIX_pbuffer
client glx vendor string: NVIDIA Corporation
client glx version string: 1.3
client glx extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_visual_info, 
    GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_SGI_video_sync, 
    GLX_SGIX_swap_group, GLX_SGIX_swap_barrier, GLX_SGIX_fbconfig, 
    GLX_SGIX_pbuffer, GLX_NV_float_buffer
GLX extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig, 
    GLX_SGIX_pbuffer, GLX_ARB_get_proc_address
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce2 MX/AGP/SSE/3DNOW!
OpenGL version string: 1.4.0 NVIDIA 43.65
OpenGL extensions:
    GL_ARB_imaging, GL_ARB_multitexture, GL_ARB_point_parameters, 
    GL_ARB_texture_compression, GL_ARB_texture_cube_map, 
    GL_ARB_texture_env_add, GL_ARB_texture_env_combine, 
    GL_ARB_texture_env_dot3, GL_ARB_texture_mirrored_repeat, 
    GL_ARB_transpose_matrix, GL_ARB_vertex_buffer_object, 
    GL_ARB_vertex_program, GL_ARB_window_pos, GL_S3_s3tc, GL_EXT_abgr, 
    GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_minmax, 
    GL_EXT_blend_subtract, GL_EXT_clip_volume_hint, 
    GL_EXT_compiled_vertex_array, GL_EXT_draw_range_elements, 
    GL_EXT_fog_coord, GL_EXT_multi_draw_arrays, GL_EXT_packed_pixels, 
    GL_EXT_paletted_texture, GL_EXT_point_parameters, GL_EXT_rescale_normal, 
    GL_EXT_secondary_color, GL_EXT_separate_specular_color, 
    GL_EXT_shared_texture_palette, GL_EXT_stencil_wrap, 
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map, 
    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add, 
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, 
    GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod, 
    GL_EXT_texture_lod_bias, GL_EXT_texture_object, GL_EXT_vertex_array, 
    GL_IBM_texture_mirrored_repeat, GL_KTX_buffer_region, GL_NV_blend_square, 
    GL_NV_fence, GL_NV_fog_distance, GL_NV_light_max_exponent, 
    GL_NV_packed_depth_stencil, GL_NV_pixel_data_range, GL_NV_point_sprite, 
    GL_NV_register_combiners, GL_NV_texgen_reflection, 
    GL_NV_texture_env_combine4, GL_NV_texture_rectangle, 
    GL_NV_vertex_array_range, GL_NV_vertex_array_range2, GL_NV_vertex_program, 
    GL_NV_vertex_program1_1, GL_NVX_ycrcb, GL_SGIS_generate_mipmap, 
    GL_SGIS_multitexture, GL_SGIS_texture_lod
glu version: 1.3
glu extensions:
    GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess

   visual  x  bf lv rg d st colorbuffer ax dp st accumbuffer  ms  cav
 id dep cl sp sz l  ci b ro  r  g  b  a bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------
0x21 24 tc  0 32  0 r  y  .  8  8  8  0  0 24  8 16 16 16 16  0 0 None
0x22 24 dc  0 32  0 r  y  .  8  8  8  0  0 24  8 16 16 16 16  0 0 None
0x23 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x24 24 tc  0 32  0 r  .  .  8  8  8  0  0 24  8 16 16 16 16  0 0 None
0x25 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x26 24 tc  0 32  0 r  y  .  8  8  8  0  0 16  0 16 16 16 16  0 0 None
0x27 24 tc  0 32  0 r  y  .  8  8  8  8  0 16  0 16 16 16 16  0 0 None
0x28 24 tc  0 32  0 r  .  .  8  8  8  0  0 16  0 16 16 16 16  0 0 None
0x29 24 tc  0 32  0 r  .  .  8  8  8  8  0 16  0 16 16 16 16  0 0 None
0x2a 24 tc  0 32  0 r  y  .  8  8  8  0  0  0  0 16 16 16 16  0 0 None
0x2b 24 tc  0 32  0 r  y  .  8  8  8  8  0  0  0 16 16 16 16  0 0 None
0x2c 24 tc  0 32  0 r  .  .  8  8  8  0  0  0  0 16 16 16 16  0 0 None
0x2d 24 tc  0 32  0 r  .  .  8  8  8  8  0  0  0 16 16 16 16  0 0 None
0x2e 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x2f 24 dc  0 32  0 r  .  .  8  8  8  0  0 24  8 16 16 16 16  0 0 None
0x30 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x31 24 dc  0 32  0 r  y  .  8  8  8  0  0 16  0 16 16 16 16  0 0 None
0x32 24 dc  0 32  0 r  y  .  8  8  8  8  0 16  0 16 16 16 16  0 0 None
0x33 24 dc  0 32  0 r  .  .  8  8  8  0  0 16  0 16 16 16 16  0 0 None
0x34 24 dc  0 32  0 r  .  .  8  8  8  8  0 16  0 16 16 16 16  0 0 None
0x35 24 dc  0 32  0 r  y  .  8  8  8  0  0  0  0 16 16 16 16  0 0 None
0x36 24 dc  0 32  0 r  y  .  8  8  8  8  0  0  0 16 16 16 16  0 0 None
0x37 24 dc  0 32  0 r  .  .  8  8  8  0  0  0  0 16 16 16 16  0 0 None
0x38 24 dc  0 32  0 r  .  .  8  8  8  8  0  0  0 16 16 16 16  0 0 None

On my system works (with no problems):
	glxgears
	ut2003_demo for linux (Linux binary emulation)
	MPlayer 0.90 with -vo gl and -vo gl2

Mplayer -vo help output:

Using GNU internationalization
Original domain: messages
Original dirname: /usr/local/share/locale
Current domain: mplayer
Current dirname: /usr/local/share/locale


MPlayer 0.90rc5-3.2.2 (C) 2000-2003 Arpad Gereoffy (see DOCS)

CPU: Advanced Micro Devices Athlon 4 PM Palomino/Athlon MP Multiprocessor/Athlon XP eXtreme Performance (Family: 6, Stepping: 2)
Detected cache-line size is 64 bytes
CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE

Reading config file /usr/local/etc/mplayer/mplayer.confReading config file /root/.mplayer/config
Available video output drivers:
	xv	X11/Xv
	x11	X11 ( XImage/Shm )
	gl	X11 (OpenGL)
	gl2	X11 (OpenGL) - multiple textures version
	dga	DGA ( Direct Graphic Access V2.0 )
	sdl	SDL YUV/RGB/BGR renderer (SDL v1.1.7+ only!)
	svga	SVGAlib
	aa	AAlib
	png	PNG file
	jpeg	JPEG file
	gif89a	animated GIF output
	null	Null video output
	pgm	PGM file
	md5	MD5 sum
	mpegpes	Mpeg-PES file
	yuv4mpeg	yuv4mpeg output for mjpegtools (to "stream.yuv")
	xvidix	X11 (VIDIX)
============ My problem is: LINKING =====================

Cmdline:
	g++ -I/usr/X11R6/include -L/usr/X11R6/lib -o GLhello HELLO.C -lX11 -lglut -lGL -lGLU
Gcc Output is:

/usr/X11R6/lib/libglut.so: undefined reference to `glXBindChannelToWindowSGIX'
/usr/X11R6/lib/libglut.so: undefined reference to `glXQueryChannelDeltasSGIX'
/usr/X11R6/lib/libglut.so: undefined reference to `glXChannelRectSyncSGIX'
/usr/X11R6/lib/libglut.so: undefined reference to `glXChannelRectSGIX'
/usr/X11R6/lib/libglut.so: undefined reference to `glXQueryChannelRectSGIX'

I've tried many thing to make it work:
	1) Linked with all shared library in /usr/X11R6/lib
	2) With all posible shared library (wrote special shell-script)
	3) Read documentation (no more linking is needed, but dont work!)
	4) Grepped for any lib*[gG][lL]*[xX]*.so in my /
	5) Used /usr/X11R6/lib/modules/extensions/libglx.so.1 (more unresolved symbols)
	6) Objdum for glX*:
	CmdLine:
	objdump -t /usr/X11R6/lib/libglut.so.3 | grep glX
	Output:

00000000         *UND*	00000000 glXBindChannelToWindowSGIX
00000000         *UND*	00000000 glXCreateContextWithConfigSGIX
00000000         *UND*	00000000 glXGetFBConfigAttribSGIX
00000000         *UND*	00000000 glXQueryExtension
00000000         *UND*	00000000 glXQueryChannelDeltasSGIX
00000000         *UND*	00000000 glXMakeCurrent
00000000         *UND*	00000000 glXQueryExtensionsString
00000000         *UND*	00000000 glXChooseVisual
00000000         *UND*	00000000 glXChannelRectSyncSGIX
00000000         *UND*	00000000 glXDestroyContext
00000000         *UND*	00000000 glXChannelRectSGIX
00000000         *UND*	00000000 glXWaitX
00000000         *UND*	00000000 glXQueryVersion
00000000         *UND*	00000000 glXQueryChannelRectSGIX
00000000         *UND*	00000000 glXGetClientString
00000000         *UND*	00000000 glXGetFBConfigFromVisualSGIX
00000000         *UND*	00000000 glXIsDirect
00000000         *UND*	00000000 glXSwapBuffers
00000000         *UND*	00000000 glXCreateContext
00000000         *UND*	00000000 glXGetConfig
	needed symols are in the shared objject but in *UND* section
	So implementation is in  other library ?????
	Which one ?????????
	XOpenDisplay is also in  *UND* and implementation ins in libX11.so.6
	May I have incomplete GL ??
	Where can I find complete GL (no unresolved symbols) for FreeBSD 5.1 and NVIDIA GeForce II ?
	
	7) I cant find libglut.a in my /, IS IT PROBLEM OR NOT ?????
	8) I've made shell-script to find any lib*.so* and for each ``objdump -t'' it and grep for glX
	for file in /usr/X11R6/lib/lib*.so*; do; ls -l $file; objdump -t $file | grep glX > out 2>/dev/null; done
	9) I searched file ``out'':

lrwxr-xr-x  1 root  wheel  12 Jul 29 15:22 libglut.so -> libglut.so.3
00000000         *UND*	00000000 glXBindChannelToWindowSGIX
00000000         *UND*	00000000 glXCreateContextWithConfigSGIX
00000000         *UND*	00000000 glXGetFBConfigAttribSGIX
00000000         *UND*	00000000 glXQueryExtension
00000000         *UND*	00000000 glXQueryChannelDeltasSGIX
00000000         *UND*	00000000 glXMakeCurrent
00000000         *UND*	00000000 glXQueryExtensionsString
00000000         *UND*	00000000 glXChooseVisual
00000000         *UND*	00000000 glXChannelRectSyncSGIX
00000000         *UND*	00000000 glXDestroyContext
00000000         *UND*	00000000 glXChannelRectSGIX
00000000         *UND*	00000000 glXWaitX
00000000         *UND*	00000000 glXQueryVersion
00000000         *UND*	00000000 glXQueryChannelRectSGIX
00000000         *UND*	00000000 glXGetClientString
00000000         *UND*	00000000 glXGetFBConfigFromVisualSGIX
00000000         *UND*	00000000 glXIsDirect
00000000         *UND*	00000000 glXSwapBuffers
00000000         *UND*	00000000 glXCreateContext
00000000         *UND*	00000000 glXGetConfig
-rwxr-xr-x  1 root  wheel  301580 May 24 10:13 libglut.so.3
00000000         *UND*	00000000 glXBindChannelToWindowSGIX
00000000         *UND*	00000000 glXCreateContextWithConfigSGIX
00000000         *UND*	00000000 glXGetFBConfigAttribSGIX
00000000         *UND*	00000000 glXQueryExtension
00000000         *UND*	00000000 glXQueryChannelDeltasSGIX
00000000         *UND*	00000000 glXMakeCurrent
00000000         *UND*	00000000 glXQueryExtensionsString
00000000         *UND*	00000000 glXChooseVisual
00000000         *UND*	00000000 glXChannelRectSyncSGIX
00000000         *UND*	00000000 glXDestroyContext
00000000         *UND*	00000000 glXChannelRectSGIX
00000000         *UND*	00000000 glXWaitX
00000000         *UND*	00000000 glXQueryVersion
00000000         *UND*	00000000 glXQueryChannelRectSGIX
00000000         *UND*	00000000 glXGetClientString
00000000         *UND*	00000000 glXGetFBConfigFromVisualSGIX
00000000         *UND*	00000000 glXIsDirect
00000000         *UND*	00000000 glXSwapBuffers
00000000         *UND*	00000000 glXCreateContext
00000000         *UND*	00000000 glXGetConfig
lrwxr-xr-x  1 root  wheel  17 Jul 29 15:22 libqt-mt.so -> libqt-mt.so.3.1.2
00000000       F *UND*	00000124 glXQueryServerString
00000000       F *UND*	0000010d glXUseXFont
00000000       F *UND*	00000071 glXQueryExtension
00000000       F *UND*	000000aa glXDestroyGLXPixmap
00000000       F *UND*	0000058f glXMakeCurrent
00000000       F *UND*	000000ac glXQueryExtensionsString
00000000       F *UND*	00000ace glXChooseVisual
00000000       F *UND*	0000001c glXDestroyContext
00000000       F *UND*	000000ed glXWaitX
00000000       F *UND*	00000048 glXGetClientString
00000000       F *UND*	00000038 glXIsDirect
00000000       F *UND*	00000126 glXSwapBuffers
00000000       F *UND*	00000032 glXCreateContext
00000000       F *UND*	000001e2 glXGetConfig
00000000       F *UND*	000000d0 glXCreateGLXPixmap
lrwxr-xr-x  1 root  wheel  17 Jul 29 15:22 libqt-mt.so.3 -> libqt-mt.so.3.1.2
00000000       F *UND*	00000124 glXQueryServerString
00000000       F *UND*	0000010d glXUseXFont
00000000       F *UND*	00000071 glXQueryExtension
00000000       F *UND*	000000aa glXDestroyGLXPixmap
00000000       F *UND*	0000058f glXMakeCurrent
00000000       F *UND*	000000ac glXQueryExtensionsString
00000000       F *UND*	00000ace glXChooseVisual
00000000       F *UND*	0000001c glXDestroyContext
00000000       F *UND*	000000ed glXWaitX
00000000       F *UND*	00000048 glXGetClientString
00000000       F *UND*	00000038 glXIsDirect
00000000       F *UND*	00000126 glXSwapBuffers
00000000       F *UND*	00000032 glXCreateContext
00000000       F *UND*	000001e2 glXGetConfig
00000000       F *UND*	000000d0 glXCreateGLXPixmap
lrwxr-xr-x  1 root  wheel  17 Jul 29 15:22 libqt-mt.so.3.0 -> libqt-mt.so.3.0.5
00000000       F *UND*	00000124 glXQueryServerString
00000000       F *UND*	00000071 glXQueryExtension
00000000       F *UND*	000000aa glXDestroyGLXPixmap
00000000       F *UND*	0000058f glXMakeCurrent
00000000       F *UND*	000000ac glXQueryExtensionsString
00000000       F *UND*	00000a9a glXChooseVisual
00000000       F *UND*	0000001c glXDestroyContext
00000000       F *UND*	000000ed glXWaitX
00000000       F *UND*	00000043 glXGetClientString
00000000       F *UND*	00000038 glXIsDirect
00000000       F *UND*	00000146 glXSwapBuffers
00000000       F *UND*	00000032 glXCreateContext
00000000       F *UND*	000001e2 glXGetConfig
00000000       F *UND*	000000d0 glXCreateGLXPixmap
-rwxr-xr-x  1 root  wheel  7462481 Jan  4  2003 libqt-mt.so.3.0.5
00000000       F *UND*	00000124 glXQueryServerString
00000000       F *UND*	00000071 glXQueryExtension
00000000       F *UND*	000000aa glXDestroyGLXPixmap
00000000       F *UND*	0000058f glXMakeCurrent
00000000       F *UND*	000000ac glXQueryExtensionsString
00000000       F *UND*	00000a9a glXChooseVisual
00000000       F *UND*	0000001c glXDestroyContext
00000000       F *UND*	000000ed glXWaitX
00000000       F *UND*	00000043 glXGetClientString
00000000       F *UND*	00000038 glXIsDirect
00000000       F *UND*	00000146 glXSwapBuffers
00000000       F *UND*	00000032 glXCreateContext
00000000       F *UND*	000001e2 glXGetConfig
00000000       F *UND*	000000d0 glXCreateGLXPixmap
lrwxr-xr-x  1 root  wheel  17 Jul 29 15:22 libqt-mt.so.3.1 -> libqt-mt.so.3.1.2
00000000       F *UND*	00000124 glXQueryServerString
00000000       F *UND*	0000010d glXUseXFont
00000000       F *UND*	00000071 glXQueryExtension
00000000       F *UND*	000000aa glXDestroyGLXPixmap
00000000       F *UND*	0000058f glXMakeCurrent
00000000       F *UND*	000000ac glXQueryExtensionsString
00000000       F *UND*	00000ace glXChooseVisual
00000000       F *UND*	0000001c glXDestroyContext
00000000       F *UND*	000000ed glXWaitX
00000000       F *UND*	00000048 glXGetClientString
00000000       F *UND*	00000038 glXIsDirect
00000000       F *UND*	00000126 glXSwapBuffers
00000000       F *UND*	00000032 glXCreateContext
00000000       F *UND*	000001e2 glXGetConfig
00000000       F *UND*	000000d0 glXCreateGLXPixmap
-rwxr-xr-x  1 root  wheel  7805717 May 24 17:29 libqt-mt.so.3.1.2
00000000       F *UND*	00000124 glXQueryServerString
00000000       F *UND*	0000010d glXUseXFont
00000000       F *UND*	00000071 glXQueryExtension
00000000       F *UND*	000000aa glXDestroyGLXPixmap
00000000       F *UND*	0000058f glXMakeCurrent
00000000       F *UND*	000000ac glXQueryExtensionsString
00000000       F *UND*	00000ace glXChooseVisual
00000000       F *UND*	0000001c glXDestroyContext
00000000       F *UND*	000000ed glXWaitX
00000000       F *UND*	00000048 glXGetClientString
00000000       F *UND*	00000038 glXIsDirect
00000000       F *UND*	00000126 glXSwapBuffers
00000000       F *UND*	00000032 glXCreateContext
00000000       F *UND*	000001e2 glXGetConfig
00000000       F *UND*	000000d0 glXCreateGLXPixmap

	All needed functions are in *UND* section, I cant find IMPLEMENTATION

	IS IT SOMEWHERE IS DEVICE-DRIVER ???? (nvidia.ko) ? (couldn't grep any glX symbol in it)

	Can somebody halp me?

Here is my HELLO.C file:



#include <GL/glut.h>

void display(void)
{
   glClear (GL_COLOR_BUFFER_BIT);
   glColor3f (1.0, 1.0, 1.0);
   glBegin(GL_POLYGON);
      glVertex3f (0.25, 0.25, 0.0);
      glVertex3f (0.75, 0.25, 0.0);
      glVertex3f (0.75, 0.75, 0.0);
      glVertex3f (0.25, 0.75, 0.0);
   glEnd();
   glFlush ();
}

void init (void) 
{
   glClearColor (0.0, 0.0, 0.0, 0.0);
   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();
   glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
int main(int argc, char** argv)
{
   glutInit(&argc, argv);
   glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
   glutInitWindowSize (250, 250); 
   glutInitWindowPosition (100, 100);
   glutCreateWindow ("hello");
   init ();
   glutDisplayFunc(display); 
   glutMainLoop();
   return 0;   /* ANSI C requires main to return int. */
}

========================= EOF =========================

If it matters, this is my AS version:

GNU assembler 2.13.2 [FreeBSD] 2002-11-27
Copyright 2002 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License.  This program has absolutely no warranty.
This assembler was configured for a target of `i386-obrien-freebsd5.0'.



	My name is Lucas Griglicki
	Address: Poland, Minsk Maz Warszawska Street 196 flat 30
	Email Address:	morgothdbma@o2.pl


	Please help me, I want to write some funny programs using OpenGL
	Any sugestions, doc please sent to my e-mail

	Thank You very very much for help

	Morgoth DBMA

Written in VIM 6.1




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030807153219.3712234319>