As for me it looks like decisions/design phase fault: guys used LLVM due to buzz around, failing to understand it's a troublesome way. It's not even LLVM fault on it's own. It's VLIW and it requires custom approach. LLVM knows nothing about VLIW existence and does not really helps to deal with things like this. Instead it makes things more complicated (as it's generic solution intended to handle dozen of unneeded scenarios), raises bar for those who wants to enter development, requires upstream syncs, etc, etc and ... and at the end of day it FAILS TO PROVIDE REASONABLE PERFORMANCE (and why anybody needs 3D driver with crappy performance, huh?). You see, Vadim has managed to seriously improve FPS on custom code generator because it's simple. If there was LLVM on it's place it would be unlikely as it reqires far more time to get same results.
And the worst of all: it could be evaluated qickly. It's fairly predictable. Sure, AMD currently haves awful management issues, but this partucular stubborness is just hard to explain. They literally WASTED YEARS without anyhow usable outcome which can provide user-visible values. What about efforts to results ratio? And why some quite inactive dev could come, quickly improve OLD code and beat all this LLVM idiocy to the hell in terns of performance? Without wasting years of hard work, spending months on waiting upstream, etc. It's just a drastic demonstration of what happens when someone decides to "improve these damn user-visible results" rather than "use LLVM" (or whatever else crap you have).
Let's just make some quote:
Or, for those interested, you can read the whole thread on http://lists.freedesktop.org/archive...ry/034547.html and all reply messages. That's a really amazing history on how LLVM fetishism could make development suboptimal and fruitless. I think it will be yet another shameful page of AMD engineering. When they had chance and missed it due to incredibly silly reasons.I spent some time last year studying the LLVM infrastructure and R600
LLVM backend and trying to improve it, but after all I came to the
conclusion that for me it might be easier to implement all that I wanted
in the custom backend.
P.S. ah, they mumble LLVM needed for opencl. But looks like if they fail to understand that nobody needs SLOW opencl implementation. It's just pointless. Either you can roll out OPTIMIZED implementation or you would waste potential of hardware and lose the market.
Last edited by 0xBADCODE; 03-10-2013 at 06:46 PM.
Last edited by 0xBADCODE; 03-10-2013 at 07:03 PM.
The reality is the BSD style license "Here's code, I dont care what you do with it." is the MOST free license available, because it has zero restrictions or conditions or strings. But it does carry the danger of a company coming along, taking the code, making it better, and shipping a closed source program using that code without contributing anything back.
And from that concern came the GPL-- "Here's code, do whatever you want with it, modify the crap out of it for all I care, but if you distribute a program to other people then you have to make it open source so that others can benefit." And that distribute part is key-- if a company takes a GPL library, modifies it, but keeps the modifications internally-- ergo they dont show it to the outside world and keep it within the company-- then they dont have to open source it.
I wasn't saying that the BSD license was better, don't misunderstand me. Companies have very legitimate concerns for the GPL-- if you have a programmer looking at GPL code, learns something new from that GPL code, and then uses that new idea (but not the exact code itself) in the companies product..does that qualfiy for the GPL's "Derived" clause? Maybe yes, maybe no, I dont think its ever been contested in court.
Over all, I think most companies who contribute back to BSD do so either out of good will, quid-pro-quo ness, or maintenance burden. Because when you have a lot of out-of-tree patches it becomes a big deal to maintain them all on your own, its easier to push them back to usptream and then just let upstream maintain them for you.
For the most part I think the best idea is to 'default' your license to LGPL (nice middle ground. The parts they took from YOU they have to keep open, including changes, but their own custom code can be whatever they want.)
The problem with the GPL is that it's 'The GPL way', or no way at all, at the expense of other copyleft licenses.
Also, your throw in about BSD systems and the Apache Foundation are unwarranted and unrelated.
However, if you do want something to think about, Apache Openoffice has gotten 40 million downloads to date of version 3.4, not bad for 'toxic waste'