GNOME Shell No Longer Requires GPU Acceleration
An anonymous reader writes "The GNOME 3.0 Shell with the Mutter window manager no longer requires GPU acceleration to work, while still retaining the compositing window manager and OpenGL support. GNOME Shell can now work entirely on the CPU using the LLVM compiler via the Gallium3D LLVMpipe driver. This will be another change to Fedora 17 to no longer depend upon the GNOME3 fall-back, which is expected to eventually be deprecated and further anger GNOME2 fans."
Is slow. I'm not sure that this is an advantage.
To offset political mods, replace Flamebait with Insightful.
That's what she said!
Will Gnome 3.2 work w/ Wayland? And also, does the above mean that Gnome is no longer using GCC to compile, but switching to the LLVM compiler? Honestly, it's time that GNU made GNUSTEP their official DE.
Oh for fucks sake. I've just switched the wife's laptop from Ubuntu 11.10 to the beta of Fedora 16, since unlike that Unity bollocks at least the GNOME shell has the "fallback" mode that turns it back into something usable.
The summary is a troll (as is typical for slashdot). Gnome 2 is still included in Fedora 17. The only difference is that if you have selected Gnome 3 for your desktop (which is default), and GPU acceleration isn't working, it will now fallback to unaccelerated Gnome 3 rather than Gnome 2. Regardless of your opinion of Gnome 3, this just makes sense; it would be much more confusing to get a completely different desktop than you were expecting just because your video drivers got borked. Not to mention it is wasteful to have to install Gnome 2 as a fallback if you want to use Gnome 3.
thank goodness for xubuntu and lubuntu! kubuntu too... the linux-for-OS-refugees world still has some shining lights.
~.~
I'm a peripheral visionary.
GNOME is a perfect study in how not to architect a software system. Everything about it is wrong.
The first mistake they made was trying to cobble half-assed object-oriented support onto C, rather than just using C++ or Objective-C. Everything about GObject is stupid and counterproductive. It makes writing code a real pain in the ass, since you need to use typecasting macros all over the place. Worse, this sort of code promotes library design that's slow and inefficient. To make it even worse, this style of C code is so convoluted that it is not optimized well by compilers, resulting in binaries that are far slower than they should be.
It basically goes totally downhill after that. This bullshit with GPU acceleration being required in the first place, and then this additional bullshit involving LLVM, is yet another in a long list of flaws and horrible decisions.
I encourage all of the developers that I mentor to use GNOME and to get a good look at its internals. I just make sure that they know not to do what GNOME has done. By seeing the mistakes firsthand, it's less likely that they'll repeat them in the future with the software that they create.
GNOME is a perfect study in how not to architect a software system. Everything about it is wrong.
The first mistake they made was trying to cobble half-assed object-oriented support onto C, rather than just using C++ or Objective-C. Everything about GObject is stupid and counterproductive. It makes writing code a real pain in the ass, since you need to use typecasting macros all over the place. Worse, this sort of code promotes library design that's slow and inefficient. To make it even worse, this style of C code is so convoluted that it is not optimized well by compilers, resulting in binaries that are far slower than they should be.
It basically goes totally downhill after that. This bullshit with GPU acceleration being required in the first place, and then this additional bullshit involving LLVM, is yet another in a long list of flaws and horrible decisions.
I encourage all of the developers that I mentor to use GNOME and to get a good look at its internals. I just make sure that they know not to do what GNOME has done. By seeing the mistakes firsthand, it's less likely that they'll repeat them in the future with the software that they create.
Mod AC up hes his spot on...
---- GENERATION 26: The first time you see this, copy it into your sig on any forum and add 1 to the generation.
GNOME is a perfect study in how not to architect a software system. Everything about it is wrong.
The first mistake they made was trying to cobble half-assed object-oriented support onto C, rather than just using C++ or Objective-C. Everything about GObject is stupid and counterproductive. It makes writing code a real pain in the ass, since you need to use typecasting macros all over the place. Worse, this sort of code promotes library design that's slow and inefficient. To make it even worse, this style of C code is so convoluted that it is not optimized well by compilers, resulting in binaries that are far slower than they should be.
Nonsense. GObject gives you multi-language bindings for free and if you're just an application developer it only makes your life easier. You can develop GNOME programs in C++, Python, Java or whatever suits your tastes.
I don't think the overhead resulting from using C is substantial at all. Maybe you get more overhead than C++ by always using virtual calls but that is offset by not doing C++ magic like unnecessary constructor/destructor calls. You'll have to back this up if you want me to believe you.
It basically goes totally downhill after that. This bullshit with GPU acceleration being required in the first place, and then this additional bullshit involving LLVM, is yet another in a long list of flaws and horrible decisions.
I encourage all of the developers that I mentor to use GNOME and to get a good look at its internals. I just make sure that they know not to do what GNOME has done. By seeing the mistakes firsthand, it's less likely that they'll repeat them in the future with the software that they create.
I'm not a fan of GNOME and I agree that they are headed in the wrong direction, but the problems are not at all due to GObject or C. Cut the FUD when you criticise GNOME next time.
Yes it still has its rough edges, but this reminds me of the 1.x -> 2.x transition. Another few versions, a few more extensions (and a better interface for using them) and I expect the rage about gnome 3 to die down just like it did with gnome 2's changed button order.
if gnome shell were actually nice. I'm with Torvalds; switched to XFCE
I know there's a lot of resistance to GNOME Shell, but it's clearly the future of GNOME (like it or not) and the weird non-3d degraded mode that you get with GNOME 3 + no 3d is something that's not really fit for anybody.
Personally, I really like GNOME Shell and I'm glad to see that it will be supported on older hardware. I always found the decision to completely ignore this hardware to be questionable and damaging to Shell's adoption rate (as if it wasn't going to have a hard enough time to begin with). Surely they could have provided a similar UX without the eye candy for older systems - at least now we have a workaround!
Debian Sid introduced Gnome 3 a couple of weeks ago and I had a bit of a tough time to come to terms with it, but now I have reached a good compromise by installing tint2 and the alternate menu extension (which basically brings back the switch off menu item).
I'm rather pleased with this setup and the only thing I am really missing are a couple of applets, but nothing major.
Or, as other have said, XFCE is a great alternative, especially if you NEED external outputs (which gnome-shell still miserably fails to manage properly).
Thanks for quoting the entire post to make your six-word response.
It's about time Slashdot stops accepting 'blogspam' links, such as Phoronix, instead of attributing the actual source itself. Phoronix didn't solve this, a developer did.
A badly written Slash summary (and 'article') which just links twice to the same braindead Phoronix article (which itself is a several day old duplicate) is bad. Very bad.
Dredged from the bottom of Phoronix:
Mailing list post: http://lists.fedoraproject.org/pipermail/devel/2011-November/158976.html
Fedora 17 feature point: https://fedoraproject.org/wiki/Features/Gnome_shell_software_rendering
Personally, I have little doubt that the "anonymous reader" is Michael Larabel himself.
"A Goddess rarely smiles for she is forced by others to be an island unto herself." - Zephiris
It basically goes totally downhill after that. This bullshit with GPU acceleration being required in the first place, and then this additional bullshit involving LLVM, is yet another in a long list of flaws and horrible decisions.
Err.. The llvmpipe driver is developed by mesa and xorg to provide a software fallback driver that is faster than the dog slow swrast driver. Exactly why is this "bullshit" and a "horrible decision."?
Not the GP, but what he's saying is far more true to my experience than what you're saying. I don't think the GP's comment is spreading FUD, either, but just a truth that many GNOME'ers don't want to hear.
Have you ever tried to use the GObject bindings for other languages? The Python bindings are the only ones that aren't terrible, but they weren't that good either. The rest were very incomplete, very outdated, or didn't exist at all. The theoretical benefits or capabilities of GObject are worthless if we can't use them in practice. I've had a lot more success with interoperability between Java, Scala, and Clojure than I ever have had with any GObject-based code. The same goes for .NET when the languages are C#, VB.NET and F#. Those all work seamlessly with almost no effort, while GObject needs a lot of hand-holding and even then it often just doesn't work.
What the GP says about some C compilers not doing a good job optimizing unusual C code is correct, too. I used to work on a compiler that generated C for a proprietary OO language and this artificial C code confused the optimizers of several popular C compilers. We got much better performance when we wrote our own native back-end. So I could totally see some of GNOME's bad performance being caused by this.
Also, KDE is very good evidence to back up the GP's claims. It's comparable in size and complexity to GNOME, but is written using C++ instead of C. On every computer I've ever used, KDE has been a lot faster than GNOME. It is also a far nicer environment to work with when you're writing code. OO programming is more natural in C++ than it is in C using GObject.
Don't write off the GP's comments as FUD. There's a lot of evidence to show that they're real problems.
Thanks for quoting the entire post to make your six-word response.
Mod AC up hes his spot on...
It was useful for the poster to quote the entire post because many of us often filter out all posts by Anonymous Cowards. By filtering out the ACs, you avoid a lot of crap and frosty pisses and enthusiastic racist name-calling.
It was an insightful post by someone who didn't care to create an account, even though it's very easy to create an account and Slashdot is very good about not misusing our email addresses. By quoting the good post in full, the GP performed a service to the community.
You are welcome on my lawn.
Because it would be faster and easier to maintain if all of said code was removed, period? Just because llvmpipe is an improvement over swrast doesn't make the resultant performance tolerable. It's just a better piece of chewing gum on the pipe that leaks by design.
Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
Except that anyone who sees the non-anonymous (nonymous?) reply can just click on "Parent" to see the original post.
Same'd.
Mod me down, my New Earth Global Warmingist friends!
And see a frost piss post...
Maxim: People cannot follow directions.
Increases in truth directly with the length of time spent explaining them
What would be faster and easier to maintain if the software fallback driver is removed from mesa?
One of GNOME’s original intentions was to create a distributed object framework similar to Microsoft’s OLE - that's part of where the name is from. But for a while now, that had gone, and been replaced by this dumbing down concept w/ crippled features. Heck, even Gnome 2 was less capable of making customized settings than KDE 3.5's Kontrol Panel was.
Given all that, why not just rename both the gnome forks to something else, since the original acronym no longer applies to either? And make GNUSTEP the new GNU Network Object Modelled Environment - it certainly does Objects better than Gnome 2 or 3.
Except that architect isn't a verb. The word is design.
Is that an attempt at recursive humor?
Presumably why they now have Vala.
AKA: Object Orientated?
I'm not convinced by this argument, it's possible to write inefficient code in any language.
While I don't actually like Gnome, being written in C is about the only thing I do like about it. I certainly don't consider GObject/Gtk to be worse than QT or Apples API's.
So there are doing to same thing Apple has been doing for years with LLVM. Which is why LLVM is part of xcode.
Way to innovate Gnome.
Seriously, the fallback is NOT gnome 2. it's horrible, and hopelessly broken. non customizable, you can't even right click.
Personnally, until being forced to switch to lxde due to upgrade necessities, i remain with gnome 2 for now. Perhaps Mint comes up with a gnome2 fork or another cute solution after all ??
What would be faster and easier to maintain if the software fallback driver is removed from mesa?
A 2-D gui.
Who says it's not a verb? The Oxford English Dictionary lists it as having been a verb since at least 1818, and as being more specific than "design".
Quidnam Latine loqui modo coepi?
GObject or C++ or scripting language or whatever - function call overhead is negligible compared to all that work (and make-work) which a typical API function of a typical GUI widget is doing. When for other coders several years ago those same APIs, libraries and languages, and *worse* optimizing compilers, worked perfectly well on 10, and even 100, times less powerful hardware - trying now to blame other coders' ineptitude on GObject, GTK+, C compiler, X server, or whatever, is nothing but pathetic and idiotic.
The tools may be imperfect, but writing good and fast code with them is perfectly possible - *if* a coder knows what he's doing. If GNOME authors wrote a slow monstrosity, it is their own failure and no one else's.
yes because racist name calling is just so horrible compared to other kinds, that supposedly more mature people can't help throwing adolescent fits over it.
Nonsense. GObject gives you multi-language bindings for free and if you're just an application developer it only makes your life easier. You can develop GNOME programs in C++, Python, Java or whatever suits your tastes.
Language bindings count for very little when they pull down the general design of the software as the OP has said. Besides, just how many applications are using those bindings? Very few.
I'm not a fan of GNOME and I agree that they are headed in the wrong direction, but the problems are not at all due to GObject or C. Cut the FUD when you criticise GNOME next time.
There is certainly no FUD at all from the OP. I don't think it's a silly thing to wonder why, with so many object oriented languages around and really one of the points of using C++, an object oriented library is tacked on to a demonstrably non-OO language in an inherently object oriented system like a desktop. Presumably that's why they're coming up with Vala these days as well.
Is that an attempt at recursive humor?
I don't think so because it's confirmed by your good self below:
Presumably why they now have Vala.
Yep, that's why they've tacked on another non-native language.
AKA: Object Orientated?
I believe the point is it's object oriented in the worst possible way.
I certainly don't consider GObject/Gtk to be worse than QT or Apples API's.
Uh, huh.
I often run remote GUI apps over SSH to my Ubuntu notebook. When you say that it doesn't work well with Gnome, does it also apply to single apps designed for Gnome (or designed for Gtk?), and would K* apps work better?
In practice, I regularly use Meld to compare 2 remote files, or Geany to edit them. As far as I understand, these 2 happen to be designed for Gnome/Gtk, rather than for KDE.
Would I be better off selecting KDE apps instead, or does it make no difference if I don't actually run the whole desktop, and just start a single app from my CLI SSH session?
Tons of Gnome projects and practically every RedHat and Canonical configuration tool is using the Python bindings.
google it.
Perhaps you should stop filtering ACs, in order to not shit-up Slashdot with reposts just to keep you happy?
Syllable : It's an Operating System
This bullshit with GPU acceleration being required in the first place, and then this additional bullshit involving LLVM, is yet another in a long list of flaws and horrible decisions.
WTF? LLVMpipe is not developed by GNOME. It's a Mesa project. LLVMpipe implementing compatibility with OpenGL API calls has nothing to do with GNOME's decision to rely on OpenGL for GNOME Shell.
The decision to use LLVMpipe instead of Fallback Mode isn't even a GNOME decision. It's a Fedora / Red Hat decision: LLVMpipe happens to be good enough now and that's why Fedora will ship it by default and Xorg will be configured to use LLVMpipe as fallback driver instead of the Vesa driver or so.
LLVMpipe is a very good software renderer. Nokia conducted benchmarks and in turned out that LLVMpipe performs many times better at rendering than Qt's own software renderer. That's why Nokia decided that future Qt versions will use LLVMpipe instead of a home-grown solution that performs worse.
> I've had a lot more success with interoperability between Java, Scala, and Clojure than I ever have had with any GObject-based code. The same goes for .NET when the languages are C#, VB.NET and F#. Those all work seamlessly with almost no effort, while GObject needs a lot of hand-holding and even then it often just doesn't work.
That's hardly a surprise. All JVM languages use the same object system underneath and were explicitly designed to interop with it. Same for CLR languages. When you use GObject, you are using it as a portable, but foreign object system that has to co-exist with the native one (like Python's). This is not poor design. It's a good work-around, given the constraints.
It's one thing to discuss whether GNOME should have been in C++, but another to compare it with JVM/CLR features. Core libraries should be native, not byte code.
I would rather see a few reposts of useful information than a hundred frosty pisses, goatses and lengthy GNAA screeds.
Maybe you disagree...
You are welcome on my lawn.
I don't care so much about the name calling, racist or not, as I do about the extra work I have to do with my index finger scrolling down past them.
What is a 1000 word NGAA screed vs the huge energy output of my scrolling finger?
You are welcome on my lawn.
For me, its funny to see how so called linux geeks and power users hates GS and Unity so much. Now I understand where the 2% desktop share comes from, seriously, our attitude (and taste?) toward USER experience and UI is bad. In fact, GS and Unity made my hope with desktop Linux high. That there are somebody out there actually care about how Linux apps and desktop both attractive and usable.
Who says you have to code in raw GObject C? Did you have a look at Vala, which is awfully similar to C#, or Genie, which is much like Python, but both of which compile through C+GObject down to machine code without a virtual machine? They're strikingly beautiful and lightweight.
It's British English, dick'ead.
All this development does is contribute to the mess that GNOME has become.
Unity is crap, it's a step backwards for usability and another barrier for people migrating to Ubuntu. Labelling the end-users as a group of complainers only shows how out-of-touch and pig-headed the developers have become. Developing for GNOME has become a chore more than anything, the reason why is easy to understand when you start using the barely functional API. Most importantly and it's become so bloated with superfluous visual effects and useless applications that the form-factor unity was designed for (Small screen netbooks) can barely run it, forget about trying to put a recent Ubuntu install on an aging computer.
GNOME need to cut this bullshit of trying to change the desktop UI for the sake of being different and focus on the end-user, otherwise given their current attitude GNOME will become completely irrelevant in a couple of years.
uh, yeah it is
You've had AC's disabled for a while, eh? I only ever see a few frosty pisses or goatse's or whatever per discussion, and a lot more useless shit from people who've actually signed in.
My blog. Good stuff (when I remember to update it). Read it.
I have already written off Gnome 3.x as being counterproductive. True, it is geared to the email/internet browser society, but it is definitely not a developer's or an interface that is fast in use, or easy to use with dual monitors.
XFCE is my standard since Fedora 15.
Leslie Satenstein Montreal Quebec Canada
Are you kidding me?! The C++ bindings are top notch. GTKmm is way better than some of the other C++ GUI frameworks that I've seen! The C# bindings are also top notch! GTK# is way easier than Window.Forms by a mile, it's just a shame it doesn't integrate well with other platforms.
GObject has improved language bindings. I'm not a C person by any means. I know where a lot of people are coming from when they talk about the C GObject. Seriously, take a good look at GTKmm and QT. The only thing that QT has really going for it is is QT Quick.
Yes does making the 3D bindings LLVM make sense? Not really, but the GNOME people are really dead set on this new UI. I've worked in it and it feels a lot better than where some desktops are going. There is a lot missing, don't let me sugar coat it and I think the GNOME people should be tied to the pole just like the KDE people were during 4.0.
But just like the KDE 4.0, by KDE 4.5 the desktop was usable again. Now with 4.7 everything feels wonderful with KDE again. I want to hold out hope that the same will be said for GNOME by the time we get to 3.10 or 3.14. So yeah they are messing up royally now but let's not short sight ourself. GNOME is f'ing up but I am holding out that they'll get it all together soon.
Bullshit. Constructors and destructors fall into several categories:
Virtual function calls, OTOH, (almost) always inhibit optimizations. The one exception I can think of is the case where the compiler sees a concrete class declared in main and it can theoretically bypass the vtable.
There is a hell of a lot of whining about GNOME 3 here. I'm a free software developer of desktop software (AbiWord). I personally like GNOME 3 and its approach to do a new take on how best to present a computer interface to users. I also maintain systems for my mother and daughter who are definitely not computer geeks. They're both impressed and comfortable with GNOME 3.
So my extremely small sample imply that GNOME 3 is a good step. For the computers geeks out there there a plenty of alternatives. Find the one that works for you.
No. I never said I had ACs disabled. I said that "some of us" have ACs blocked.
I treasure every GNAA post as a little gift, connecting me to a an earlier, simpler era, before the big telecoms took over the Internet when men were men and women were in pornographic gif files spread across multiple Usenet posts.
And I do mean "spread".
You are welcome on my lawn.
I'm still in Ubuntu 10.04 LTS. I fear this thing called Gnome 3 that I'm going to have to install in the LTS. Can any either write up or point me towards a good informative write-up what exactly the biggest differences are which a Gnome 2 user might find confusing or annoying?
Actually, thanks to GObject introspection, bindings will no longer lag. They will automatically get the new api. This is how the javascript bindings for GNOME Shell work. If you gobjectize any library, and add introspection you'll be able to get the new api for free and use it for extensions. It what makes the GNOME extensions a beautiful thing.
I don't agree with any of the GP's assertions.
doesn't X already provide a 2D blitter? doesn't gtk et al support this still?
I also like gtkmm more than Qt. The only problem with gtkmm is sigc++ which is very tricky to use correctly with threads. Essentially the auto-disconnection of signals brought about by sigc::trackable is at the core of the broblem.
GNOME is a perfect study in how not to architect a software system. Everything about it is wrong.
The first mistake they made was trying to cobble half-assed object-oriented support onto C, rather than just using C++ or Objective-C. Everything about GObject is stupid and counterproductive. It makes writing code a real pain in the ass, since you need to use typecasting macros all over the place. Worse, this sort of code promotes library design that's slow and inefficient. To make it even worse, this style of C code is so convoluted that it is not optimized well by compilers, resulting in binaries that are far slower than they should be.
It basically goes totally downhill after that. This bullshit with GPU acceleration being required in the first place, and then this additional bullshit involving LLVM, is yet another in a long list of flaws and horrible decisions.
I encourage all of the developers that I mentor to use GNOME and to get a good look at its internals. I just make sure that they know not to do what GNOME has done. By seeing the mistakes firsthand, it's less likely that they'll repeat them in the future with the software that they create.
I wish it had ObjC/C++/ObjC++ as part of an Agnostic Model giving me more re-use with Cocoa. You're absolutely buying the wrong dope if you have a problem with LLVM. It will replace quite a lot of software in the FOSS word presently co-dependently tied to GCC and that's great news. If you have to understand then you really aren't involved with what's going on with LLVM/Clang.
If Mesa is getting a better software rasterizer through LLVMPipe it means that GNOME Shell (and KDE, Unity, xfce et al) can support users of older hardware without constraining what they can do that. That ultimately means better performance for the majority who do have GPUs, and it also means that Linux as a whole offers an experience that can compete against desktops running on other operating systems.
I use Gnome-Shell on my office machine with a [Geforce 9500 GT] and it works fine. Beside some stupid design mistakes (which will most likely be addressed in future) it is nice to work with. However, the shell has two main problems. First when choosing the application menu under activities it takes seconds to appear. On a netbook (where I tried to use it as well) it took 15 seconds. As we all know that a system is considered unresponsive after 2 sec., this is definitely a no go. So performance of the application menu is one problem. There are also other performance problems all over the place, but this is the most prominent.
The second, problem is the used language. While I can understand it, that they wanted to use a fast JavaScript engine as these perform so well in browsers, which have become application interface servers these days. The language itself sucks as it has too many options to do things and too many options to do them wrong (which makes it slow and buggy and hard to debug). So I wonder why they didn't define at least a DSL to abstract from the Javascript monster (As Gnome did with Vala for gobject).
The effort spent by programmers around the world who have written GObject overhead -- the annotations in C, the extra macros when using it, and so forth -- dwarfs what it would take to create a tool to extract similar information from C++ class definitions. There are free-software C++ parsers out there, and well-known techniques to extract annotations from comments.
But hey, GObject lets people save an entire register that might otherwise be dedicated to the "this" pointer.
yes because racist name calling is just so horrible compared to other kinds, that supposedly more mature people can't help throwing adolescent fits over it.
Spoken like a true moronic racist.
To have a right to do a thing is not at all the same as to be right in doing it
So you don't know how to use the 'parent' button under a post I take it?
Big quotes are unnecessary, both on USENET and here.
Sigh.
- Michael T. Babcock (Yes, I blog)
GNOME is a perfect study in how not to architect a software system. Everything about it is wrong.
The first mistake they made was trying to cobble half-assed object-oriented support onto C, rather than just using C++ or Objective-C. Everything about GObject is stupid and counterproductive. It makes writing code a real pain in the ass, since you need to use typecasting macros all over the place. Worse, this sort of code promotes library design that's slow and inefficient. To make it even worse, this style of C code is so convoluted that it is not optimized well by compilers, resulting in binaries that are far slower than they should be.
I don't think the overhead resulting from using C is substantial at all. Maybe you get more overhead than C++ by always using virtual calls but that is offset by not doing C++ magic like unnecessary constructor/destructor calls. You'll have to back this up if you want me to believe you.
You are incorrect here. In C++, if you choose to make virtual calls, you pay the price of indirection via a vtable (this pointer). That's it. You only pay the price in classes which have virtual methods. With GObject, all classes contain a vtable, i.e. all class methods take a pointer to the type instance, which contains within it a pointer to the vtable. Every GObject instance contains this overhead, which makes instantiation of GObject expensive, and additionally increases the memory required for every object. In comparison, you don't pay this overhead for C++ classes unless you actually require it. This isn't including the overhead of additional GObject features such as properties, which are both inefficient to process and are type-unsafe, and the use of "construction properties" in object instantiation. What makes it truly awful is that all this work to implement OO in C is mostly done by hand! You have to manually create your own vtables; you have to manually cast all types to the correct type, and if you get it wrong the compiler won't typically tell you. You have to understand the intricacies of how a C++ compiler works to implement an inferior version in C! Why would anyone willingly inflict this upon themselves?
But this is only the beginning of the GObject problems. When using GObject, the type resolution is done at run-time. Not only does this make programming unsafe--the many typecasts can hide typing issues, leading to failure at run-time rather than at compile-time, it has additional run-time overheads. Here are a few reasons: G_TYPE_CHECK_INSTANCE_CAST, G_TYPE_CHECK_CLASS_CAST, G_TYPE_CHECK_INSTANCE_TYPE, G_TYPE_CHECK_CLASS_TYPE, G_TYPE_INSTANCE_GET_CLASS. And you'll also need to check every function argument taking a GObject to make sure it's of the correct type with G_TYPE_CHECK_INSTANCE_TYPE (or commonly using a wrapper around it). This is not a cheap operation, it has to check the GType type register, which involves a string lookup in a hash table (GQuark, at least last time I looked). So you have several of those for every function call if you actually investigate the use of all the uppercase casting macros, and again inside the function. This is mostly absent for C++ code (the type checks and casts are done at compile-time), and C++ RTTI involves simple pointer comparisons of typeinfo objects; much faster, and again type-safe.
Here's an example of class using GObject: header source
This is the same class using C++
Modern graphics cards don't even have 2D support any more. They fake it up. It makes precisely zero sense to target a card S3 made in 1998 when you're writing an entirely new Shell. Zero. Sense. The _only_ sane way to do it is via GL.
llvmpipe is slow when Phoronix is benchmarking Quake 3, sure. So what? Shell is a _desktop_, it does not feature rocket launchers or complex lighting. The performance of Shell / llvmpipe is reasonable running on an emulated Cirrus adapter in a KVM, for pity's sake, with absolutely no performance tuning done yet. You really don't need much power to render Shell perfectly well. All that was needed was *feature* support in llvmpipe, for even quite modest hardware to be able to render Shell reasonably without hardware 3D.
When you use GObject, you are using it as a portable, but foreign object system that has to co-exist with the native one (like Python's). This is not poor design. It's a good work-around, given the constraints.
The object system will always be foreign in all languages other than one; better to have native objects in one language rather than none at all. If you look at the practical results, pyqt is an absolute dream, much nicer than pygtk - and I wouldn't be surprised if the same were true for java.
I am trolling
Stop wasting electrons; don't you know how expensive they are!?!
gnome3 (or unity) both crash ION2 graphics chipsets (yay for dual-videocard displays!). KDE does not.
... again.
this will probably mean it will start working on ION2 graphics chipsets (Intel + nVidia is what I have. Intel for low power, nVidia for 3D/gaming/...)
it means I'll finally be able to start testing things out rather than walk away in frustration
I thought this even when just using gtk, and its horridness in 1.x Docs were shit ass (is it so hard to ask someone to spend just one day 8hrs making docs, lazy mofos)
API was inconsistent, as if parts written by different people from different projects.
And dudes, your god aweful file open/save dialog, just as ugly ass as all home grown unix based dialogs, learn god damn it, learn from other OSs, use beOS, use RISC os, use Amiga, use a Mac. LEARN!!!!! *hits their dev on the back of the head*
But to need a GPU for GUI, what did they write their desktop in ? VBasic? (no that would be faster I bet)
Did you see what Unreal the game did in 1999, it could do a full software render in 600mhz that had more complex parts than gnome3.
Gawd, just grab and use the unreal engine as your renderer for the window manager.
Liberty freedom are no1, not dicks in suits.
oh dude, clicking on something is such an effort. Todays people require instant magic convenience. Not 12000 options you have to think for. Thinking is for work stuff.
Liberty freedom are no1, not dicks in suits.
I don't understand why this depreciation of Gnome 3, I just loved it! And I think it have a lot to grow yet
I have upgraded to Gnome3 on Debian testing. I am suffering from the day first. I am okay with the interface(i am adjusting to ui!). the problem is, there is problem with graphics,image performance.
Gnome version: 3.0.2-5
For eg: Iceweasel, if I scroll through the page, it freezes images, looking garbled,stuck looking page. same with any image viewer like eog,shotwell etc.
sample:
http://i39.tinypic.com/29wa3wl.png
I would like to seek attention to this peculiar problem with Gnome3. I am having all video drivers all installed.
http://forums.debian.net/viewtopic.php?f=6&t=72358
Thank You.