Xv to pixmaps (was Xv Xdbe combination)

Matthew Fincham matthewf at cat.co.za
Fri Apr 23 04:53:40 PDT 2010


On 22-04-10 10:04, Michel Dänzer wrote:
> 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.
>    
Well, Xv to pixmaps is working and I have non-flickering, 
double-buffered, scaled video with nice overlays. Thank you so much for 
your help.

Attached is a patch to support Xv to pixmaps for Xorg 1.3.0.  I am not 
sure how it will apply to later versions, so I have included the entire 
xf86xv.c for easy reading so that it can be ported (if necessary).

This has raised a subsequent issue however. Previously the system I am 
working on was using XSHM_PIXMAPs for fast display. I understand with 
the EXA architecture this is no longer supported. Is this correct? What 
can be used in its place with equivalent performance?

Thanks again
Matthew
-------------- next part --------------
A non-text attachment was scrubbed...
Name: xv.tgz
Type: application/x-compressed
Size: 15145 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg-devel/attachments/20100423/24825186/attachment-0001.bin>


More information about the xorg-devel mailing list