I've just tested stock Ubuntu mesa with the X drivers from your PPA, and it hasn't produced a crash yet, so it seems it's mesa git that is the cause of this.![]()
Using this PPA (I just updating the packages less than an hour ago) with kernel 3.3.0-rc5 on amd64, I'm getting a segfault in doom3 (I get the same thing in quake4). Am I doing something really bone-headed here to cause this?
Here's some of my info (I get the same issue with OpenGL2.1 too):
glxinfo | grep -i opengl
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD RV770
OpenGL version string: 3.0 Mesa 8.1-devel (git-c5e6460 oneiric-oibaf-ppa)
OpenGL shading language version string: 1.30
OpenGL extensions
DOOM 1.3.1.1304 linux-x86 Jan 16 2007 21:58:02
found interface lo - loopback
found interface wlan0 - 172.16.0.10/255.240.0.0
------ Initializing File System ------
Loaded pk4 /usr/local/games/doom3/base/game00.pk4 with checksum 0xf07eb555
Loaded pk4 /usr/local/games/doom3/base/game01.pk4 with checksum 0x51c6981f
Loaded pk4 /usr/local/games/doom3/base/game02.pk4 with checksum 0xf3ec6f7
Loaded pk4 /usr/local/games/doom3/base/game03.pk4 with checksum 0x5d4230ea
Loaded pk4 /usr/local/games/doom3/base/pak000.pk4 with checksum 0x28d208f1
Loaded pk4 /usr/local/games/doom3/base/pak001.pk4 with checksum 0x40244be0
Loaded pk4 /usr/local/games/doom3/base/pak002.pk4 with checksum 0xc51ecdcd
Loaded pk4 /usr/local/games/doom3/base/pak003.pk4 with checksum 0xcd79d028
Loaded pk4 /usr/local/games/doom3/base/pak004.pk4 with checksum 0x765e4f8b
Loaded pk4 /usr/local/games/doom3/base/pak005.pk4 with checksum 0x8ffc3621
Loaded pk4 /usr/local/games/doom3/base/pak006.pk4 with checksum 0x95b65ab
Loaded pk4 /usr/local/games/doom3/base/pak007.pk4 with checksum 0x666bdb3c
Loaded pk4 /usr/local/games/doom3/base/pak008.pk4 with checksum 0x23ae5993
Current search path:
/home/hiryu/.doom3/base
/usr/local/games/doom3/base
/usr/local/games/doom3/base/pak008.pk4 (3 files)
/usr/local/games/doom3/base/pak007.pk4 (38 files)
/usr/local/games/doom3/base/pak006.pk4 (48 files)
/usr/local/games/doom3/base/pak005.pk4 (63 files)
/usr/local/games/doom3/base/pak004.pk4 (5137 files)
/usr/local/games/doom3/base/pak003.pk4 (4676 files)
/usr/local/games/doom3/base/pak002.pk4 (6120 files)
/usr/local/games/doom3/base/pak001.pk4 (8972 files)
/usr/local/games/doom3/base/pak000.pk4 (2698 files)
/usr/local/games/doom3/base/game03.pk4 (2 files)
/usr/local/games/doom3/base/game02.pk4 (2 files)
/usr/local/games/doom3/base/game01.pk4 (2 files)
/usr/local/games/doom3/base/game00.pk4 (2 files)
game DLL: 0x0 in pak: 0x0
Addon pk4s:
file system initialized.
--------------------------------------
----- Initializing Decls -----
------------------------------
------- Initializing renderSystem --------
using ARB renderSystem
renderSystem initialized.
--------------------------------------
5206 strings read from strings/english.lang
Couldn't open journal files
execing editor.cfg
execing default.cfg
couldn't exec DoomConfig.cfg
couldn't exec autoexec.cfg
5206 strings read from strings/english.lang
----- Initializing Sound System ------
sound system initialized.
--------------------------------------
----- R_InitOpenGL -----
Setup X display connection
dlopen(libGL.so.1)
Initializing OpenGL display
Using XFree86-VidModeExtension Version 2.2
DGA DirectVideo Mouse (Version 2.0) initialized
Free86-VidModeExtension Activated at 640x480
libGL error: failed to load driver: r600
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
libGL error: failed to load driver: swrast
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
Using 8/8/8 Color bits, 8 Alpha bits, 24 depth, 8 stencil display.
GL_RENDERER: Gallium 0.4 on AMD RV770
GL_EXTENSIONS: GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_shadow 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_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_transpose_matrix 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_copy_texture GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_object GL_EXT_multi_draw_arrays GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_polygon_offset GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_subtexture GL_EXT_texture GL_EXT_texture3D GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc 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_draw_buffers GL_ATI_texture_env_combine3 GL_ATI_texture_mirror_once GL_ATIX_texture_env_combine3 GL_IBM_texture_mirrored_repeat GL_INGR_blend_func_separate GL_MESA_pack_invert GL_NV_blend_square GL_NV_depth_clamp GL_NV_fog_distance GL_NV_light_max_exponent GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_NV_texture_rectangle GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SUN_multi_draw_arrays
------- Input Initialization -------
XKB extension: compile time 0x1:0x0, runtime 0x1:0x0: OK
XKB extension present on server ( 0x1:0x0 )
------------------------------------
dlopen(libasound.so.2)
asoundlib version: 1.0.24.1
Alsa is available
------ Alsa Sound Initialization -----
opened Alsa PCM device default for playback
device buffer size: 5461 frames ( 21844 bytes )
allocated a mix buffer of 16384 bytes
--------------------------------------
...using GL_ARB_multitexture
...using GL_ARB_texture_env_combine
...using GL_ARB_texture_cube_map
...using GL_ARB_texture_env_dot3
...using GL_ARB_texture_env_add
...using GL_ARB_texture_non_power_of_two
...using GL_ARB_texture_compression
...using GL_EXT_texture_compression_s3tc
...using GL_EXT_texture_filter_anisotropic
maxTextureAnisotropy: 16.000000
...using GL_EXT_texture_lod
...using GL_1.4_texture_lod_bias
X..GL_EXT_shared_texture_palette not found
...using GL_EXT_texture3D
...using GL_EXT_stencil_wrap
X..GL_NV_register_combiners not found
...using GL_EXT_stencil_two_side
X..GL_ATI_fragment_shader not found
X..GL_ATI_text_fragment_shader not found
X..GL_ARB_vertex_buffer_object not found
...using GL_ARB_vertex_program
...using GL_ARB_fragment_program
X..EXT_depth_bounds_test not found
---------- R_NV20_Init ----------
Not available.
----------- R200_Init -----------
Not available.
---------- R_ARB2_Init ----------
Available.
---------------------------------
----- R_ReloadARBPrograms -----
glprogs/test.vfpsignal caught: Segmentation fault
si_code 1
Trying to exit gracefully..
Shutting down sound hardware
----------- Alsa Shutdown ------------
close pcm
dlclose
--------------------------------------
idRenderSystem::Shutdown()
Something is screwed up on your system:
(Don't just post the log, read it!)Code:libGL error: failed to load driver: r600 libGL error: Try again with LIBGL_DEBUG=verbose for more details. libGL error: failed to load driver: swrast libGL error: Try again with LIBGL_DEBUG=verbose for more details.
Whoops! Not sure how I missed that, but good catch!
Seems something is broken with libstdc++. I'm using libstdc++:i386, libllvm2.9:i386, and ia32-libs from the standard ubuntu repos (12.04).
Here's what verbose tells me:
libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri/tls/r600_dri.so
libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri/r600_dri.so
libGL error: dlopen /usr/lib/i386-linux-gnu/dri/r600_dri.so failed (libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/lib/i386-linux-gnu/libLLVM-2.9.so.1))
libGL: OpenDriver: trying /usr/lib/dri/tls/r600_dri.so
libGL: OpenDriver: trying /usr/lib/dri/r600_dri.so
libGL error: dlopen /usr/lib/dri/r600_dri.so failed (/usr/lib/dri/r600_dri.so: cannot open shared object file: No such file or directory)
libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri-alternates/tls/r600_dri.so
libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri-alternates/r600_dri.so
libGL error: dlopen /usr/lib/i386-linux-gnu/dri-alternates/r600_dri.so failed (/usr/lib/i386-linux-gnu/dri-alternates/r600_dri.so: cannot open shared object file: No such file or directory)
libGL: OpenDriver: trying /usr/lib/dri-alternates/tls/r600_dri.so
libGL: OpenDriver: trying /usr/lib/dri-alternates/r600_dri.so
libGL error: dlopen /usr/lib/dri-alternates/r600_dri.so failed (/usr/lib/dri-alternates/r600_dri.so: cannot open shared object file: No such file or directory)
libGL: OpenDriver: trying /usr/lib32/dri/tls/r600_dri.so
libGL: OpenDriver: trying /usr/lib32/dri/r600_dri.so
libGL error: dlopen /usr/lib32/dri/r600_dri.so failed (libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/lib/i386-linux-gnu/libLLVM-2.9.so.1))
libGL: OpenDriver: trying /usr/lib32/dri-alternates/tls/r600_dri.so
libGL: OpenDriver: trying /usr/lib32/dri-alternates/r600_dri.so
libGL error: dlopen /usr/lib32/dri-alternates/r600_dri.so failed (/usr/lib32/dri-alternates/r600_dri.so: cannot open shared object file: No such file or directory)
libGL error: unable to load driver: r600_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: r600
libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri/swrast_dri.so
libGL error: dlopen /usr/lib/i386-linux-gnu/dri/swrast_dri.so failed (libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/lib/i386-linux-gnu/libLLVM-2.9.so.1))
libGL: OpenDriver: trying /usr/lib/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/dri/swrast_dri.so
libGL error: dlopen /usr/lib/dri/swrast_dri.so failed (/usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory)
libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri-alternates/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri-alternates/swrast_dri.so
libGL error: dlopen /usr/lib/i386-linux-gnu/dri-alternates/swrast_dri.so failed (/usr/lib/i386-linux-gnu/dri-alternates/swrast_dri.so: cannot open shared object file: No such file or directory)
libGL: OpenDriver: trying /usr/lib/dri-alternates/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/dri-alternates/swrast_dri.so
libGL error: dlopen /usr/lib/dri-alternates/swrast_dri.so failed (/usr/lib/dri-alternates/swrast_dri.so: cannot open shared object file: No such file or directory)
libGL: OpenDriver: trying /usr/lib32/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib32/dri/swrast_dri.so
libGL error: dlopen /usr/lib32/dri/swrast_dri.so failed (/usr/lib32/dri/swrast_dri.so: undefined symbol: _mesa_meta_CopyColorTable)
libGL: OpenDriver: trying /usr/lib32/dri-alternates/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib32/dri-alternates/swrast_dri.so
libGL error: dlopen /usr/lib32/dri-alternates/swrast_dri.so failed (/usr/lib32/dri-alternates/swrast_dri.so: cannot open shared object file: No such file or directory)
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
I'll look into this issue further in a little while once I have a window of free time.
Finally had some time to look at this..
There are 2 libstdc++.so.6 files on the system:
/usr/lib/i386-linux-gnu/libstdc++.so.6 (belongs to package libstdc++6:i386)
/usr/lib32/libstdc++.so.6 (belongs to package lib32stdc++6)
By default, applications are looking in /usr/lib32 for libraries, so I tried:
LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu:/usr/lib32 doom3
This fixed the issue and doom3 started right up. For the most part, this system is a standard oneiric box. I didn't muck with any library search paths and what-not. Are the dri drivers supposed to be linked against the library under /usr/lib32 or is something else supposed to be redirecting the drivers to look in /usr/lib/i386-linux-gnu?
Using this PPA, I'm getting about 41 fps with doom3 on a core 2 quad 3.0 ghz and a sapphire radeon 4870 at 1280x1024. I'll need to check on the other settings later when I get home from work, but I'm using some sort of FSAA and anistropic filtering as well. I must say the driver devs are doing an amazing job. The performance of the open source drivers at this stage is fantastic. I'm not an expert and didn't look for any flaws in particular, but the image quality also seems to be very good as well.
The desktop performance with the open source radeon drivers is also quite good. It provides a smoother experience than my primary desktop which has superior hardware (3.33 ghz i7 980x + nvidia GTX 580). This may be due to the fact I haven't manually changed the power settings for the radeon, and I believe the default is currently to run the card at the highest setting. In about a year when it's time for me to upgrade my video card in my primary box, I think I'll finally be able to get a radeon. As much as I love gaming, I think the 3d performance is already good enough given the lack of games in linux (and in a year from now it should be even better). At this point, my only real concern with buying a radeon is the power management so as to not run up my electric bill.
Thanks for an awesome PPA!
Given how little a 7750 consumes, I doubt you'll notice the few watts difference in a yearAt this point, my only real concern with buying a radeon is the power management so as to not run up my electric bill.![]()
But it seems a new driver needs to be created for these cards (with r600g being used as the base). I'm wondering how long this will take to get to the relative maturity of the r600g driver. I wouldn't mind replacing the 4870 in my old box *now* (which is now the family computer). Being 3 generations ahead, the 7750 is probably faster than the 4870, and it's certainly going to run cooler and use less power.