[patch] exa: fix pitch handling in ModifyPixmapHeader

Zhenyu Wang zhen78 at gmail.com
Fri Apr 18 18:16:21 PDT 2008

On 2008.04.18 14:03:50 +0200, Tilman Sauerbeck wrote:
> Unfortunately I cannot reproduce #15509 on my i945 sofar. I tried the
> master branches of xserver.git and intel.git with a framebuffer of
> 2560x2560 pixels, and rotation still worked fine after I connected the
> VGA output and extended my desktop to it.

Try to set virtual height <= 2048. Current intel driver will disable
accel if virtualY's larger than 2048, which I think a little overkill.
As hw at least supports 2D blit larger than that, and disable smaller
size pixmap acceleration totally. I don't know much of why it is, Eric?

I think We'd just fix exa to handle driver's limits and alignement
correctly, and let it pass down those can be done in hw. I have pushed
pitch check patch in intel driver on 2.3-branch, although we might fix
left issue later, but just check them for safe now.

> diff --git a/exa/exa.c b/exa/exa.c
> index 81dc3e2..5014c0f 100644
> --- a/exa/exa.c
> +++ b/exa/exa.c
> @@ -385,6 +389,9 @@ exaModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, int depth,
>      if (pExaPixmap) {
>  	pExaPixmap->sys_ptr = pPixData;
> +        pExaPixmap->sys_pitch = devKind;
> +

We'd better check (devKind > 0). 

> +        exaSetFbPitch(pExaScr, pExaPixmap, width, height, bitsPerPixel);
>          exaSetAccelBlock(pExaScr, pExaPixmap,
>                           width, height, bitsPerPixel);

More information about the xorg mailing list