Window procedures in ScreenRec not populated by DDX driver. why?

Adam Jackson ajax at nwnk.net
Wed Feb 16 08:13:00 PST 2011


On Feb 15, 2011, at 9:08 PM, kumar vemuri wrote:

> Hi Pauli,
> 
> But some window procedures like the window painting procedures
> (ClearToBackground, CopyWindow and compositing) can be accelerated by
> hardware. 
> a. Shouldnt these procedures be implemented by the driver (to get hw
> acceleration for these procedures)? 
> b. Most of the driver implementations dont implement these window
> painting functions. Any reasons for this? 

The default implementation of those procedures are implemented in terms of
other screen and GC paths that the drivers _do_ accelerate.  You're free to
implement your own, if you like, but that's only worthwhile if the result is
actually faster.

For example, miClearToBackground calls ->WindowExposures (usually
miWindowExposures), which calls miPaintWindow, which calls pGC->PolyFillRect.
So if you implement that last one - and all the extant acceleration
architectures do - then you have accelerated background clears.  More
importantly, all the _other_ logic required by a background clear, like
computing and sending the exposure events, is handled by common code, and is
therefore not something your driver can get wrong.

- ajax


More information about the xorg-devel mailing list