Bug 7265

Summary: dri does not work anymore after upgrading to xorg-server-1.1.0 mga g550 on an amd64
Product: xorg Reporter: markus gapp <markus.gapp>
Component: Driver/mgaAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high CC: jcwren, krh, solstag, teendale, tilman
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
$strace glxinfo
none
dmesg with debug of drm.ko enabled
none
another dmesg log
none
$ LIBGL_DEBUG=verbose glxinfo -- executed twice simultaniously none

Description markus gapp 2006-06-18 03:58:02 UTC
Hi

on a 64 bit gentoo based opteron machine with an mga g550 dri fails after 
upgrading to xorg-server 1.1. recompiling mesa and drm kernel modules did not 
reveal the problem.

any gl based program freezes during 3d initialisation:

$glxinfo
libGL warning: 3D driver claims to not support visual 0x4b

at this point execution freezes, program has to be terminated by ^C

the output of $strace glxinfo is attache as well as the dmesg after enabling 
the debug option for x11-drm's drm.ko module.

altough this not a gentoo site, i'll port emerge --info here as it is a good 
description of my environment.

Portage 2.1.1_pre1 (default-linux/amd64/2006.0, gcc-3.4.6/amd64-vanilla, 
glibc-2.4-r3, 2.6.16.20_hope3 x86_64)
=================================================================
System uname: 2.6.16.20_hope3 x86_64 AMD Opteron(tm) Processor 242
Gentoo Base System version 1.12.1
ccache version 2.4 [enabled]
dev-lang/python:     2.3.5-r2, 2.4.3-r1
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.4-r2
dev-util/confcache:  0.4.2-r1
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.16.1-r2
sys-devel/gcc-config: 2.0.0_rc1
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.16
ACCEPT_KEYWORDS="amd64 ~amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=k8 -O3 -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/lib64/mozilla/defaults/pref /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/eselect/compiler /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-march=k8 -O3 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache confcache digest distlocks metadata-transfer 
parallel-fetch sandbox sfperms strict userpriv"
GENTOO_MIRRORS="http://distfiles.gentoo.org 
http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LINGUAS="en de"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="amd64 X aalib acpi alsa apache2 arts auctex bash-completion berkdb 
bitmap-fonts bzip2 cairo cdda cddb cdparanoia chroot cli cpudetection crypt 
cups curl dbus dri dvd dvdr dvdread dvi eds emboss encode exif fam fb fbcon 
fbdev ffmpeg flac fontconfig foomaticdb fortran gdbm gif glut gpm gstreamer gtk 
gtk2 guile hal idea idn imagemagick imap imlib immqt input_devices_keyboard 
input_devices_mouse ipv6 java javascript jpeg jpeg2k kde kdeenablefinal lcd 
lcms lm_sensors lua lzw matrox mng motif mozilla mp3 mpeg mpeg2 mpeg4 mplayer 
ncurses nfs nls nptl nptlonly ogg openal opengl pam pcre pdf pdflib perl php 
png postgres pppd python qt quicktime readline reflection sasl sdl session 
spell spl ssl tcltk tcpd tetex tiff truetype truetype-fonts type1-fonts udev 
unicode usb utf8 vorbis xine xinetd xorg xpm xv zlib elibc_glibc kernel_linux 
linguas_en linguas_de userland_GNU video_cards_mga video_cards_fbdev 
video_cards_vesa video_cards_vga"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, 
PORTAGE_RSYNC_EXTRA_OPTS


thank you very much


markus
Comment 1 markus gapp 2006-06-18 03:59:39 UTC
Created attachment 5961 [details]
$strace glxinfo
Comment 2 markus gapp 2006-06-18 04:01:22 UTC
Created attachment 5962 [details]
dmesg with debug of drm.ko enabled
Comment 3 Felix Nawothnig 2006-06-23 19:55:24 UTC
Same here on an Athlon-XP 1800+ (32bit) with an G550 (AGP).
Comment 4 markus gapp 2006-07-02 15:17:46 UTC
Felix, did you find a workaround meanwhile?

markus
Comment 5 Felix Nawothnig 2006-07-02 19:01:15 UTC
Created attachment 6102 [details]
another dmesg log

Nope. I attached a syslog from my box - this is where the app hangs for me:

Jul  2 05:23:25 alkoholix kernel: [drm:drm_lock] 3 (pid 8368) requests lock
(0x80000001), flags = 0x00000000

(can't find that one in your log?)

ltrace -S glxinfo ends with this:

<... glXCreateContext resumed> )					       
		  = 0x80544b8
glXMakeCurrent(0x804d008, 0x1000002, 0x80544b8, 1, 100 <unfinished ...>
SYS_write(3, "\220\003\006", 36)					       
		  = 36
SYS_read(3, "\001", 32) 						       
		  = 32
SYS_write(3, "\222\t\003", 12)						       
		  = 12
SYS_read(3, "\001a\032", 32)						       
		  = 32
SYS_read(3, "", 4)							       
		  = 4
SYS_futex(0xb7ee36d0, 1, 0x7fffffff, 0, 0x8472660)			       
		  = 0
SYS_ioctl(4, 0x4008642a, 0xbfabce68, 0xbfabce68, 4)			       
		  = -512
--- SIGINT (Interrupt) ---
Comment 6 Felix Nawothnig 2006-07-02 19:03:11 UTC
Oh, and another G550 user I know is having the same problem (or the other way
around - I dunno of any G550 user who is not :).
Comment 7 Al Scandar Solstag 2006-07-02 23:10:01 UTC
Seems I have a similar, perhaps the same, problem...
Only it's a G450 and the programs hang without any warning from libGL.

The machine is an Athlon Thunderbird with a G450.

My configuration is:
Linux 2.6.17
Xorg 7.1

And I use up to date external drm kernel modules:
/dev/dri/card0
  Version information:
    Name: mga
    Version: 3.2.2
    Date: 20060319
    Desc: Matrox G200/G400


If I enable DRI and GLX, I get DRI enabled, but all GL programs hang or display
black windows.

In particular, "glxgears" displays a black window, "mplayer -vo gl" hangs, and
glxinfo stops after printing its first line "name of display: :0.0".

Without direct rendering, all works as expected.

I also suffer from bug #6884 , which could be a related issue...

[]s, ale
Comment 8 markus gapp 2006-07-06 10:57:04 UTC
ok, absolutely strange but maybe it helps anyone -- at least to amuse :

if i do a $glxinfo in one xterm i get:
name of display: :0.0
libGL warning: 3D driver claims to not support visual 0x4b

-- program hangs. except i open a second terminal window and do exactly the 
same: $glxinfo then the first one(!) finishes with the attached output. nice.

markus

Comment 9 markus gapp 2006-07-06 11:00:38 UTC
Created attachment 6145 [details]
$ LIBGL_DEBUG=verbose glxinfo -- executed twice simultaniously
Comment 10 Kimmo Sundqvist 2006-07-09 11:32:15 UTC
Matrox G400 card here, Gentoo and Xorg server 1.1.0

$ LIBGL_DEBUG=verbose glxinfo
name of display: :0.0
libGL: XF86DRIGetClientDriverName: 1.4.1 mga (screen 0)
libGL: OpenDriver: trying /usr/lib/dri/tls/mga_dri.so
libGL: OpenDriver: trying /usr/lib/dri/mga_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 warning: 3D driver claims to not support visual 0x4b
libGL error:
Can't open configuration file /etc/drirc: No such file or directory.
libGL error:
Can't open configuration file /home/kimmos/.drirc: No such file or directory.
Comment 11 Kimmo Sundqvist 2006-07-09 11:42:29 UTC
Trying an example /etc/drirc removes the first complaint, and linking ~/.drirc
to it removes the second complaint.  Otherwise the situation did not improve.

<driconf>
   <device screen="0" driver="mga">
      <application name="all">
         <!-- Always synchronize with vertical refresh to avoid tearing -->
         <option name="vblank_mode" value="3"/>
      </application>
      <application name="glxgears" executable="glxgears">
         <!-- glxgears should not synchronize with vertical refresh, show full
fps -->
         <option name="vblank_mode" value="0"/>
      </application>
   </device>
</driconf>
Comment 12 Tilman Sauerbeck 2006-07-24 11:37:11 UTC
I'm not sure I'm seeing the same bug. glxinfo etc are also stuck in
drmGetLock(), but I'm also seeing this in Xorg.log:

DRIUnlock called when not locked

Are you guys seeing this, too, or is this another issue?

If anyone has some free time on their hands, it would help if you could use the
xorg-server git repository to build the code from January perhaps (and the mga
driver from that time) to see whether it worked back then.

If it did, use git bisect to find the commit that introduced the breakage.

So far I only verified that it's not fe0c838b5d8bc8d9cf5a686bb7d3e90682d2d19a
that causes this :/
Comment 13 Tilman Sauerbeck 2006-07-25 10:55:45 UTC
I've bisected the server now; the breakage was introduced by commit
c3342c8000f6d2bfb61e2cf95e028d11b59698fa (AIGLX merge).

Kristian, can you have a look at this?
Comment 14 Tilman Sauerbeck 2006-08-08 12:24:49 UTC
See this thread for some discussion about the problem:
http://marc.theaimsgroup.com/?l=dri-devel&m=115407405219563&w=2
Comment 15 Tilman Sauerbeck 2006-08-09 13:00:30 UTC
Fixed in bde592047cd62194d7ef67520a9fdbaf269a8b90.

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.