EXA bug: Calling FinishAccess on pixmap 0xaf06d008 with index 1 while it should have been (nil).
Justin P. Mattock
justinmattock at gmail.com
Sat Jul 18 12:56:42 PDT 2009
Michel Dänzer wrote:
> On Sat, 2009-07-18 at 15:25 +0200, Maarten Maathuis wrote:
>
>> I'm trying to get my system in order again, but i'll certainly have a
>> look once i go trough the tons of updates and everything else that
>> needs doing.
>>
>> So someone is using scratch GC and not finishing or preparing access
>> properly?
>>
>
> No, the problem is precisely that the scratch GC usage involves
> Prepare/FinishAccess, with the same indices already used by
> ExaCheckComposite() (which can potentially use all available indices).
>
> Another possible solution might be to unwrap pScreen->CreateGC before
> calling the lower level ps->Composite(), see below.
>
>
> diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c
> index 0d53b67..d7ec2f0 100644
> --- a/exa/exa_unaccel.c
> +++ b/exa/exa_unaccel.c
> @@ -432,6 +432,7 @@ ExaCheckComposite (CARD8 op,
> exaPrepareAccess (pSrc->pDrawable, EXA_PREPARE_SRC);
> if (pMask&& pMask->pDrawable != NULL)
> exaPrepareAccess (pMask->pDrawable, EXA_PREPARE_MASK);
> + swap(pExaScr, pScreen, CreateGC);
> #ifdef RENDER
> swap(pExaScr, ps, Composite);
> ps->Composite (op,
> @@ -448,6 +449,7 @@ ExaCheckComposite (CARD8 op,
> height);
> swap(pExaScr, ps, Composite);
> #endif /* RENDER */
> + swap(pExaScr, pScreen, CreateGC);
> if (pMask&& pMask->pDrawable != NULL)
> exaFinishAccess (pMask->pDrawable, EXA_PREPARE_MASK);
> if (pSrc->pDrawable != NULL)
>
>
>
Alright, well as for seeing this message
nothing(only that one time), As for any
oddities itself, only with mplayer
(vary slow when watching tv) probably due
to being compiled with older header's and such.
(ill look into to that later)
Justin P. Mattock
More information about the xorg
mailing list