A stab at some EXA documentation

Thomas Winischhofer thomas at winischhofer.net
Fri Aug 5 18:11:48 PDT 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jesse Barnes wrote:
> 
> EXA initialization
> ------------------
> Your driver's AccelInit routine has to initialize the EXADriverPtr and
> exa_scratch fields 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).
> 
> A few, card specific fields need to be initialized:
> 
>   EXADriverPtr->card.memoryBase = ? /* base of the framebuffer */
>   EXADriverPtr->card.memorySize = ? /* size of framebuffer */
>   EXADriverPtr->card.offScreenBase = ? /* start of offscreen memory */
>   /*
>    * Common calculation is (maybe this should be the default?)
>    * pScrn->virtualX * pScrn->virtualY * ((pScrn->bitsPerPixel * + 7) / 8)
>    */
> 
>   /* Alignment restrictions for accessing card memory */
>   EXADriverPtr->card.offscreenByteAlign = ?
>   EXADriverPtr->card.offscreenPitch = ?
> 
>   /* Max screen size supported by the card? */
>   EXADriverPtr->card.maxX = ?
>   EXADriverPtr->card.maxY = ?
> 
> The AccelInit routine also needs to make sure that there's enough
> offscreen memory for certain operations to function, like Xvideo, which
> needs at least as much offscreen memory as there is framebuffer memory?
> 
> [Is SiS broken here?  It just checks to see if *any* offscreen memory is
> present, and assumes that's enough.]


No. XVideo memory needs are depending on how big the source video is.
Your assumption in the previous paragraph is wrong.


> 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.
> 
> [Any other Xv gotchas?]

No, none that I know of. But there are a few DGA problems.


> EXA teardown
> ------------
> At screen close time, EXA drivers should free any offscreen memory that
> was allocated, 

That's not neccessary. The memory pool will be destroyed anyway.


> EXA misc.
> ---------
> [FillRect, BlitRect, BlitTransRect need to check for EXA?]

If you're thinking of the SiS driver, these are for DGA.

> [ScreenInit sets FastVidCopyFrom?]

If you're thinking of the SiS driver, that's SiS driver specific (not
that it would hurt to implement this globally, though).

Thomas

- --
Thomas Winischhofer
Vienna/Austria
thomas AT winischhofer DOT net	       *** http://www.winischhofer.net
twini AT xfree86 DOT org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFC9A5UzydIRAktyUcRAk5FAJ4iq1njP4aW4wflJOYKYKRjEQFlmQCfYJv7
Y+/wJuTj6iWQcHxacE8aBtk=
=j9TD
-----END PGP SIGNATURE-----



More information about the xorg mailing list