[PATCH 2/3] exa/mixed: be more thorough about setting fb_pitch when needed

Michel Dänzer michel at daenzer.net
Sat Nov 14 08:44:39 PST 2009


On Fri, 2009-11-13 at 21:49 +0100, Maarten Maathuis wrote: 
> Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
> ---
>  exa/exa_migration_mixed.c |   21 +++++++++++++--------
>  1 files changed, 13 insertions(+), 8 deletions(-)
> 
> diff --git a/exa/exa_migration_mixed.c b/exa/exa_migration_mixed.c
> index ea6f878..121a4ad 100644
> --- a/exa/exa_migration_mixed.c
> +++ b/exa/exa_migration_mixed.c
> @@ -98,14 +98,17 @@ exaDoMigration_mixed(ExaMigrationPtr pixmaps, int npixmaps, Bool can_accel)
>  	if (!pExaPixmap->driverPriv)
>  	    exaCreateDriverPixmap_mixed(pPixmap);
>  
> -	if (pExaPixmap->pDamage && exaPixmapIsOffscreen(pPixmap)) {
> -	    ExaScreenPriv(pPixmap->drawable.pScreen);
> -
> +	if (exaPixmapIsOffscreen(pPixmap)) {
>  	    pPixmap->devKind = pExaPixmap->fb_pitch;
> -	    exaCopyDirtyToFb(pixmaps + i);
>  
> -	    if (pExaScr->deferred_mixed_pixmap == pPixmap)
> -		pExaScr->deferred_mixed_pixmap = NULL;
> +	    if (pExaPixmap->pDamage) {
> +		ExaScreenPriv(pPixmap->drawable.pScreen);
> +
> +		exaCopyDirtyToFb(pixmaps + i);
> +
> +		if (pExaScr->deferred_mixed_pixmap == pPixmap)
> +		    pExaScr->deferred_mixed_pixmap = NULL;
> +	    }
>  	}
>  
>  	pExaPixmap->offscreen = exaPixmapIsOffscreen(pPixmap);
> @@ -133,8 +136,9 @@ exaMoveInPixmap_mixed(PixmapPtr pPixmap)
>  void
>  exaPrepareAccessReg_mixed(PixmapPtr pPixmap, int index, RegionPtr pReg)
>  {
> +    ExaPixmapPriv(pPixmap);
> +
>      if (!ExaDoPrepareAccess(pPixmap, index)) {
> -	ExaPixmapPriv(pPixmap);
>  	Bool is_offscreen = exaPixmapIsOffscreen(pPixmap);
>  	ExaMigrationRec pixmaps[1];
>  
> @@ -197,7 +201,8 @@ exaPrepareAccessReg_mixed(PixmapPtr pPixmap, int index, RegionPtr pReg)
>  	pPixmap->devPrivate.ptr = pExaPixmap->sys_ptr;
>  	pPixmap->devKind = pExaPixmap->sys_pitch;
>  	pExaPixmap->offscreen = FALSE;
> -    }
> +    } else
> +	pPixmap->devKind = pExaPixmap->fb_pitch;
>  }
>  
>  /* Move back results of software rendering on system memory copy of mixed driver

Acked-by: Michel Dänzer <michel at daenzer.net>

I already (pre-)acked patch 1.


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





More information about the xorg-devel mailing list