The MGA driver and EXA acceleration causes server crash
Submitted by Göran Uddeborg
Assigned to Tilman Sauerbeck @tilman
Description
Created attachment 65480 xorg.conf file used during the test
The MGA driver uses XAA acceleration by default, but that acceleration was removed in Fedora 17. Without any acceleration the display have several issues and is significantly slower, so I tried to use EXA acceleration instead. But that causes the server to crash as soon as any client connects.
I originally reported this to Fedora's bugzilla, bug 826000, but it was suggested it might be better to report it here instead.
I'm using the most recent packages for Fedora 17:
xorg-x11-server-Xorg-1.12.2-4.fc17.x86_64 xorg-x11-drv-mga-1.4.13-19.20120104git9223c44a.fc17.x86_64
To reproduce, I gdb on Xorg, and start the process with ":1" as the only argument. The screen now gets black. Then I run the import command from the ImageMagick set, using "import -display :1 -window root x.png". That always causes the server to crash.
The backtrace in gdb looks like this:
#0 __memcpy_sse2 () at ../sysdeps/x86_64/memcpy.S:273
#1 0x00007f9fe20a62fe in memcpy (__len=6400, __src=0x0, __dest=0x273c950) at /usr/include/bits/string3.h:52
#2 mgaDownloadFromScreen (pSrc=<optimized out>, x=<optimized out>, y=<optimized out>, w=<optimized out>, h=<optimized out>, dst=0x273c950 "", dst_pitch=6400) at mga_exa.c:745
#3 0x00007f9fe1c7a007 in exaGetImage (pDrawable=0x22dfcc0, x=0, y=0, w=1600, h=10, format=2, planeMask=4294967295, d=0x273c950 "") at exa_accel.c:1290
#4 0x00000000005600f3 in miSpriteGetImage (pDrawable=0x22dfcc0, sx=0, sy=0, w=1600, h=10, format=2, planemask=4294967295, pdstLine=0x273c950 "") at misprite.c:413
#5 0x00000000004c99f0 in compGetImage (pDrawable=0x22dfcc0, sx=<optimized out>, sy=<optimized out>, w=<optimized out>, h=<optimized out>, format=<optimized out>, planemask=4294967295, pdstLine=0x273c950 "") at compinit.c:148
#6 0x000000000043161a in DoGetImage (planemask=<optimized out>, height=1200, width=<optimized out>, y=<optimized out>, x=0, drawable=<optimized out>, format=2, client=0x2709e00, im_return=<optimized out>) at dispatch.c:2128
#7 ProcGetImage (client=0x2709e00) at dispatch.c:2205
#8 0x000000000043444a in Dispatch () at dispatch.c:428
#9 0x0000000000423485 in main (argc=2, argv=0x7fff9e23c288, envp=<optimized out>) at main.c:288
Attachment 65480, "xorg.conf file used during the test":
xorg.conf