Originally posted by airlied
View Post
Announcement
Collapse
No announcement yet.
The Embedded Linux GPU Mess & How It Can Be Fixed
Collapse
X
-
Originally posted by Henri View PostIn that context, it has always surprised me a bit that both Mesa itself and most (all?) of the drivers are X11 licensed rather than something like LGPL.
Comment
-
Originally posted by Henri View PostIn that context, it has always surprised me a bit that both Mesa itself and most (all?) of the drivers are X11 licensed rather than something like LGPL.
Comment
-
Originally posted by archibald View PostBecause Linux isn't the only operating system to use them - the BSD users would probably be a little upset if somebody attempted to change the licence.
However, my point is more that if AMD, Intel, or other hardware vendors are concerned about competitors reusing driver code, I would have expected r600 for example to be released under the LGPL. In the broader view you'd also expect the hardware vendors and distributions (RedHat, really) to push for (or at least be in favor of) LGPL Mesa / Gallium3D, but as far as I know that discussion has never come up, which suggests to me that people are mostly happy with the way things are. I could see how in the past Tungsten Graphics could have made the argument that they depend on the ability to create closed drivers based on Mesa, but I don't think the same argument would work so well for VMware.
Comment
-
Originally posted by bridgman View PostYou would be surprised how little of the magic voodoo is hardware specific. Quite a bit of the proprietary driver techniques would be portable to competitors hardware, and even more so to a new competitor who independently designed hardware that was architecturally similar to yours.
If all of the hardware vendors contribute fairly to the common development effort, that's true. The problem is that it also effectively funnels benefits from vendors who do contribute to vendors who do not (ie the ones who aren't spending much on R&D in the first place). I suspect all the vendors agree that allowing open source developers to program their hardware is a Good Thing - the challenge is making that possible without giving up too much of your hardware advantage. That said, it can be done (and IMO should be done); it's just not as easy as some of the claims suggest.
Strictly speaking I don't think many hardware mfgs would agree with that. If you can give your hardware a competitive advantage via investing in software developoment it's not clear how removing that advantage and commoditizing the hardware benefits the hardware vendor.
Again, I'm not saying that vendors shouldn't support open source driver development, just that many of the seemingly obvious arguments don't actually hold up when you look at them more closely. I still think opening up hardware is a Good Thing, but if you want to understand why you haven't seen the wholesale rush to open source driver support that those arguments predict it's good to try to see things from the hardware vendor's POV as well.
Bottom line is that you need arguments which make sense to a hardware vendor. Making sense to everyone else is nice but doesn't get the hardware opened up. Dave's post seemed like a good step towards refining those arguments.
I would be quite surprised if R&D funding for software design under the driver stack has seriously resulted in developments that a very technical person could not independently produce with sufficient expertise. I suspect that most of what is considered proprietary magic voodoo has really been implemented independently by most serious graphics vendors and that it's nothing more than a strawman to keep drivers closed. Sounds good to the layman and the media, and that's what counts?
Especially as the hardware becomes increasingly generic, the technology issue is funneled back into the usual compilation and memory management strategies for which there is already plenty of publicly available literature on effective techniques.
Comment
-
Somedev, are you talking about open source drivers (where I agree) or proprietary drivers (where I disagree strongly) ?
If you look at the size of the proprietary driver teams for major HW vendors you'll find at least one order of magnitude more developers than can be "bought up" trained and ready to go. Not sure I understand your point about "developments that a very technical person could not independently produce with sufficient expertise" -- what matters is what you have today, not what you *could* have in the future.
Dave's point is that the dynamics may be different for embedded GPUs, which are typically below the lowest end discrete GPUs in terms of performance and features. That's an interesting point and worth looking at.Test signature
Comment
-
The other point Dave made was that the performance requirements (and hence driver complexity) for these small-footprint embedded systems seems to be lower than the norm for PCs, presumably because of the smaller screen size.
One thing that surprised me was how many of these systems have been using pure software rendering, with hardware acceleration only showing up very recently.Test signature
Comment
-
Originally posted by bridgman View PostSomedev, are you talking about open source drivers (where I agree) or proprietary drivers (where I disagree strongly) ?
If you look at the size of the proprietary driver teams for major HW vendors you'll find at least one order of magnitude more developers than can be "bought up" trained and ready to go. Not sure I understand your point about "developments that a very technical person could not independently produce with sufficient expertise" -- what matters is what you have today, not what you *could* have in the future.
Dave's point is that the dynamics may be different for embedded GPUs, which are typically below the lowest end discrete GPUs in terms of performance and features. That's an interesting point and worth looking at.
"Today" even seems like we're amidst a house of cards with CPUs and GPUs, so I'm not even sure today matters. CPU because the homogeneity of the x86 instruction set and its computation model is being attacked on both sides by the embedded sector with ARM and even incompatible x86 instruction sets, and also the ascendence of GPUs. GPUs because the CPUs are pushing for more parallelism simply because of the difficulties of making single-threaded performance any better.
While there is little risk of CPUs dethroning GPUs any time in the near future, I don't think the same is true for GPUs - as GPUs become general purpose accelerators, they become commodities for which the proprietary software stacks are irrelevant and that the graphics-only driver model will fail somewhere along the line, because in trying to dethrone CPUs, they will start accumulating CPU culture.
Originally posted by bridgman View PostThe other point Dave made was that the performance requirements (and hence driver complexity) for these small-footprint embedded systems seems to be lower than the norm for PCs, presumably because of the smaller screen size.
One thing that surprised me was how many of these systems have been using pure software rendering, with hardware acceleration only showing up very recently.
Comment
-
Originally posted by somedev View PostHowever, the basis on which this experience originally formed is still the shared programmer culture, and those teams are not more than 1-2 decades removed from this,
Originally posted by somedev View Postwith significant publicly available research that keeps advancing to date for new players to draw from, and driving developments into a rather singular direction - genericity and more extreme amounts of parallelism.Test signature
Comment
-
BTW I'm not saying that you couldn't find some techniques in modern drivers that were also in use 20 years ago (the basic concepts, like "don't let the hardware go idle if there's work to be done" and "use the hardware in the most efficient way" never go away but those are pretty much motherhood statements not specific techniques.
Let's take multithreading as an example. You can say "multithreading is not a proprietary technique" and you would be absolutely right in the generic sense, but multithreading a graphics driver is something you don't normally see outside of proprietary code. I'm not saying that the proprietary driver teams are changing our understanding of the universe, but they are doing a lot of work going from "possibility" and "concept" to shipping drivers, and there is significant proprietary value in that work.
Again, Dave's point was not an attack on the current PC environment as much as pointing out the probability that fewer of these considerations apply to the embedded "small devide" market.Test signature
Comment
Comment