Re: X driver: Using offscreen memory manager for Xv

Marc Aurele La France <[email protected]> Sat, 29 Dec 2007 14:44:41 -0700 (Mountain Standard Time)
Newsgroups gmane.comp.xfree86.devel
Message-ID <Pine.WNT.4.64.0712291441430.316@tsi>
On Mon, 26 Nov 2007, Bankim Bhavsar wrote:

> 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?

No, mode switches are irrelevent.  xf86InitFBManager() factors out the 
_virtual_ resolution, not the physical one.  If you are seeing crashes, it's 
because your driver incorrectly uses a virtual resolution that does not 
include all physical modes the user can switch to.

Marc.

+----------------------------------+----------------------------------+
|  Marc Aurele La France           |  work:   1-780-492-9310          |
|  Academic Information and        |  fax:    1-780-492-1729          |
|    Communications Technologies   |  email:  [email protected]         |
|  352 General Services Building   +----------------------------------+
|  University of Alberta           |                                  |
|  Edmonton, Alberta               |    Standard disclaimers apply    |
|  T6G 2H1                         |                                  |
|  CANADA                          |                                  |
+----------------------------------+----------------------------------+