Xv to pixmaps (was Xv Xdbe combination)

Michel Dänzer michel at daenzer.net
Thu Apr 22 01:04:54 PDT 2010


On Mit, 2010-04-21 at 13:28 +0200, Matthew Fincham wrote: 
> On 20-04-10 11:15, Michel Dänzer wrote:
> >
> >> One unexpected thing I found was that the (x,y) of the drawable, when it
> >> was a pixmap, was not (0,0) but an apparently random number. This may
> >> point to a problem with what I have done, but it is worked around (see
> >> xf86xv.c:1819).
> >>      
> > Are you using XAA? Textured video to pixmaps can't work reliably with
> > that. Use EXA (or UXA with newer versions of the intel driver).
> >    
> I have been using XAA, but it doesn't work when using EXA either

The difference is with the latter you have a chance to make it work. :)


> 1. Does REGION_INIT/REGION_UNINIT need to be called when using a pixmap?

I assume you're referring to ClipRegion. It certainly looks like that
may not be initialized properly. Probably best to use REGION_INIT() as
is done for WinRegion in the window path. Then you can trace in the
driver if it's processing a single cliprect as expected.


> 2. Any reason why the drawable (x,y) is not (0,0) when it is a pixmap - 
> should it be? The position seems to vary quite a bit, and the numbers 
> seem quite large (>2000).

It's an artifact of how XAA handles pixmaps.


> 3. Pixmap memory - is it card or system memory?

With EXA, the driver can ensure that the pixmap is GPU accessible. The
code for that should already be there, at the driver level there should
be no difference whether the pixmap is retrieved with
pScreen->GetWindowPixmap or passed in directly.


-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer



More information about the xorg-devel mailing list