DirectFB: A New Linux Graphics Standard? 437
Spy Hunter writes: "Some people really dislike the X Window System. DirectFB seems to be the answer to their prayers. Building on the framebuffer support available in recent Linux kernels, DirectFB adds hardware acceleration, input devices, and window management. It has been made (and LGPL'd) by Digital Convergence as a Linux video/television solution, but it is much more than that. It has the potential to replace X for Linux desktops. You want a transparent terminal? How about a transparent video player? Development is proceeding rapidly, with a GTK port and even an X server for legacy apps in progress. Could this be the future of the Linux desktop?"
They're nothing like each other! (Score:5, Informative)
(b) The X window system is a network-transparent graphical desktop environment based around the client-server paradigm. Sure, that could be useful.
You can't really have it both ways. It would probably be true to say, though, that the need for (b) is dying out, and the need for (a) is growing. But that's not what the headline was saying.
Re:AHHH (Score:2, Informative)
So there's no risk that they sue us...
Kudos to the LinuxTV.org guys (Score:3, Informative)
I believe the DirectFB package was originally designed to do onscreen graphics for a TV link up so you could have alpha channels overlaying the MPEG stream.
Very clever guys... my hat goes off to them!
Re:No, I don't want a tranparent video player. (Score:1, Informative)
If you have a Sony TV you should know how pretty alpha channels are
Re:They're nothing like each other! (Score:2, Informative)
Now, for my spiel on Transparant terminals....I never liked em. I like to run color Xterms and transparant terminals don't do much for me there. No matter what kind of background you use, the colors of the background always kind of blend with the text making it much harder to read. I would not mind things like transparant, attatched dialog boxes ala OSX, but so far as transparant Xterms, I have no use for them. I also don't think a transparant video player would be very useful either. Yeah, it looks cool, but usually when I am playing video, I want to WATCH it not work through or on top of it.
Personally, I think everyone's major beef about X has been is is being resolved. That would be crappy looking fonts. Anti-aliasing is fixing this gradually. You can now have an anti aliased KDE or Gnome desktop. That's nice. The only other complaint I can see is not so much as a complaint about Xwindows as it is about video card manufacturers. No matter what they do, they have to make money. If that means they withhold source or their spec so we can make good drivers, then, well, it doesn't matter whether you use X or DirectFB. You still have the same problem. X is a good thing. Network transparant applications is a good thing when it's security is implemented well (and we KNOW X has problems there). Let's fix X windows. I know, it's code is arcane and boring, but I can't help but feel that DirectFB feels more like the way Windows does things then Linux and we all know how well THAT works!
LBX = Low Bandwidth X (possibly off topic) (Score:4, Informative)
There's a standard X extension (?) called LBX that comes with XFree86 and others. Check out the LBX Mini-HOWTO [paulandlesley.org] if you are interested.
Cheers //Johan
Low Bandwidth X (Score:2, Informative)
I think systems like directFB are a step backwards. XFree86 already has shared memory and direct draw extentions (see vmware), designed for high speed local graphics. When running remotely, the X library falls back to it's normal protocol, and the apps slow way down, but still operate. The network transparency of X is far, far too usful to encourage a crop of apps that can't use it.
X isn't so bad... (Score:5, Informative)
First off, the complaints are generally levelled against what they see in a particular implementation of the X protocol, not the protocol itself. There seems to be no acknowledgement that while X servers of the past may have had implementation problems, that we have moved on and produced much more efficient and well-featured implemntations, particularly XFree. Through X extensions, XFree has become an X server that keeps the good of X, and improves on the bad aspects of older X servers.
The main gripe I see is "X is slow!!". Well, with XAA, X gets the same sort of acceleration as Windows display drivers for ordinary stuff. This requires that good drivers exist for your chipset, which is a good bet nowadays, but not as likely as Windows. Not XFree's fault, and it's clear that any FB based solution won't help matters in this regard (driver support)
People also have complained about 3D performance. XFree4 has DRI which really works well to address the issue. For Video playback, there is XVideo which provides good access to hardware scalars and filters. There is work being done on an XMovie extension that could provide access to hardware video decoders, such as the MPEG-2 decoder on All-in-Wonder cards (though I haven't heard much about it lately). Another complaint I hear is that it is ugly, that it lacks the bells and whistles of 'modern' systems. Well, there is now the XRender extension which can be used to provide translucency (if anyone bothered to implement it) and in turn provide both anti-aliased text and sub-pixel sampled font rendering (ala Window XP's cleartext).
Those who complain about X and say it needs replacement need to be a bit more educated. If you look at the projects that have aimed to replace XFree in the past, you see a very interesting pattern. Berlin is a good example of this. They set out to provide things that at the time people said "X cannot accomodate these features", but by the time Berlin progresses to any usable state, XFree has most of these features in XFree4. Let's face it, XFree in particular is a good system that can continue for quite a long time, and has only improved with age, contrary to popular belief.
It will... (Score:3, Informative)
Having said this, they're not quite there yet, but it's coming along nicely and is quite promising.
X is nice, but... (Score:3, Informative)
DirectFB was developed not for games, but for media convergence devices (Entertainment systems with Linux running as the core OS, etc.)- other people are latching onto it because of the above problems. DirectFB ditches the need for hacks like DGA (which is needed for things like tuner cards) and allows you to run things like video on demand systems, etc.
Oh, and next time, read up on the actual story, not the
My experience with coding in X. (Score:2, Informative)
Ok, now the only good things about X windows is that.... umm... it's a "standard" which is a word a lot of people like. I think DirectFB will be successful as long as X windows is still around to run all the older Xwindows dependant applications.
Re:X is nice, but... (Score:2, Informative)
Rubbish. (a) X tends to locally use unix-domain sockets, which can sometimes be zero-copy on linux, and (b) there's a shared memory system that nearly everything uses anyway.
Massive security hole buddy (Score:4, Informative)
however being able to ssh into any box and typing export DISPLAY=my_local_box:0.0 and then being able to run all the the remote Xapps on my box is is one of the greatest features on the planet.
Ouch- allthough your command to start the X proggie will be secure, the windowed program itself will be going over an unsecure channel if you use that method. (all your click are belong to them)
You should really look into X-forwarding (read man ssh).
Regardless- I too like the network transparency that is offered from X. If the damn X protocol would support SSL or something like it natively, then it would seriously speed up secure remote graphical logins. (search google for tcp over tcp to see why)
Sorry i was Lying about the SDL thing.. (Score:2, Informative)
A:
X needs to be able to switch to the desired resolution. For this to work, you need to have the resolution listed in the 'Modes' line in your XFree86Config file (and your Monitor must support it). SDL does not currently support changing resolutions on X servers that do not support the XVidMode extension.
The following example is taken from my config for XFree86-4.0.1, but 3.3.x is similiar. Note that if your monitor isn't capable of using these video modes, the X server will drop these modes from the list of available video modes.
Example:
Section "Screen"
Identifier "Screen 1"
Device "3dfx"
Monitor "Samsung LCD"
DefaultDepth 16
Subsection "Display"
Depth 8
Modes "1280x1024" "1024x768" "800x600" "640x480" "320x240"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
EndSection
Note the different entries for 8 & 16 bit screendepth. I.e. the 320x240 resolution is *not* available when X is started with 16bit depth (the default).
To test these entries, restart X after you modified XF86Config and press ctrl-alt-plus and ctrl-alt-minus to cycle through the resolutions.
Re:X isn't so bad... (Score:3, Informative)
Then, you still get the benefit of being ABLE to run an X server on a remote machine, and not being bound by its processor (whatever that may be). My personal gripe is the network bandwidth it requires for a good connection; I've never really been able to run an X session over the modem to my university account, which at times would be the whole point.
Re:X is nice, but... (Score:2, Informative)
Wrong. X does not require TCP/IP at all. If everything is running locally, Unix sockets and shared memory can be used. When running across a network, X can use another networking protocol lkie DECnet (though few would want to, AFAIK). TCP/IP is not necessarily part of the equation.
Re:How about client/server? (Score:3, Informative)
It does *not* use up "tons of RAM", as some people who don't understand the X architecture like to claim. If you see the X server using lots of RAM in top or the like, there are two very good reasons. (a) device mappings. Top counts this towards the total, but it isn't "real" physical memory being eaten. Have a 32MB video card? Guess why X looks 32MB bigger than it should?
(b) X stores pixmaps locally. This is why X *client* programs use less RAM than their Windows counterparts. One of the two (client or server) *has* to store any pixmap that's going on the screen. For speed over a network, it's much more intelligent for the X server to do so, since the pixmap will probably be drawn many times. So the client doesn't have to store its own copy...but it makes X look "bloated" because it's using some RAM itself to take load off the client programs. The overwhelming majority of RAM that X uses goes to this. If you're using Enlightenment with a pixmap GTK theme, the reason X is taking up more memory is because the client programs *aren't*.
The only real issue people have with X performance is that between the time an application wants to draw to the screen and the time the drawing happens, a context switch needs to occur. This is why the XFree folks came up with DGA, which avoids exactly this -- if you're just playing a game on the local computer, X imposes no overhead.
X does some damn cool things that Windows and friends will never do. Obviously, you can run programs over a network (without incredibly inefficient hacks like vnc). However, on a copy of XFree, hitting control-meta-kp or control-meta-kp- will let you switch resolutions, zooming in on something and letting you show stuff to people across the room (I use this a lot in my dorm room)
There are a few things that I don't like about X. X has a very sophisticated color management scheme, allowing you to output to just about any type of X server, but which can get complicated if you just want to draw something to the screen on your x86 box on XFree. That's why almost no one uses raw Xlib (X's own interface) and uses stuff like SDL or GTK, which handles the nasty details for you, and just lets you do your work.
XFree supports multiple monitors, desktops larger than your monitor, hardware alpha blending, shaped windows...
It's true that existing GUI "E-Z X configuration tools" haven't impressed me much, so you do have to maybe do a bit of poking to tweak out your configuration exactly the way you want it...but that's also true with most operating systems.
Oh, and Xlib doesn't natively support detatching windows from one X server and reattaching to another. I suppose this could be an issue, but since proposed replacements to X mostly don't do this *either* and since toolkits built on top of Xlib *can* do this...
Of course, you don't *have* to run an X server if you just want a console box...this [cmu.edu] guy doesn't run X.
For GUI systems, though, X is where it's at.
Re:Then don't use it... (Score:1, Informative)
Also, it sure is purty.
Re:video card drivers (Score:2, Informative)
Re:The problems with X (Score:2, Informative)
with dxpc using netscape over a slow (ISDN) link becomes at least 20 times faster in my experience...
XFree86 isnt slow... (Score:2, Informative)
Hardware: ASUS-CUV4X (via chipset), p3 866, 390mb RAM, Geforce256+32mb
Linux: Redhat 6.1 upgraded to Xf86-4.02, kernel 2.4.6, NVidia-1.0-1541
Windows: WinME with latest NV drivers, and all tweaks. (Was win2k and that was even slower)
Nothing special about that system, and I don't have any speed problems. Admitadly X does take up a fair bit Of hard drive, and about 4 megs of ram, but its I could scale that down pretty easily