Bug 930

Summary: glxgears segfault only when resolution > 1024x768
Product: Mesa Reporter: Huw Jenkins <huwtjenkins>
Component: Drivers/DRI/r128Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED DUPLICATE QA Contact:
Severity: normal    
Priority: high    
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Xorg log
glxinfo when running at 1024x768
gdb log of glxinfo segfault
drirc file

Description Huw Jenkins 2004-07-27 08:51:47 UTC
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 +++
Comment 1 Huw Jenkins 2004-07-27 08:52:52 UTC
Created attachment 528 [details]
Xorg log
Comment 2 Huw Jenkins 2004-07-27 08:58:27 UTC
Created attachment 529 [details]
glxinfo when running at 1024x768
Comment 3 Adam Jackson 2004-07-27 10:22:53 UTC
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?
Comment 4 Michel Dänzer 2004-07-27 11:27:49 UTC
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.
Comment 5 Huw Jenkins 2004-07-28 02:20:15 UTC
Created attachment 535 [details]
gdb log of glxinfo segfault

This doesn't look very useful - not sure why debugging symbols missing...
Comment 6 Huw Jenkins 2004-07-28 02:32:00 UTC
Occurs with latest snapshot (rage128-20040727)
Comment 7 Felix Kühling 2004-07-29 03:29:03 UTC
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.
Comment 8 Huw Jenkins 2004-07-29 04:52:39 UTC
Created attachment 542 [details]
drirc file
Comment 9 Owen Taylor 2004-10-28 15:33:15 UTC
This is likely bug 1730.

Comment 10 Owen Taylor 2004-10-28 15:36:09 UTC
(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)
Comment 11 Ian Romanick 2004-10-28 18:58:12 UTC
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.
Comment 12 Conn 2005-11-30 01:09:37 UTC
This bug is most likely a dupe of 5115
https://bugs.freedesktop.org/show_bug.cgi?id=5115
Comment 13 Michel Dänzer 2005-12-01 03:39:23 UTC

*** 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.