OK, I thought I was cool, but I'm not. When I got Xorg working, I forgot that there's a bug in sawfish that resets LD_LIBRARY_PATH and that I had a hack somewhere that was pointing apps to the old XFree86 radeon driver. So now that's fixed, and glxgears is great (and faster) and blender is happy, but fgfs has different ideas. It's obviously not using direct rendering. I'm getting about 1/3 FPS about of it, the same I get with GL_ALWAYS_INDIRECT=1.

Both glxgears and fgfs are pointing at the same libs:
 tower:jbabcock$ ldd `which fgfs`
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7fc6000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb7fb3000)
        libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0xb7ec3000)
        libglut.so.3 => /usr/lib/libglut.so.3 (0xb7e97000)
        libGLU.so.1 => /usr/local/X11R6.8/lib/libGLU.so.1 (0xb7e1d000)
        libGL.so.1 => /usr/local/X11R6.8/lib/libGL.so.1 (0xb7db1000)
        libXmu.so.6 => /usr/local/X11R6.8/lib/libXmu.so.6 (0xb7d9b000)
        libXt.so.6 => /usr/local/X11R6.8/lib/libXt.so.6 (0xb7d49000)
        libSM.so.6 => /usr/local/X11R6.8/lib/libSM.so.6 (0xb7d40000)
        libICE.so.6 => /usr/local/X11R6.8/lib/libICE.so.6 (0xb7d28000)
        libXi.so.6 => /usr/local/X11R6.8/lib/libXi.so.6 (0xb7d20000)
        libXext.so.6 => /usr/local/X11R6.8/lib/libXext.so.6 (0xb7d12000)
        libX11.so.6 => /usr/local/X11R6.8/lib/libX11.so.6 (0xb7c47000)
        libdl.so.2 => /lib/tls/libdl.so.2 (0xb7c43000)
        libopenal.so.0 => /usr/local/lib/libopenal.so.0 (0xb7bab000)
        libm.so.6 => /lib/tls/libm.so.6 (0xb7b89000)
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0xb7acf000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7ac6000)
        libc.so.6 => /lib/tls/libc.so.6 (0xb7992000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fea000)
        libartsc.so.0 => /usr/lib/libartsc.so.0 (0xb798b000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7987000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb7982000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7902000)
        libesd.so.0 => /usr/lib/libesd.so.0 (0xb78fa000)
        libaudiofile.so.0 => /usr/lib/libaudiofile.so.0 (0xb78d6000)
        libaudio.so.2 => /usr/lib/libaudio.so.2 (0xb78c0000)
        libvga.so.1 => /usr/lib/libvga.so.1 (0xb785b000)
        libaa.so.1 => /usr/lib/libaa.so.1 (0xb783f000)
        libasound.so.2 => /usr/lib/libasound.so.2 (0xb778c000)
        libXxf86vm.so.1 => /usr/local/X11R6.8/lib/libXxf86vm.so.1 (0xb7787000)
        libncurses.so.5 => /lib/libncurses.so.5 (0xb7747000)
        libslang.so.1 => /lib/libslang.so.1 (0xb76d4000)
        libgpm.so.1 => /usr/lib/libgpm.so.1 (0xb76ce000)
tower:jbabcock$ ldd `which glxgears`
        libGL.so.1 => /usr/local/X11R6.8/lib/libGL.so.1 (0xb7f7d000)
        libXp.so.6 => /usr/local/X11R6.8/lib/libXp.so.6 (0xb7f74000)
        libXext.so.6 => /usr/local/X11R6.8/lib/libXext.so.6 (0xb7f66000)
        libX11.so.6 => /usr/local/X11R6.8/lib/libX11.so.6 (0xb7e9b000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7e78000)
        libm.so.6 => /lib/tls/libm.so.6 (0xb7e56000)
        libc.so.6 => /lib/tls/libc.so.6 (0xb7d22000)
        libXxf86vm.so.1 => /usr/local/X11R6.8/lib/libXxf86vm.so.1 (0xb7d1c000)
        libdl.so.2 => /lib/tls/libdl.so.2 (0xb7d19000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fea000)

and with GL_DEBUG=verbose I can see that dri is happy and obviously using direct rendering:

tower:jbabcock$ glxgears -info
libGL: XF86DRIGetClientDriverName: 4.0.1 r200 (screen 0)
libGL: OpenDriver: trying /usr/local/X11R6.8/lib/modules/dri/r200_dri.so
drmOpenByBusid: Searching for BusID pci:0000:01:00.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 4, (OK)
drmOpenByBusid: drmOpenMinor returns 4
drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
libGL error:
Can't open configuration file /etc/drirc: No such file or directory.
libGL error:
Can't open configuration file /home/jbabcock/.drirc: No such file or directory.
GL_RENDERER = Mesa DRI R200 20040929 AGP 4x x86/MMX+/3DNow!+/SSE TCL
GL_VERSION = 1.3 Mesa 6.2.1
GL_VENDOR = Tungsten Graphics, Inc.
GL_EXTENSIONS = GL_ARB_imaging GL_ARB_multisample GL_ARB_multitexture GL_ARB_texture_border_clamp 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_texture_rectangle GL_ARB_transpose_matrix GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_window_pos GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_clip_volume_hint GL_EXT_compiled_vertex_array GL_EXT_convolution GL_EXT_copy_texture GL_EXT_draw_range_elements GL_EXT_histogram GL_EXT_packed_pixels GL_EXT_polygon_offset GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_stencil_wrap GL_EXT_subtexture GL_EXT_texture GL_EXT_texture3D 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_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_rectangle GL_EXT_vertex_array GL_APPLE_packed_pixels GL_ATI_blend_equation_separate GL_ATI_texture_env_combine3 GL_ATI_texture_mirror_once GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_INGR_blend_func_separate GL_MESA_pack_invert GL_MESA_ycbcr_texture GL_MESA_window_pos GL_NV_blend_square GL_NV_light_max_exponent GL_NV_texture_rectangle GL_NV_texgen_reflection GL_SGI_color_matrix GL_SGI_color_table GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod
8073 frames in 5.0 seconds = 1614.600 FPS

glxinfo also reports that direct rendering is enabled.

The only difference I can see with fgfs is that libGL reports
drmOpenDevice: open result is 4, (OK)
with all the apps that work, but
drmOpenDevice: open result is 7, (OK)
with fgfs. Does anyone know what the return codes for drmOpenDevice are? I can't find the documentation on the web. I don't want to have to go back to XFree86, their radeon driver causes nasty system hangs, sometimes to the point I can't even ssh in. Even when I can the kernel process table looks hosed, with many processes not responding to SIGKILL. My only other optin is fglrx, and I got rid of that because it's such a pain to use and produces all sorts of strange graphics artifacts in fg.


Flightgear-devel mailing list

Reply via email to