Problem in writing an accelerated (XAA) driver.

Matan Ziv-Av matan at svgalib.org
Thu Jun 25 07:22:46 PDT 2009


Hello,

I am working on an accelerated driver for Samsung S3C6410 SoC.

I started with only implementing solid fills, i.e. I filled only the 
fields:
xaaInfo->Sync
xaaInfo->SetupForSolidFill
xaaInfo->SubsequentSolidFillRect
xaaInfo->SolidFillFlags

This works in the sense that the functions are called, and draw the filled 
rectangles correctly. But, the X server uses 100% CPU time. Even if I 
define only the Sync function (which is an empty function), the server 
still uses 100% CPU. If I comment out the call to XAAInit, the problem 
does not occur.


The probelm occurs when ScreenInit function is

s3cXAAScreenInit(ScreenPtr pScreen)
{
     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
     FBDevPtr pFBDEV = FBDevPTR(pScrn);
     XAAInfoRecPtr xaaInfo;
     pFBDEV->xaaInfo = XAACreateInfoRec();
     if (!pFBDEV->xaaInfo) {
         return FALSE;
     }

     xaaInfo = pFBDEV->xaaInfo;

     xaaInfo->Sync = s3cXAASync;

     if (!XAAInit(pScreen, xaaInfo)) {
         DESTROY_XAA_INFO(pFBDEV);
         return FALSE;
     }
     return TRUE;
}

An s3cXAASync is :

static void
s3cXAASync(ScrnInfoPtr pScrn)
{
}


-- 
Matan.



More information about the xorg-devel mailing list