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