[PATCH 2/2] exa/mixed: devKind doesn't have to be set before calling ExaCopyDirty*

Maarten Maathuis madman2003 at gmail.com
Wed Dec 2 00:35:25 PST 2009


2009/12/2 Michel Dänzer <michel at daenzer.net>:
> On Wed, 2009-12-02 at 08:42 +0100, Michel Dänzer wrote:
>> On Wed, 2009-12-02 at 00:16 +0100, Maarten Maathuis wrote:
>> > Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
>> > ---
>> >  exa/exa_migration_mixed.c |    6 +-----
>> >  1 files changed, 1 insertions(+), 5 deletions(-)
>> >
>> > diff --git a/exa/exa_migration_mixed.c b/exa/exa_migration_mixed.c
>> > index a7fdf63..36afc86 100644
>> > --- a/exa/exa_migration_mixed.c
>> > +++ b/exa/exa_migration_mixed.c
>> > @@ -101,7 +101,6 @@ exaDoMigration_mixed(ExaMigrationPtr pixmaps, int npixmaps, Bool can_accel)
>> >     if (pExaPixmap->pDamage && exaPixmapHasGpuCopy(pPixmap)) {
>> >         ExaScreenPriv(pPixmap->drawable.pScreen);
>> >
>> > -       pPixmap->devKind = pExaPixmap->fb_pitch;
>> >         exaCopyDirtyToFb(pixmaps + i);
>> >
>> >         if (pExaScr->deferred_mixed_pixmap == pPixmap)
>> > @@ -183,17 +182,14 @@ exaPrepareAccessReg_mixed(PixmapPtr pPixmap, int index, RegionPtr pReg)
>> >                 pixmaps[0].as_src = TRUE;
>> >                 pixmaps[0].pReg = NULL;
>> >             }
>> > -           pPixmap->devKind = pExaPixmap->fb_pitch;
>> >             exaCopyDirtyToSys(pixmaps);
>> >         }
>> >
>> >         if (as_dst)
>> >             exaPixmapDirty(pPixmap, 0, 0, pPixmap->drawable.width,
>> >                            pPixmap->drawable.height);
>> > -   } else if (has_gpu_copy) {
>> > -       pPixmap->devKind = pExaPixmap->fb_pitch;
>> > +   } else if (has_gpu_copy)
>> >         exaCopyDirtyToSys(pixmaps);
>> > -   }
>> >
>> >     pPixmap->devPrivate.ptr = pExaPixmap->sys_ptr;
>> >     pPixmap->devKind = pExaPixmap->sys_pitch;
>>
>> NACK. Driver UploadTo/DownloadFromScreen hooks need to know the GPU copy
>> pitch, and they typically use exaGetPixmapPitch() or just the pixmap
>> devKind field directly for this.
>
> On second thought, exaCopyDirty() does set devKind to the GPU copy pitch
> temporarily, so the second hunk should be okay. However, the first hunk
> doesn't leave anything to ensure devKind keeps the GPU copy pitch, does
> it?
>

Yes you are right, i will correct this when i get home this evening.

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


More information about the xorg-devel mailing list