[PATCH] exa: Accept scratch pixmaps with offscreen memory as such.

Michel Dänzer michel at daenzer.net
Thu Mar 19 12:38:09 PDT 2009


On Don, 2009-03-19 at 19:54 +0100, Maarten Maathuis wrote:
> ---
>  exa/exa.c |   18 +++++++++++++-----
>  1 files changed, 13 insertions(+), 5 deletions(-)
> 
> diff --git a/exa/exa.c b/exa/exa.c
> index ecb2117..a8e5374 100644
> --- a/exa/exa.c
> +++ b/exa/exa.c
> @@ -427,11 +427,19 @@ exaModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, int depth,
>          if (devKind > 0)
>              pExaPixmap->sys_pitch = devKind;
>  
> -	/* Is this the framebuffer (for classic exa)? */
> -	if (pPixData && pPixData == pExaScr->info->memoryBase) {
> -	    pExaPixmap->fb_ptr = pPixData;
> -	    pExaPixmap->fb_pitch = devKind;
> -	    pExaPixmap->offscreen = TRUE;
> +	/* Classic EXA:
> +	 * - Framebuffer.
> +	 * - Scratch pixmap with offscreen memory.
> +	 */
> +	if (!(pExaScr->info->flags & EXA_HANDLES_PIXMAPS) && 
> +		pExaScr->info->memoryBase && pPixData) {
> +	    if ((CARD8 *)pPixData >= pExaScr->info->memoryBase &&
> +		((CARD8 *)pPixData - pExaScr->info->memoryBase) < 
> +				pExaScr->info->memorySize) {
> +		pExaPixmap->fb_ptr = pPixData;
> +		pExaPixmap->fb_pitch = devKind;
> +		pExaPixmap->offscreen = TRUE;
> +	    }
>  	}
>  
>          if (width > 0 && height > 0 && bitsPerPixel > 0) {

Looks good, thanks.


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


More information about the xorg-devel mailing list