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

Attachment: xv.tgz
Description: application/compressed

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to