Re: XFree86 5.0 TODO
Mark Vojkovich <[email protected]>
| Newsgroups | gmane.comp.xfree86.forum |
|---|---|
| Message-ID | <[email protected]> |
On Thu, 20 Mar 2003, Kendall Bennett wrote: > Mark Vojkovich <[email protected]> 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.