When using the r128 driver (snapshot from DRI - 20040726) with an ATI Rage Mobility M3 AGP 2x graphics card on my Dell Latitude C600 laptop driving an external SGI monitor at 1280X1024 resolution DRI is started correctly as shown by the Xorg log: (II) R128(0): Direct rendering enabled However glxinfo and glxgears segfault when run. huw@euphoria huw $ LIBGL_DEBUG="true" /usr/X11R6/bin/glxinfo name of display: :0.0 libGL error: Can't open configuration file /etc/drirc: No such file or directory. Segmentation fault If I set the resolution to 1024X768 by adding Modes=1024x768" to the Display section of /etc/X11/xorg.conf and restarting X glxinfo and glxgears work as expected. Strace shown below: huw@euphoria huw $ strace /usr/X11R6/bin/glxinfo execve("/usr/X11R6/bin/glxinfo", ["/usr/X11R6/bin/glxinfo"], [/* 51 vars */]) = 0 uname({sys="Linux", node="euphoria", ...}) = 0 brk(0) = 0x804d000 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=60038, ...}) = 0 mmap2(NULL, 60038, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000 close(3) = 0 open("/usr/lib/libGLU.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220f\1"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=569528, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40023000 mmap2(NULL, 497180, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40024000 mmap2(0x4009c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x77) = 0x4009c000 close(3) = 0 open("/usr/lib/opengl/xorg-x11/lib/libGL.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p?\2\000"..., 512) = 512fstat64(3, {st_mode=S_IFREG|0755, st_size=621712, ...}) = 0 mmap2(NULL, 519536, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4009e000 mmap2(0x40119000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x7b) = 0x40119000 mmap2(0x4011c000, 3440, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4011c000 close(3) = 0 mprotect(0xbffff000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC|PROT_GROWSDOWN) = 0 open("/usr/X11R6/lib/libXext.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@)\0\000"..., 512) = 512fstat64(3, {st_mode=S_IFREG|0755, st_size=65104, ...}) = 0 mmap2(NULL, 56628, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4011d000 mmap2(0x4012a000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xc) = 0x4012a000 close(3) = 0 open("/usr/X11R6/lib/libX11.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\20"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=918768, ...}) = 0 mmap2(NULL, 812920, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4012b000 mmap2(0x401ef000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xc4) = 0x401ef000 close(3) = 0 open("/lib/libpthread.so.0", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220B\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=65996, ...}) = 0 mmap2(NULL, 331296, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x401f2000 mmap2(0x40200000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xe) = 0x40200000 mmap2(0x40201000, 269856, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40201000 close(3) = 0 open("/lib/libm.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0205\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=153416, ...}) = 0 mmap2(NULL, 137152, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40243000 mmap2(0x40264000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x20) = 0x40264000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`Y\1\000"..., 512) = 512fstat64(3, {st_mode=S_IFREG|0755, st_size=1178424, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40265000 mmap2(NULL, 1116068, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40266000 mmap2(0x40371000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x10a) = 0x40371000 mmap2(0x40374000, 10148, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40374000 close(3) = 0 open("/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libstdc++.so.5", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\253\3"..., 512) = 512fstat64(3, {st_mode=S_IFREG|0755, st_size=730140, ...}) = 0 mmap2(NULL, 748768, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40377000 mmap2(0x40424000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xac) = 0x40424000 mmap2(0x40429000, 19680, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40429000 close(3) = 0 open("/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/libgcc_s.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\26"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0644, st_size=37136, ...}) = 0 mmap2(NULL, 35312, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4042e000 mmap2(0x40436000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x7) = 0x40436000 close(3) = 0 open("/lib/libdl.so.2", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\34"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=10864, ...}) = 0 mmap2(NULL, 8628, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40437000 mmap2(0x40439000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2) = 0x40439000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4043a000 mprotect(0x4009e000, 503808, PROT_READ|PROT_WRITE) = 0 mprotect(0x4009e000, 503808, PROT_READ|PROT_EXEC) = 0 munmap(0x40014000, 60038) = 0 set_thread_area({entry_number:-1 -> 6, base_addr:0x40200060, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 getpid() = 18302 rt_sigaction(SIGRTMIN, {0x401fa2d0, [], 0}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {0x401fa410, [], 0}, NULL, 8) = 0 rt_sigaction(SIGRT_2, {0x401fa5f0, [], 0}, NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [RTMIN], NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [RT_1], NULL, 8) = 0 _sysctl({{CTL_KERN, KERN_VERSION}, 2, 0xbfffefd4, 31, (nil), 0}) = 0 brk(0) = 0x804d000 brk(0x806e000) = 0x806e000 open("/dev/urandom", O_RDONLY) = 3 read(3, "1gm$", 4) = 4 close(3) = 0 uname({sys="Linux", node="euphoria", ...}) = 0 socket(PF_UNIX, SOCK_STREAM, 0) = 3 getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0 uname({sys="Linux", node="euphoria", ...}) = 0 uname({sys="Linux", node="euphoria", ...}) = 0 connect(3, {sa_family=AF_UNIX, path="/tmp/.X11-unix/X0"}, 19) = 0 uname({sys="Linux", node="euphoria", ...}) = 0 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 access("/home/huw/.Xauthority", R_OK) = 0 open("/home/huw/.Xauthority", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0600, st_size=266, ...}) = 0 mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4043b000 read(4, "\1\0\0\10euphoria\0\0010\0\22MIT-MAGIC-COOKI"..., 131072) = 266 close(4) = 0 munmap(0x4043b000, 131072) = 0 writev(3, [{"l\0\v\0\0\0\22\0\20\0\0\0", 12}, {"MIT-MAGIC-COOKIE-1", 18}, {"\0\0", 2}, {"M:<OF\341w\347\"4\311:9\301nw", 16}], 4) = 48 fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR) fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0 read(3, "\1\0\v\0\0\0\235\0", 8) = 8 read(3, "`5\236\3\0\0@\2\377\377\37\0\0\1\0\0<\0\377\377\1\7\0\0"..., 628) = 628write(3, "7\0\5\0\0\0@\2H\0\0\0\10\0\0\0\377\377\0\0b\0\5\0\f\0\0"..., 64) = 64 read(3, "\1\0\2\0\0\0\0\0\1\203\0\0\0\0\0\0\0\0\0\0\30\0\0\0000"..., 32) = 32 read(3, "\1\10\3\0\207\6\0\0\37\0\0\0\0\0\0\0\31\32\0\0\0\0\0\0"..., 32) = 32 readv(3, [{"*Box.background:\t#cccccc\n*Box.fo"..., 6681}, {"\0\0\0", 3}], 2) = 6684 write(3, "\203\0\1\0", 4) = 4 read(3, "\1\0\4\0\0\0\0\0\377\377?\0\0\0\0\0\1\0\0\0\30\0\0\000"..., 32) = 32 writev(3, [{"b\0\5\0\t\0@\2", 8}, {"XKEYBOARD", 9}, {"\0\0\0", 3}], 3) = 20 read(3, "\1\0\5\0\0\0\0\0\1\227o\272\0\0\0\0\1\0\0\0\30\0\0\000"..., 32) = 32 write(3, "\227\0\2\0\1\0\0\0", 8) = 8 read(3, "\1\1\6\0\0\0\0\0\1\0\0\0\0\0\0\0\1\0\0\0\30\0\0\0000\374"..., 32) = 32 fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 20), ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4043b000 write(1, "name of display: :0.0\n", 22name of display: :0.0 ) = 22 writev(3, [{"b\0\3\0\3\0\0\0", 8}, {"GLX", 3}, {"\0", 1}], 3) = 12 read(3, "\1\0\7\0\0\0\0\0\1\222M\237\0\0\0\0\1\0\0\0\30\0\0\000"..., 32) = 32 write(3, "\222\7\3\0\1\0\0\0\4\0\0\0", 12) = 12 read(3, "\1\0\10\0\0\0\0\0\1\0\0\0\2\0\0\0\20\364\333\10\0\0\0\0"..., 32) = 32 writev(3, [{"b\7\5\0\v\0\0\0", 8}, {"XFree86-DRI", 11}, {"\0", 1}], 3) = 20 read(3, "\1\0\t\0\0\0\0\0\1\220\0\234\0\0\0\0\1\0\0\0\30\0\0\000"..., 32) = 32 write(3, "\220\0\1\0", 4) = 4 read(3, "\1\0\n\0\0\0\0\0\4\0\1\0\0\0\0\0\1\0\0\0\30\0\0\0000\374"..., 32) = 32 write(3, "\220\1\2\0\0\0\0\0", 8) = 8 read(3, "\1\0\v\0\0\0\0\0\1\0\0\0\0\0\0\0\1\0\0\0\30\0\0\0000\374"..., 32) = 32 write(3, "\220\4\2\0\0\0\0\0", 8) = 8 read(3, "\1\352\f\0\1\0\0\0\4\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0000\374"..., 32) = 32readv(3, [{"r128", 4}, {"", 0}], 2) = 4 geteuid32() = 1000 getuid32() = 1000 open("/usr/X11R6/lib/modules/dri/r128_dri.so", O_RDONLY) = 4 read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\355"..., 512) = 512fstat64(4, {st_mode=S_IFREG|0755, st_size=6164224, ...}) = 0 mmap2(NULL, 1881380, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x4043c000 mmap2(0x405ec000, 69632, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x1af) = 0x405ec000 mmap2(0x405fd000, 42276, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x405fd000 close(4) = 0 mprotect(0x4043c000, 1769472, PROT_READ|PROT_WRITE) = 0 mprotect(0x4043c000, 1769472, PROT_READ|PROT_EXEC) = 0 write(3, "\222\23\3\0\0\0\0\0\2\0\0\0", 12) = 12 read(3, "\1\0\r\0\1\0\0\0\0\0\0\0\4\0\0\0\30\0\0\0\230\352\334\10"..., 32) = 32 read(3, "1.2\0", 4) = 4 write(3, "\222\23\3\0\0\0\0\0\3\0\0\0", 12) = 12 read(3, "\1\0\16\0+\0\0\0\0\0\0\0\253\0\0\0\30\0\0\0\230\352\334"..., 32) = 32 read(3, "GLX_ARB_multisample GLX_EXT_visu"..., 171) = 171 read(3, "\0", 1) = 1 write(3, "\222\21\4\0\4\0\1\0\3\0\0\0\0\0\0\0", 16) = 16 read(3, "\1\0\17\0\300\1\0\0\20\0\0\0\34\0\0\0\0\0\0\0\0\0\0\0\0"..., 32) = 32 read(3, "\v\200\0\0#\0\0\0\23\200\0\0#\0\0\0\22\200\0\0\1\0\0\0"..., 224) = 224 read(3, "\v\200\0\0$\0\0\0\23\200\0\0$\0\0\0\22\200\0\0\1\0\0\0"..., 224) = 224 read(3, "\v\200\0\0%\0\0\0\23\200\0\0%\0\0\0\22\200\0\0\1\0\0\0"..., 224) = 224 read(3, "\v\200\0\0&\0\0\0\23\200\0\0&\0\0\0\22\200\0\0\1\0\0\0"..., 224) = 224 read(3, "\v\200\0\0\'\0\0\0\23\200\0\0\'\0\0\0\22\200\0\0\1\0\0"..., 224) = 224 read(3, "\v\200\0\0(\0\0\0\23\200\0\0(\0\0\0\22\200\0\0\1\0\0\0"..., 224) = 224 read(3, "\v\200\0\0)\0\0\0\23\200\0\0)\0\0\0\22\200\0\0\1\0\0\0"..., 224) = 224 read(3, "\v\200\0\0*\0\0\0\23\200\0\0*\0\0\0\22\200\0\0\1\0\0\0"..., 224) = 224 read(3, "\v\200\0\0+\0\0\0\23\200\0\0+\0\0\0\22\200\0\0\1\0\0\0"..., 224) = 224 read(3, "\v\200\0\0,\0\0\0\23\200\0\0,\0\0\0\22\200\0\0\1\0\0\0"..., 224) = 224 read(3, "\v\200\0\0-\0\0\0\23\200\0\0-\0\0\0\22\200\0\0\1\0\0\0"..., 224) = 224 read(3, "\v\200\0\0.\0\0\0\23\200\0\0.\0\0\0\22\200\0\0\1\0\0\0"..., 224) = 224 read(3, "\v\200\0\0/\0\0\0\23\200\0\0/\0\0\0\22\200\0\0\1\0\0\0"..., 224) = 224 read(3, "\v\200\0\0000\0\0\0\23\200\0\0000\0\0\0\22\200\0\0\1\0"..., 224) = 224 read(3, "\v\200\0\0001\0\0\0\23\200\0\0001\0\0\0\22\200\0\0\1\0"..., 224) = 224 read(3, "\v\200\0\0002\0\0\0\23\200\0\0002\0\0\0\22\200\0\0\1\0"..., 224) = 224 write(3, "\220\2\2\0\0\0\0\0", 8) = 8 read(3, "\1\352\20\0\4\0\0\0\0\260\311\320\0\0\0\0\20\0\0\0\30\0"..., 32) = 32 readv(3, [{"pci:0000:01:00.0", 16}, {"", 0}], 2) = 16 geteuid32() = 1000 stat64("/dev/dri", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 stat64("/dev/dri/card0", {st_mode=S_IFCHR|0666, st_rdev=makedev(226, 0), ...}) = 0 open("/dev/dri/card0", O_RDWR) = 4 ioctl(4, DECODER_SET_PICTURE, 0xbfffef00) = -1 EACCES (Permission denied) ioctl(4, DECODER_GET_CAPABILITIES, 0xbfffef08) = 0 ioctl(4, DECODER_GET_CAPABILITIES, 0xbfffef08) = 0 ioctl(4, DEVFSDIOC_SET_EVENT_MASK or DECODER_GET_STATUS, 0xbfffef60) = 0 ioctl(4, DEVFSDIOC_GET_PROTO_REV, 0x8054858) = 0 ioctl(4, DEVFSDIOC_GET_PROTO_REV, 0x8054858) = 0 write(3, "\220\v\3\0\0\0\0\0#\0\0\0", 12) = 12 read(3, "\1\352\21\0\0\0\0\0\1\0\0\0U\233(\0108\4\340\10\30\0\0"..., 32) = 32 write(3, "\220\4\2\0\0\0\0\0", 8) = 8 read(3, "\1\352\22\0\1\0\0\0\4\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0000"..., 32) = 32 readv(3, [{"r128", 4}, {"", 0}], 2) = 4 write(3, "\220\n\2\0\0\0\0\0", 8) = 8 read(3, "\1\352\23\0\30\0\0\0\0\0\0\370\0\0\0\0\0\0\0\0\0\0\200"..., 32) = 32 read(3, "FL\0\0\0\5\0\0\0\4\0\0\20\0\0\0\20\0\0\0\0\0\0\0\2\0\0"..., 96) = 96 mmap2(NULL, 8388608, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0xf8000) = 0x40608000 mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0xd0c9b) = 0x40e08000 ioctl(4, 0xc0086452, 0xbfffeec0) = 0 mmap2(NULL, 16384, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0xfdffc) = 0x40e0a000 ioctl(4, 0xc00c6419, 0xbfffee80) = 0 ioctl(4, 0xc00c6419, 0xbfffee80) = 0 mmap2(NULL, 5111808, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0xf4302) = 0x4100e000 mmap2(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x414ee000 write(3, "\222\24S\2\1\0\0\0\4\0\0\0:\t\0\0GL_ARB_depth_tex"..., 2460) = 2460 read(3, "\1\0\27\0\0\0\0\0\3\0\0\0008\4\340\10$\364\334\10\0\0\0"..., 32) = 32 brk(0) = 0x806e000 brk(0x808f000) = 0x808f000 rt_sigaction(SIGILL, NULL, {SIG_DFL}, 8) = 0 rt_sigaction(SIGFPE, NULL, {SIG_DFL}, 8) = 0 rt_sigaction(SIGILL, {0x401fd620, [ILL], SA_RESTART}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGFPE, {0x401fd620, [FPE], SA_RESTART}, {SIG_DFL}, 8) = 0 --- SIGFPE (Floating point exception) @ 0 (0) --- sigreturn() = ? (mask now [RTMIN]) rt_sigaction(SIGILL, {SIG_DFL}, NULL, 8) = 0 rt_sigaction(SIGFPE, {SIG_DFL}, NULL, 8) = 0 open("/etc/drirc", O_RDONLY) = -1 ENOENT (No such file or directory) open("/home/huw/.drirc", O_RDONLY) = 5 read(5, "<driconf>\n<device driver=\"r128\">"..., 4096) = 174 read(5, "", 4096) = 0 close(5) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++
Created attachment 528 [details] Xorg log
Created attachment 529 [details] glxinfo when running at 1024x768
please run glxinfo under gdb and obtain a backtrace. type 'gdb /usr/X11R6/bin/glxinfo' at a shell prompt. at the (gdb) prompt, type 'run', then 'bt' after the segfault. this may be caused by, or fixed by, fxkuehl's xmlconfig.c changes, depending on timing. could you also try the most recent DRI snapshot?
Beware that debugging a DRI client from the same display will deadlock the X server if execution is stopped while the client holds the hardware lock. Run gdb from another machine, e.g. via ssh, to be safe.
Created attachment 535 [details] gdb log of glxinfo segfault This doesn't look very useful - not sure why debugging symbols missing...
Occurs with latest snapshot (rage128-20040727)
Could you attach your configuration file /home/huw/.drirc. This would help me reproduce the problem here if it's really related to the configuration parser.
Created attachment 542 [details] drirc file
This is likely bug 1730.
(I should note that the fix described in 1730 isn't going to make the card work at higher resolutions, it should just make glxgears/glxinfo not segfault when failing to initialize DRI)
I don't know how I never noticed this bug before. Hmm...anyway, the r128 driver seems to have to odd quirk that it will try to enable direct-rendering even when there is no on-card memory available for textures. I don't think any of the other drivers do this, but I'd have to check. The issues that the DRI driver assumes that there will be on-card memory but that there may or may not be AGP memory available. It should be fairly easy to modify the init code in the DRI driver (r128_context.c, line 159) to not crash if r128scrn->texSize[0] == 0. The only tricky part is that there may be places that assume rmesa->texture_heaps[0] is on-card memory.
This bug is most likely a dupe of 5115 https://bugs.freedesktop.org/show_bug.cgi?id=5115
*** This bug has been marked as a duplicate of 5115 ***
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.