rotate button sucks on the XO

jordan at jordan at
Mon Mar 2 23:29:48 EST 2009

> Jordan, thanks for the info.
> I only started to use the XV overlay because I had this little hope that
> somehow I could get a pointer to a hardware buffer to avoid blitting the
> data but as I see it now the LX driver simply copies the overlay data to
> the hardware buffer so I could just use simple X surfaces as well
> speedwise. Is it true?

Probably so.  There might be a way to get Xv to share a pointer in video
memory, but I'm not sure what that might be.

> Could you please answer those question from my earlier message? (copied
> here):
> "A little question to Jordan Crouse or anybody else who can answer.
> Here Jodran told me that the Geode can do XV flipping:
> It can be that he either did not reflect to that one part of my message
> or I am just too stupid to make it work. So what I do not see in the XV
> documentation is how to allocate two xvideo frames and flip between
> them? What this code currently does is allocating one frame and doing
> XvShmPutImage. Because its speed depends on the size of the xvideo frame
> I think it does blittting (copying) and not flipping (switching).
> So how to do flipping?
> ps:
> Actually I would need 3 frames for triple buffering but I would be happy
> even with 2 frames. "

The hardware doesn't understand double buffering, at least not in the
sense that you give the hardware multiple buffers and flip a bit to switch
them.  The nominal way of handling double buffering in a Xv driver is to
allocate twice the buffer space. XvPutImage alternates between the
buffers, and gives you the time to update the buffer and queue it for
display on the next vsync. This won't result in any speed increase, but if
you are experiencing tearing, then it is a reasonable fix.

Your only hope for a speed increase for flipping (or otherwise) is to
directly access the video hardware.


More information about the Devel mailing list