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