[forum] XFree86 5.0 TODO

Mark Vojkovich forum@XFree86.Org
Fri, 21 Mar 2003 15:42:54 -0500 (EST)


On Thu, 20 Mar 2003, Kendall Bennett wrote:

> Mark Vojkovich <mvojkovi@XFree86.Org> wrote:
> 
> > > If you kill it, make sure you replace it with something that will provide 
> > > equivalent functionality. Games and applications that wish to use 
> > > fullscreen graphics under X11 can utilise DGA today, but if you kill it, 
> > > you lose that ability. DGA is the closest thing that XFree86 has to 
> > > DirectX, but it could be *way* better.
> > 
> >     The problem IS the functionality.  That functionality is
> > unsafe and should go away.  There aren't many apps that use DGA in
> > a legitimate way, and those that do should be seeking alternatives.
> 
> What particular functionality do you believe is unsafe? More 
> particularly, if you believe it is unsafe, should we design a 'better' 
> DGA style interface for fullscreen applications that can be safe? Once 
> you have a safe replacement for DGA, then kill it off.

   I believe direct framebuffer access by clients to be unsafe.
Part of this is because it can never have exclusive access to
this hardware.  The server can VT switch away and you'll be
writing over the framebuffer of another server.  At least in
the case of NVIDIA hardware, there is critical state stored in
the framebuffer and you can hang the system.  Additionally,
there are implementation issues on various operating systems
requiring clients to have root permissions.  While that can
probably be worked around at the OS level, it doesn't change
that fact that there are problems with arbitration of this
shared resource that become difficult to solve when you are
relying on any-old-client to work with it.  OpenGL direct
rendering allows clients to touch the hardware directly - 
sortof.  There is an arbitration architecture in place that
is outside of the client's view and the applications itself
doesn't see this hardware.  It goes through a trusted library.  
OpenGL apps themselves aren't given pointers to hardware.
So there's a big difference between OpenGL and DGA.

   I also believe the apps that operate by scribbling in the 
framebuffer are passe.  If you're writing a game, use OpenGL.


			Mark.