Question about X server abort

Michel Dänzer michel at daenzer.net
Fri Jun 25 03:32:11 PDT 2010


On Fre, 2010-06-25 at 09:20 +0800, 邓逸昕 wrote:
> 
> Phenomena:
>           When I run the XLIB tests like "cpypln", it will call the
> "ExaCheckCopyPlane" in exa_unaccel.c. The X server reports "
> FinishAccess called without PrepareAccess for pixmap" in
> exaFinishAccess. I found it the "exaPrepareAccess(&pPixmap->drawable,
> EXA_PREPARE_AUX_DEST) "in exaCreatePixmap_driver  won't be executed at
> all. The judged condition "if (pExaScr->fallback_counter)" can't be
> met.
>       
> Questions:
>          The problem may occur in the EXA modules. While creating
> Pixmaps, it doesn't know the pixmap will be applied in exa_accel.c or
> exa_unaccel.c. Therefore the "if (pExaScr->fallback_counter)"  doesn't
> make sense.  
>           While "cpypln" destroys the pixmaps, it will do
> exaFinishAccess as the "fallback_counter == 1". It lacks the balance
> of calling exaPrepareAccess and exaFinishAccess. So the X server
> aborts.
>           Currently I have added the code in the exaFinishAccess in
> order to prevent the above issues. 

That probably just works around the real problem.

It sounds like there are missing/unbalanced EXA_PRE/POST_FALLBACK(_GC) /
exaPrepare/FinishAccess calls somewhere, but it's hard to guess without
seeing at least a gdb bt full from when the problem occurs.


-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer


More information about the xorg-devel mailing list