[PATCH 4/4] exa: a few small pitch related changes

Maarten Maathuis madman2003 at gmail.com
Fri Nov 27 02:45:06 PST 2009


2009/11/27 Maarten Maathuis <madman2003 at gmail.com>:
> 2009/11/27 Michel Dänzer <michel at daenzer.net>:
>> On Mon, 2009-11-23 at 22:17 +0100, Maarten Maathuis wrote:
>>> - Setting pitch before exaCopyDirty* is not needed.
>>
>> Hmm, I thought it was at least at some point, that's why I added
>> those... But your patch seems to work fine for me with mixed pixmaps, so
>> the parts specific to those seem fine.
>>
>>
>>> diff --git a/exa/exa.c b/exa/exa.c
>>> index 023288c..16f39f6 100644
>>> --- a/exa/exa.c
>>> +++ b/exa/exa.c
>>> @@ -323,10 +323,17 @@ ExaDoPrepareAccess(PixmapPtr pPixmap, int index)
>>>
>>>      has_gpu_copy = exaPixmapHasGpuCopy(pPixmap);
>>>
>>> -    if (has_gpu_copy && pExaPixmap->fb_ptr)
>>> +    if (has_gpu_copy) {
>>> +     /* This can be NULL, but the driver prepareAccess call should
>>> +      * take care of that. */
>>>       pPixmap->devPrivate.ptr = pExaPixmap->fb_ptr;
>>> -    else
>>> +     pPixmap->devKind = pExaPixmap->fb_pitch;
>>> +    } else {
>>> +     /* For mixed pixmaps this can be NULL, but that will be fixed
>>> +      * later in exaPrepareAccessReg_mixed(). */
>>>       pPixmap->devPrivate.ptr = pExaPixmap->sys_ptr;
>>> +     pPixmap->devKind = pExaPixmap->sys_pitch;
>>> +    }
>>
>> However, I'm a little concerned about this part, as it also affects the
>> other schemes. E.g. a classic driver may not have a PrepareAccess hook
>> at all.
>
> I said *may* be NULL, a gpu pixmap in a classic driver should always
> have a valid fb_ptr without a prepare access hook. In the past this
> wasn't the case for the frontbuffer and scratch pixmaps but this was
> fixed several months ago iirc. It's the driver pixmaps which may not
> have a fb_ptr, but they ofocurce have a prepare access hook.
>

This supports this:
http://cgit.freedesktop.org/xorg/xserver/tree/exa/exa_classic.c#n255

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


More information about the xorg-devel mailing list