[PATCH 8/9] fb: move some code to mi

Magnus Kessler Magnus.Kessler at gmx.net
Tue Feb 10 14:35:43 PST 2009


On Thursday 05 February 2009, Maarten Maathuis wrote:
> ---
>  exa/exa_accel.c |    4 +-
>  fb/fb.h         |   37 ------
>  fb/fbcopy.c     |  331
> +-------------------------------------------------- fb/fboverlay.c  |   
> 2 +-
>  fb/fboverlay.h  |    2 +-
>  fb/fbwindow.c   |    2 +-
>  mi/Makefile.am  |    1 +
>  mi/mi.h         |   42 +++++++
>  mi/micopy.c     |  354
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 9 files changed,
> 406 insertions(+), 369 deletions(-)
>  create mode 100644 mi/micopy.c
>

Removing fbDoCopy and fbCopyRegion from xserver (git commit 
2e76958d304a3c4080d62f32449724eeb9b95d93) breaks uxa acceleration in the 
intel driver. The server crashes as soon as uxa_copy_area or uxa_copy_window 
are called. At least the equivalent of the exa_accel patch needs to be 
applied to the intel driver to restore working uxa acceleration with git 
HEAD of xserver. However, since the intel driver presumably is supposed to 
work with older versions, too, some version checking might be required as 
well.

A simplistic patch just calling the new mi copy functions is attached.

diff --git a/uxa/uxa-accel.c b/uxa/uxa-accel.c
index f42e0e2..7053067 100644
--- a/uxa/uxa-accel.c
+++ b/uxa/uxa-accel.c
@@ -492,7 +492,7 @@ uxa_copy_area(DrawablePtr pSrcDrawable, DrawablePtr 
pDstDrawable, GCPtr pGC,
                                  srcx, srcy, width, height, dstx, dsty);
     }

-    return  fbDoCopy (pSrcDrawable, pDstDrawable, pGC,
+    return  miDoCopy (pSrcDrawable, pDstDrawable, pGC,
                       srcx, srcy, width, height,
                       dstx, dsty, uxa_copy_n_to_n, 0, NULL);
 }
@@ -840,7 +840,7 @@ uxa_copy_window(WindowPtr pWin, DDXPointRec ptOldOrg, 
RegionPtr prgnSrc)
                          -pPixmap->screen_x, -pPixmap->screen_y);
 #endif

-    fbCopyRegion (&pPixmap->drawable, &pPixmap->drawable,
+    miCopyRegion (&pPixmap->drawable, &pPixmap->drawable,
                  NULL,
                  &rgnDst, dx, dy, uxa_copy_n_to_n, 0, NULL);

Regards,

Magnus Kessler




More information about the xorg mailing list