> I don't agree with everything but the general idea is a good one.
>
> > There should be master (possibly one for each card) which be the only
> > one being able to do this call:
> > DRM_IOCTL_MODE_SETCRTC - set CRTC parameters
> > (which i assume is set the mode, associat crtc-output and set framebuffer)
> >
> > Other call can be made by any others client:
> > - DRM_IOCTL_MODE_ADDFB - add a new FB object
> > - DRM_IOCTL_MODE_RMFB - remove an FB object
> > - DRM_IOCTL_MODE_GETFB - get info about an FB object
> > ...
> I don't feel it is necessary for the clients to be able to create a
> framebuffer, why, because from the kernel standpoint where the said
> object will live, it will only be a small container containing the
> buffer object(s), a list of crtc that is using the buffer object(s) as
> a scanout buffer and the information about its size and format. Read
> below for more.
>
> > In order to make this possible pinning a buffer will be done in SETCRTC
> > in which a FB that can fit the mode must be given. Thus ADDFB will
> > create a buffer but not pinned until used for scan out, so pinning happen
> > in SETCRTC. Note that each client does not necessarily  create its own
> > framebuffer.
> >
> > The idea behind this is that we can have a daemon (one for each card
> > or one for all of them) and this daemon can take framebuffer from client
> > and easily change btw scan out buffer (switching from X to console will
> > be made by the daemon and X might just not be aware of this). There
> > is other use case one can come up with such scheme like developping
> > EGL app under X and display its framebuffer by using it as a texture
> > in a GL app.
> >
> > So there is master (big boss of crtcs) and client or slave humble provider
> > of framebuffer. One point that might be also usefull is relation btw
> > client should we do somethings like parent/child ? So this might looks like
> > this (left are parent)
> > master (big boss)
> >   - X server (got its framebuffer)
> >      - X application
> >         - sub GL window of this application (might want to have its
> > framebuffer)
> >      - GL application (dri) client running X application (got its
> > framebuffer which
> >        can used as a texture by the compositor, hello redirected direct
> > rendering :))
> >   - EGL program (got its framebuffer)
> >   - Console (got its framebuffer)
> >   - GL app offscreen rendering (no framebuffer for scanout)
> > The idea behind this is that parent can use any object created by their
> > child in anyway
> > they like (this why we call them parent as parent always play with toy
> > created by their
> > child :o)). Maybe parent could also put restriction on what their child
> > can do (which
> > is another characteristics of parents).
> So why shouldn't the clients be able to creating framebuffer, because
> its only needed for in the kernel for setting the mode and for
> creating virtual dev nodes.
> That is its only used in the cases:
> User <-> /dev/dri/0fb1 <-> crtc/output
> User <-> /dev/dri/0fb2 <-> virtual
>
> It should not be used for passing around information to and from
> clients and sub clients. A framebuffer (the kernel side object) is not
> needed for offscreen rendering in theory only a BufferObject is needed
> for that and the userspace api can transmit the needed information
> between the different clients and sub client.
>
> IE: X the server is the client and a gl app rendering to a opengl
> framebuffer. This can be handled by a userspace API that is
> above/below the kernel sphere of interest.
>
> >
> > If people are happy with this i will update the wiki.
> >
> > Cheers,
> > Jerome Glisse
>

Well ain't I'm rude not signing off :)

Cheers Jakob "Wlallbraker" Bornecrekrantz.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to