diff options
Diffstat (limited to 'xorg-server/hw/xfree86/doc/devel/exa-driver.txt')
-rw-r--r-- | xorg-server/hw/xfree86/doc/devel/exa-driver.txt | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/xorg-server/hw/xfree86/doc/devel/exa-driver.txt b/xorg-server/hw/xfree86/doc/devel/exa-driver.txt deleted file mode 100644 index 048307ee7..000000000 --- a/xorg-server/hw/xfree86/doc/devel/exa-driver.txt +++ /dev/null @@ -1,94 +0,0 @@ -Adding EXA support to your X.Org video driver ---------------------------------------------- -EXA (for EXcellent Architecture or Ex-kaa aXeleration Architecture or -whatever) aims to extend the life of the venerable XFree86 video drivers by -introducing a new set of acceleration hooks that efficiently accelerate the X -Render extension, including solid fills, blits within screen memory and to and -from system memory, and Porter-Duff compositing and transform operations. - -Configuration -------------- -A new config file option, AccelMethod, should be added to your driver, to allow -the user to select between the EXA and XAA acceleration APIs. - -Some drivers implement a per-instance useEXA flag to track whether EXA is -active or not. It can be helpful to also conditionalize XAA support with an -ifdef so that it can easily be turned off/removed in the future. - -Setting the flag and checking for AccelMethod can be done in the driver's -Options parsing routine. - -Loading EXA ------------- -EXA drivers in the XFree86 DDX should use the loadable module loader to load -the EXA core. Careful versioning allows the EXA API to be extended without -breaking the ABI for older versions of drivers. Example code for loading EXA: - -static const char *exaSymbols[] = { - "exaDriverAlloc", - "exaDriverInit", - "exaDriverFini", - "exaOffscreenAlloc", - "exaOffscreenFree", - "exaGetPixmapOffset", - "exaGetPixmapPitch", - "exaGetPixmapSize", - "exaMarkSync", - "exaWaitSync", - NULL -}; - - if (info->useEXA) { - info->exaReq.majorversion = 2; - info->exaReq.minorversion = 0; - - if (!LoadSubModule(pScrn->module, "exa", NULL, NULL, NULL, - &info->exaReq, &errmaj, &errmin)) { - LoaderErrorMsg(NULL, "exa", errmaj, errmin); - return FALSE; - } - xf86LoaderReqSymLists(exaSymbols, NULL); - } - -EXA is then initialized using exaDriverAlloc and exaDriverInit. See doxygen -documentation for getting started there. - -Further documentation ------------- -The EXA driver interface and public API is documented using doxygen in -xserver/xorg/exa/. To build the documentation, run: - doxygen -g - doxygen Doxyfile -The resulting documentation will appear an html/index.html under the current -directory. - -EXA initialization ------------------- -Your driver's AccelInit routine must initialize an ExaDriverRec structure if -EXA support is enabled, with appropriate error handling (i.e. NoAccel and -NoXvideo should be set to true if EXA fails to initialize for whatever -reason). - -The AccelInit routine also needs to make sure that there's enough offscreen -memory for certain operations to function, like Xvideo, which should advertise -a maximum size no larger than can be dealt with given the amount of offscreen -memory available. - -EXA and Xv ----------- -Video support becomes easier with EXA since AllocateFBMemory can use -exaOffscreenAlloc directly, freeing a previous area if necessary and -allocating a new one. Likewise, FreeFBMemory can call exaOffscreenFree. - -EXA teardown ------------- -At screen close time, EXA drivers should call exaDriverFini with their screen -pointer, free their EXADriver structure, and do any other necessary teardown. - -EXA misc. ---------- -In many drivers, DGA support will need to be changed to be aware of the new -EXA support. - -Send updates and corrections to Jesse Barnes <jbarnes@virtuousgeek.org> or -just check them in if you have permission. |