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

Pauli Nieminen suokkos at gmail.com
Wed Feb 16 02:38:02 PST 2011


On Wed, Feb 16, 2011 at 4:08 AM, kumar vemuri <kumar210in at gmail.com> 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?
>

Drivers implement acceleration framework (XAA, EXA or UXA) instead of
single operations. Server then generates from higher level operations
low level operations in shared acceleration framework. If you follow
the code in miClearToBackground you probably understand better what
happens in between driver and server when rendering.

(*pGC->ops->PolyFillRect)(drawable, pGC, numRects, prect); is call to
exaPolyFillRect (if using exa) that actually converts the rendering to
form that is accelerated in driver hook "Solid".

Pauli

>
> Thx
> K
>
> On Tue, 2011-02-15 at 12:45 +0200, Pauli Nieminen wrote:
>> On Tue, Feb 15, 2011 at 4:54 AM, kumar vemuri <kumar210in at gmail.com> wrote:
>> > Hi,
>> >
>> >   In most of the reference DDX driver implementations, the Pixmap procedures
>> > (CreatePixmap, etc) are being implemented by the driver and also are getting
>> > populated in the ScreenRec structure by the driver. But none of the Window
>> > procedures (like CreateWindow, DestroyWindow ...) are being implemented by
>> > the drivers.
>> >
>> > Can someone throw a hint as to why the Window procedures of ScreenRec are
>> > not being implemented by the driver whereas the Pixmap procedures are?
>> >
>> > (I checked with a couple of reference implementations and this is a common
>> > observation.)
>> >
>> > Thanks
>> > -K
>>
>> CreatePixmap requires driver to allocate memory that is often
>> available for GPU to read and write. That requires driver specific
>> allocation scheme which makes it mandatory to implement CreatePixmap
>> in DDX driver. While CreatePixmap doesn't require any backing store
>> allocations. Allocation is done in composite/compalloc.c (if done at
>> all). If composite isn't used backing store is same as for root
>> window. Root window has pixmap allocated in server boot to hold
>> framebuffer memory.
>>
>> Pauli
>
>
>


More information about the xorg-devel mailing list