[patch] exa: fix pitch handling in ModifyPixmapHeader

Zhenyu Wang zhenyu.z.wang at intel.com
Thu Apr 17 02:23:49 PDT 2008


The issue is seen when large virtual screen set and do rotation.
Rotate shadow pixmap got large pitch which exceed hw limit (8k),
I tried to set maxPitchPixel/Bytes but it still failed to guard for

The problem is current exaModifyPixmapHeader totally ignores
'devKind', and exaSetAccelBlock only looks exa pixmap private fb_pitch,
which is not available for home-made pixmap like rotate_pixmap.
Following patch trys to fix case like this.

diff --git a/exa/exa.c b/exa/exa.c
index 81dc3e2..3369c3a 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -386,6 +386,9 @@ exaModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, int depth,
     if (pExaPixmap) {
 	pExaPixmap->sys_ptr = pPixData;
+	if (pExaPixmap->fb_pitch == 0)
+	    pExaPixmap->fb_pitch = devKind;
         exaSetAccelBlock(pExaScr, pExaPixmap,
                          width, height, bitsPerPixel);
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827

More information about the xorg mailing list