Bug 49170

Summary: crash when starting or after some time of using psi
Product: xorg Reporter: Mariusz Białończyk <manio>
Component: Server/Ext/XineramaAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: critical    
Priority: high    
Version: 7.6 (2010.12)   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard: 2012BRB_Reviewed
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 40982    
Attachments:
Description Flags
backtrace none

Description Mariusz Białończyk 2012-04-26 05:54:28 UTC
Created attachment 60613 [details]
backtrace

I have a crash of xserver when running psi instant messanger.
It crashes differently: sometimes just after starting (when the contact list is
drawn), and also after several minutes of using.
When i am not launching psi at all, then everything is ok.

I am attaching backtrace as attachment.

I was able to reproduce the bug with the following drivers:
radeon + nvidia propietary driver
radeon + nouveau (with acceleration disabled)

I am not reporting it to psi because even if psi is doing something
wrong with the xorg, then xorg should not crash.
I did not notice problems with running other QT packages (eg virtualbox).

Details about this bug are also in debian BTS: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=668589
Comment 1 Michel Dänzer 2012-04-26 06:07:23 UTC
AFAICT the problem is that the PanoramiX code in render/render.c doesn't handle separate alpha maps.
Comment 2 Jeremy Huddleston Sequoia 2012-06-12 03:36:41 UTC
Comment on attachment 60613 [details]
backtrace

Please set the correct mime type next time.
Comment 3 Jeremy Huddleston Sequoia 2012-06-12 03:39:20 UTC
Looks like an EXA bug.

(gdb) bt
#0  exaPixmapHasGpuCopy (pPixmap=0x7f05032b7b80) at ../../exa/exa.c:249
#1  0x00007f04faaa12ed in exaPrepareAccessReg_mixed (pPixmap=0x7f05032b7b80, 
index=4, pReg=0x0) at ../../exa/exa_migration_mixed.c:168
#2  0x00007f04faaab8dd in ExaPrepareCompositeReg (height=64, width=64, yDst=0, 
xDst=0, yMask=<optimized out>, xMask=-5056, ySrc=<optimized out>, 
xSrc=<optimized out>, pDst=0x7f05032b7ea0, pMask=0x0, pSrc=0x7f05032b6df0, op=1 
'\001', pScreen=<optimized out>) at ../../exa/exa_unaccel.c:561
#3  ExaCheckComposite (op=1 '\001', pSrc=0x7f05032b6df0, pMask=0x0, 
pDst=0x7f05032b7ea0, xSrc=0, ySrc=0, xMask=0, yMask=0, xDst=0, yDst=0, 
width=64, height=64) at ../../exa/exa_unaccel.c:624
#4  0x00007f04faaa80b8 in exaComposite (op=1 '\001', pSrc=0x7f05032b6df0, 
pMask=0x0, pDst=0x7f05032b7ea0, xSrc=<optimized out>, ySrc=<optimized out>, 
xMask=0, yMask=0, xDst=<optimized out>, yDst=<optimized out>, width=64, 
height=64) at ../../exa/exa_render.c:1066
#5  0x00007f0502baff34 in damageComposite (op=1 '\001', pSrc=0x7f05032b6df0, 
pMask=0x0, pDst=0x7f05032b7ea0, xSrc=0, ySrc=0, xMask=0, yMask=0, xDst=0, 
yDst=0, width=64, height=64) at ../../../miext/damage/damage.c:569
#6  0x00007f0502ba84c4 in ProcRenderComposite (client=0x7f05030fd530) at 
../../render/render.c:728
#7  0x00007f0502ba5ff2 in PanoramiXRenderComposite (client=0x7f05030fd530) at 
../../render/render.c:2867
#8  0x00007f0502aecf81 in Dispatch () at ../../dix/dispatch.c:439
#9  0x00007f0502adc1aa in main (argc=6, argv=<optimized out>, envp=<optimized 
out>) at ../../dix/main.c:287


Is this a regression?  What was the last server version that worked for you?
Comment 4 Michel Dänzer 2012-06-12 03:45:48 UTC
(In reply to comment #3)
> Looks like an EXA bug.

No, it's not. The PanoramiX code is passing a pixmap down to the EXA screen which obviously wasn't allocated on that screen. Looking at render/render.c, it's probably because the PanoramiX code in there doesn't wrap the pixmaps of RENDER separate alpha maps as needed.
Comment 5 Adam Jackson 2014-12-01 20:40:00 UTC
commit 802932d112a3f6a09420be9e4a13fa78ac43840b
Author: Adam Jackson <ajax@redhat.com>
Date:   Mon Nov 17 15:28:58 2014 -0500

    render: fix ChangePicture when Xinerama is active (v2) (#49170)

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.