When I run any game (in 32bit mode - I wasn't successful reproducing it in games running in native 64bits) which uses SDL Xorg session crashes and immediately exits to console. Sometimes, but not always, I get --glibc detected invalid pointer-- (or something very similiar). The games that I tested were: NWN, Majesty, RailroadTycoon2, Privateer Remake Reproducible: Sometimes Steps to Reproduce: 1. Enter X 2. Run the game in fulscreen 3. Quit it Actual Results: X session crashes Expected Results: X session shouldn't crash and the game should quit smoothly... Portage 2.0.51.22-r2 (default-linux/amd64/2005.0, gcc-3.4.4, glibc-2.3.5-r1, 2.6.12-gentoo-r10 x86_64) ================================================================= System uname: 2.6.12-gentoo-r10 x86_64 AMD Turion(tm) 64 Mobile ML-28 Gentoo Base System version 1.6.13 dev-lang/python: 2.3.5-r2 sys-apps/sandbox: 1.2.12 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=k8 -pipe -fomit-frame-pointer -O2" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/splash /etc/terminfo /etc/env.d" CXXFLAGS="-march=k8 -pipe -fomit-frame-pointer -O2" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" LINGUAS="en pl" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="amd64 X acpi alsa avi bash-completion berkdb bitmap-fonts bzip2 cdr crypt cups curl dvd dvdread eds emboss encode extras fam foomaticdb fortran gdbm gif gmp gnome gpm gstreamer gtk gtk2 iconv ieee1384 imagemagic imagemagick imlib ipv6 java jpeg junit kde lzw lzw-tiff mad mp3 mpeg ncurses nls ogg oggvorbis opengl pam pdflib perl png python qt quicktime readline samba sdl slang spell ssl svg tcltk tcpd tiff truetype-fonts type1-fonts usb userlocales vorbis xine xml xml2 xpm xv xvid zlib linguas_en linguas_pl userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, MAKEOPTS
Which X driver are you using?
I can confirm this on Athlon64 (Clawhammer) with 2.6.13-r1, Tuxracer as the game which was running. In my case, the game plays fine but as soon as I click on "Quit" inside the game, the game quits and X crashes..
I'm using ati-drivers.8.16.20 - the only one that worked in 3d with my video card (ati mobility x300)...
I can confirm this w/ libsdl 1.2.8-r1 and ati-drivers-8.16.20 but it also happens w/ 64-bit programs (I just compiled wesnoth-1.0rc1 and had the problem). dmesg of the machine just after the problem: ---------------------------------------- fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERM ANY' taints kernel. [fglrx] Maximum main memory to use for locked dma buffers: 918 MBytes. ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18 ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [APC3] -> GSI 18 (level, low) -> IRQ 66 [fglrx] module loaded - fglrx 8.16.20 [Aug 16 2005] on minor 0 [fglrx] free PCIe = 54804480 [fglrx] max PCIe = 54804480 [fglrx] free LFB = 116322304 [fglrx] max LFB = 116322304 [fglrx] free Inv = 134217728 [fglrx] max Inv = 134217728 [fglrx] total Inv = 134217728 [fglrx] total TIM = 0 [fglrx] total FB = 0 [fglrx] total PCIe = 16384 NET: Registered protocol family 10 Disabled Privacy Extensions on device ffffffff80528e20(lo) IPv6 over IPv4 tunneling driver eth0: no IPv6 routers present [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped [fglrx:firegl_rmmap] *ERROR* map 0xffff81003491cd98 still in use (map_count=1) [fglrx:firegl_free_buffer_queue] *ERROR* buffer qeue 0xffff81003491cd80 still ma pped eth0: link down. eth0: link up. UDP: bad checksum. From 200.204.0.10:53 to 10.0.0.2:32927 ulen 106 usb 1-7: new high speed USB device using ehci_hcd and address 6 drivers/usb/class/usblp.c: usblp0: USB Bidirectional printer dev 6 if 0 alt 0 pr oto 2 vid 0x04F9 pid 0x0016 hub 1-0:1.0: connect-debounce failed, port 8 disabled [fglrx] free PCIe = 54804480 [fglrx] max PCIe = 54804480 [fglrx] free LFB = 116322304 [fglrx] max LFB = 116322304 [fglrx] free Inv = 134217728 [fglrx] max Inv = 134217728 [fglrx] total Inv = 134217728 [fglrx] total TIM = 0 [fglrx] total FB = 0 [fglrx] total PCIe = 16384 gralves@gralves ~ $ -------------------------------------------- Relevant line on system logs: Sep 27 18:42:33 gralves gdm[9728]: gdm_slave_xioerror_handler: Erro fatal no X - Reinicializando :0
fglrx bug, reassign
Recompiled sdl and friends and the bug seems to be gone. Will do more testing.
Just to report, with nvidia-drivers I found that when leaving fullscreen mode resolution is not restored but instead res. is that of the game and my usual resolution is the size of virtual desktop.
No news for 3 years, let's assume this is fixed.