Slashdot Mirror


Qt On DirectFB

Ashcrow writes "The feasibility for DirectFB to replace XFree86 just a little stronger thanks Maurizio Monge very first alpha release of Trolltech's Qt library for use in DirectFB. You can check out some screenshots or go straight to the source. And yes, it has been released as Free Software."

11 of 417 comments (clear)

  1. Re:Before all the flamers get in. by mindstrm · · Score: 5, Insightful

    I think you are missing the point.. we aren't saying "This is a drop in replacement for X" .. it's NOT X. I'm saying, to build desktop GUIs, we don't necessairily need to use X as a base.
    Yes, that might mean that only apps written for that gui would work.. but that gui could be, say, QT (as the article is about) or something else.

    See OSX for an example. Can I run X apps? Sure, if I fire up the X server. ANd they run just how you expect them to, they look the right way, and everything... but the apps that work really well use the native display library, not X.... and they work even better. And no, it's not because the X server sucks, in fact, the X server is quite good.

    We are adding so much stuff on top of X we have to question if we really need what X provides, and if it can't be better provided better another way.

  2. DirectFB Inherently Insecure? by istartedi · · Score: 5, Insightful

    Not being familiar with it, the first thing I did was read the FAQ:

    Q: Whenever I try to start a DirectFB application, I get the error message

    Error opening /dev/tty0
    A: You have to be root to run DirectFB apps. The main reason is that only root is allowed to change virtual terminals.

    So. In order to get the supposed benefits of DFB, you have to run apps as root? I guess maybe you could log on as a user and su the DFB apps, but that's a pain. Why should a graphics lib muck up security? That seems inherently broken to me. If it really just abstracts graphics then there should be no problem with user apps running it.

    This isn't really my area of expertise. Perhaps there's something I'm missing. Can anybody clue me in?

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  3. Re:Before all the flamers get in. by MbM · · Score: 4, Insightful

    When you do run a QT or GTK app over remote connection, the remote (server) library renders the widgets to x primitives which are then sent over to the local (client) computer to display.

    Why is it that (to my knowedge) nobody has done this at a higher level? If the client already has a QT library why not simply send over a 'draw widget' command to that library, creating a proxy out of the server's library.

    --
    - MbM
  4. Re:Before all the flamers get in. by Arandir · · Score: 5, Insightful

    In reality, though, to a great many linux users, it's a neat trick that you don't necessairly NEED.

    In the midst of citing reality, you're ignoring reality. First of all, Linux isn't the only OS that uses XFree86, X11R6, or another X11 based windowing system. Heck, it ain't even the only free OS that uses it.

    Second, even supposing Linux will achieve it's goal of "World Domination", where everyone must use Linux or be branded a luser, it's still ignoring the fact that Linux is a Unix-like operating system, and to confine it to only the home based game machine is to deny it 95% of its potential.

    Third, that "neat trick" doesn't cost you a damn thing if you don't need it. The only thing holding back XFree86 performance is the fact that it must operate in userland.

    I've heard the phrase "why keep it of 95% of the people don't use it", referring to the remote network capabilities of X11. Well, why not turn that statement on its head? Why support SMP in Linux, if 95% of the users don't use it? Heck, why do I need snowchains for my car if 95% of the time I won't be driving in snow?

    Fact of the matter is, most people using Linux, BSD or UNIX outside of the home will want and need the networking capabilities of XFree86. If you want Linux to be confined to home game machines, then go roll your own distro. But in the meantime a lot of us want the capabilities of XFree86.

    --
    A Government Is a Body of People, Usually Notably Ungoverned
  5. Re:Before all the flamers get in. by Anonymous Coward · · Score: 4, Insightful

    People have done things like that, and it sucked. The reason is that it requires any remote machine to have a compatible version of Qt and GTK and every other damned toolkit someone might want to use. This is an administration nightmare at best, and impossible at worst. (What if you have two apps, one on each machine, and they both require incompatible versions of some toolkit? Then you simply CAN'T display either app remotely without jacking up the other app, or adding some overwrought version management system. What if some app you use requires the very latest version of its toolkit for some interesting new widget it adds -- do you really want that to force an upgrade on every machine you might want to display that app on?)

    To make this a little more concrete, let me make a little analogy. Imagine you have a web site, and you want to push more processing to the client. So, you change your dynamic PHP code into JavaScript code. Since you now no longer have the power to just say "this must run under version X of PHP, so we're putting that on our server", you have a choice: either make your app run in every javascript implementation that you might encounter, or place restrictions on what version(s) of javascript can be used to visit your site. If you had left it in PHP, there would be some disadvantages (slower, etc), but at least you'd know it would work with any browser.

    Now, naturally, the "any browser" thing is a myth. There are quirks with different HTML implementations too. But this brings out an important point. Somewhat unlike HTML, the great thing about X11 is that it does something really simple. It doesn't concern itself with complex details like what a doubleclick means, what a button is, etc. It stays at a nice low level. As such, it's more easily possible to reach a point where it's matured and it's stable. The X11 that some person has on their machine will be compatible with everyone else's, by and large, because it's at a low level and can be stable and mostly unchanging.

    So, while X11 isn't a paragon of simple, elegant, modern, clean design, it or something like it (with the same goals of sticking only to universal primitives, but maybe also with support for changing resolutions, etc.) is a very beneficial thing for the reasons similar to why Swiss banks are a beneficial thing.

  6. Re:Sounds like a plan. by Natalie's+Hot+Grits · · Score: 4, Insightful

    Restrictions on smoothness and responsiveness to user input are due more to driver and kernel performance characteristics than issues with X itself

    This is a myth, and an XFree86 developer, board member, and one of the founders seems to agree:
    I've even pissed off Keith and many others on the Core Team by pointing out that X is obsolescent. I've been working in the Windows world for years now, and client-server display systems are utterly irrelvent to the majority of real-world computer users. X needs to be replaced by a direct-rendered model, on which a backwards-compatible X server can be reasonably trivially implemented.

    Nobody except people who use X over the network extensively are making claims such as yours. There are many people who do extensive GUI research and programing contradicting what you are saying. the KDE and GNOME projects have both showed interest in direct rendering models. There is a HUGE project of people doing exactly what the above link says. Implementing a direct rendered GUI with an X layer atop for remote display. There is no reason that X should treat everything (including local rendering) as a network socket connection when it can talk to the hardware directly. It is just too much overhead.

    People making claims that the UNIX SOCKETS for local display don't involve overhead haven't made their evidence available. if this is true, explain yourself. There is real world proof that the DirectFB model is faster for local rendering, and until XFree86 either gets its own direct rendering model built into it for 2d rendering, and all the bells and whistles that DirectFB has (alpha blending with hardware acceleration, desktop/screen resloution switching on the fly, etc), you people claiming X's faults aren't with the protocol and implementation but with drivers are all blowing hot air.

    the unix desktop CAN be faster. But X/XFree86 either needs to grow with the modern desktops, or it needs to be replaced on the desktop with something that works better. Either way, competition is a good thing, and I'm glad that DirectFB is making some headway. Porting QT/Free edition to DirectFB is going to make this competition even better, and the users will win out in the end.

    I'm not bashing X here. I'm simply saying that there are better methods to locally render 2D applications. They do exist. They are being developed. The X protocol and XFree86 was designed for UNIX in a client/server networked environment. This is not how most modern computers use on their 2D desktop. I'm not saying XFree86 or the X Protocol needs to go. But if it wants to be _THE_ unix desktop for everyone, it needs to take into account the growing popularity of pure-local rendering environments. (There is no argument from me against it being _THE_ unix desktop in a client/server networked environment)

    --
    Two infinite things: your stupidity and mine. But I'm not sure about the latter. If my sig offends you, I'm sorry.
  7. Re:Good start, but not useful yet by puetzk · · Score: 5, Insightful

    many KDE programmers have, because of QT/Embedded (and the zaurus).

    Konqueror, KHTML et all already have releases built to not need X (kdenox cvs module).

    Now, for the more desktop-ish apps this is certainly true, and X11 usage is (unfortunately) rather sprinkled about.

    The biggest single piece is probably replacing kwin, followed by the dcopserver.

    --
    The Matrix is going down for reboot now! Stopping reality: OK. The system is halted.
  8. Re:Before all the flamers get in. by buysse · · Score: 4, Insightful

    I don't want a whole bloody desktop with my remote X, thanks. I want a window. I want my emacs window, or my gvim window. (I actually do use both). I want an xterm, or a commercial product like ArcGIS with a single (fast) remote window. VNC is *not* an acceptable substitute for network transparency.

    --
    -30-
  9. Re:Before all the flamers get in. by eakerin · · Score: 4, Insightful

    And to a little more fuel to this one, using VNC requires a Framebuffer on the server(in this case the Farm running appliations, not the Display in normal X terminology), drastically increasing memory requirements.

    With X the only memory needed on the server is the memory needed for the application itself, since all of it's drawing routines are done directly to the computer running the display.

    Give it a try for yourself, Fire up the VNC Server on a unix system (Windows Users can't have 2 desktops on VNC anyway, so they don't get to complain), and check the memory usage for that, it should be approx Width X Height X Bits Per Pixel. (plus the overhead of VNC) Now compare that with the None needed for X, and I'll take X any day.

  10. Re:Before all the flamers get in. by SN74S181 · · Score: 4, Insightful

    Yes, but I want to run the same apps on an X server on any other machine on my network. The directFB apps won't do that. Once we start down an 'applications bound to a single framebuffer' path we're all stuck using KVM switches, VNC, and similar kludges; or we have to plant our butt in front of each machine to run graphical software on it. And both options suck.

    I have found that people who hate the X Window System are people who don't understand it. Many come from a PeeCee background and still don't get the idea that the network means more than 'that drive over there on a server' and HTML.

  11. Re:Sounds like a plan. by IamTheRealMike · · Score: 4, Insightful
    This is a myth, and an XFree86 developer, board member, and one of the founders seems to agree:

    As has already been pointed out to you, said XFree86 developer has been out of touch for so long that he thought Red Hat hadn't contributed to X, and now works on Windows entirely doing AOL stuff. When he took part in the XFree-forum list, he got flamed, badly.

    Nobody except people who use X over the network extensively are making claims such as yours.

    Don't be so short sighted. Maybe the reason nobody uses network transparency on Windows is because it blows so many goats? Have you thought of that? Yet, Microsoft have still taken architectural backflips to make it work, see W2K Terminal Services etc. It's a lame, poor imitation of actual network transparency, but they sell it anyway.

    Simply having worked in tech support, I can think of MANY times when being able to have an xterm launched to me, would have been a godsend, especially as said person could continue working while I also worked.

    There is a HUGE project of people doing exactly what the above link says. Implementing a direct rendered GUI with an X layer atop for remote display

    Which desktop uses that then? Cos AFAIK both MacOS X and Windows use a model similar to that of X internally. None of them are direct rendered.

    People making claims that the UNIX SOCKETS for local display don't involve overhead haven't made their evidence available. if this is true, explain yourself.

    Why don't you find out for yourself, instead of ranting on Slashdot? You know, there are indeed studies, performed under controlled conditions, that show the overhead of UNIX domain sockets is negligable. They even tried replacing them entirely with SHM segments at one point, but it made no difference. Domain sockets are one of the most heavily optimized IPC primitives in the kernel, and you are quite free to perform speed tests yourself. The only area that it makes any difference is when throwing large amounts of data through them, such as pixmaps (which is why we use the XSHM pixmap extension), and the memcpy may not be completed in the available timeslice. For small messages, ie the bulk of X traffic, there is no speed gain to be had.

    There is real world proof that the DirectFB model is faster for local rendering

    Er, that's so wrong. For most people, ie anybody without a Matrox G series card, it's far far slower.

    until XFree86 either gets its own direct rendering model built into it for 2d rendering

    .... which it has....

    and all the bells and whistles that DirectFB has (alpha blending with hardware acceleration, desktop/screen resloution switching on the fly, etc)

    ..... which it also has .... oh, unless you mean the ability to pointlessly make entire windows semi-transparent so you can't read what's on them, an ability that's useful primarily for screenshots with hot babes in the background

    you people claiming X's faults aren't with the protocol and implementation but with drivers are all blowing hot air.

    There are faults in every area of XFree/X11, nothing is perfect. The protocol needs some changes, which are being worked on, the driver interface needs to be broken to support proper save unders, and the scheduler is a dog. Needless to say however, DirectFB isn't a perfect work of art either. It's certainly useful, but right now it's not even competitive in terms of speed or features for 90% of users.

    I'm not bashing X here

    LMFAO. Yes you are. You've made many, many assertions, that you would know were wrong if you had actually sat down for a couple of weekends and done some basic research into the matter, like I have done. I have read boring reports, mailing lists archives, and chatted to various people involved, and so I'm pretty sure the impressions I have are accurate. There is nothing wrong with X as a local rendering mode