X driver: Using offscreen memory manager for Xv

Bankim Bhavsar bbhavsar at vmware.com
Mon Nov 26 17:08:35 PST 2007

I'm implementing Xv extension of linux X driver.

I need to use offscreen memory to allocate space for incoming video-frames.
Currently, I am using xf86InitFBManager() part of xf86fbman.h to
initialize offscreen memory by specifying a BoxPtr. The offscreen
memory is initialized such that it starts just after the on-screen
memory (using Frame Buffer Size).

When there is a ModeSwitch the Frame Buffer Size changes and the
offscreen memory previously allocated becomes a part of the on-screen
memory and causes X to crash. I was thinking of re-initalizing the
Offscreen memory manager on ModeSwitch and modify the previously
allocated pointers accordingly but I don't see a way to re-initialize
the offscreen memory.

One possible solution would be to leave some space before starting the
offscreen memory. That would work for common case but still doesn't
guarantee the framebuffer extending into the previously initialized
offscreen memory.

I also looked into EXA but doesn't seem to serve the purpose either.

Am I missing out on something? Any other possible solution?
Can someone point me to a driver that uses EXA and handles the offscreen 
memory on ModeSwitch?


More information about the xorg mailing list