Free Software Friendly Graphics Card?
An anonymous reader writes "There's an interesting discussion on KernelTrap with a hardware company that is talking about developing a 'free software friendly' graphics card. The idea is to fully disclose and document all register interfaces including the BIOS, providing Linux and BSD users with a fully supported video card. The hardware engineer proposing the idea summarizes his viewpoint saying, 'the whole issue comes down to this: This is technically feasible. Should we do it?'"
How about a Free Software Friendly Audio Card to go along with it?
I don't know about others, but I've had *way* more trouble getting audio to work on my linux boxes than I've ever had configuring video.
They may have the best drivers for their card in two years, but I don't see how they can compete with Nvidia/ATI even with opensource drivers
both for the company that does it and the linux community. The company that does it will immediately have all the people building linux boxes flocking to them-- the people building games machines will still go with whatever's fastest, but people who just want everything to work will be happy to know that at least with this one card, they'll never have to wait for drivers when the kernel changes, never have to worry about a buggy video driver, their system will just be that much more solid. So that's a nice little boost in sales. Maybe not a huge boost, but compared to the amount of work involved in opening the specs up, it's a great cost/benefit sort of thing.
It would also be fantastic for the linux community because the existence of such a card-- and the preferential treatment the card would receive-- would put pressure on all the other cardmakers to follow suit, or at least tighten up their linux support.
I'd be willing to pre-order a graphics card that fully documented it's specs and cooperated with the Linux community for my desktop. The problem is that many companies aren't prepared for such a thing, and don't have a way to take your money. So, helps us out... Where do we pre-buy one?
Sean
That would rock the house considurably.
GRAPHIC MANUFACTURERS SELL GRAPHICS CARDS, NOT DRIVERS.
Open source drivers are a great inducement to purchase a card.
Even if the card is slower then others and slightly more expensive, I would still buy it. If it's very much slower and very much more expensive then it would be a issue.
Ok what I am about to say will only make sense is you understand what ISA's are.
Get out of your mind the ISA slot and the x86 ISA is teh suck. PowerPC has a ISA, for example.
It's a standard way on which software is ment to interact with hardware in your computer.
For example you first created the 386. Most of what the software ran on was raw hardware. However the modern pentium4's and Althons are VERY much DRASTICLY different from the original 386 cpu.
Lots more REAL registers. Lots of extensions, SSE, MMX, so on and so forth.
Why then are they able to run programs and even DOS OSes designed from the i386?
BECAUSE THE ABSTRACTION NEEDED TO FIT INTO THE ISA STANDARDS IS BUILT INTO THE HARDWARE.
So what we need for video cards is a ISA for them. Like the VESA standards, but for hardware 3d acceleration.
Something built around OpenGL, because it's open standards and universally accepted, unlike DirectX which is NOT just for 3-d but for input, sound and all sorts of other stuff and is only specific to one vendor operating on only one platform.
Think about it.
Video cards are mini miniture computers.
They have a micro proccessor.
They have RAM.
They have a BIOS.
So on and so forth.
So why not build the drivers for the video cards like you build a OS?
And why not build a opensource OS for it built around a Open ISA standard for OpenGL capable video cards?
Maybe a GDOS? Graphical Driver OS?
That way you have a choice. You have a generic OpenGL capable drivers that will run only any compatable video card irregardless of make or model. The GDOS would be something exceedingly simple. It only has one purpose, take care of OpenGL instructions from software running on it's Parent OS and transform it into instructions to be ran on the hardware itself.
Then people like Nvidia and ATI could take that Free G-DOS and add extensions to it for their own private optimized rendering stuff that sits outside the normal OpenGL standards. Propriatory ways of rendering Anti-Aliased text for example.
If they don't want to release their secrets to propriatory bits of software they dont' have to.
But if you don't want to run the propriatory software you still have full standards-compliant OpenGL drivers. If they are a bit slower, then so what? I'd rather have slightly slower Open source, open standards, drivers then slightly faster closed source drivers anyday.
I care more about the stability of my system then anything else.
Then when the OpenGL standards are upgraded, or you need a new generation of ISA to get rid of the cruft it would be simple, since you only dealing with a single-tasking, single-purpose, specialized peice of hardware. Backware compatability would be taken care of by allowing older cards to render in Software (Mesa) the bits that they can't render in hardware due to their oldness.
The OS would be kept independant of it. The kernel would be kept out of it. The G-DOS could be in it's own memory space or even in userspace (since with displays your only dealing with one user at a time)
G-DOS 1.0 cards
G-DOS 2.0 cards
So on and so forth. With in this framework their would be very much room for performance growth. It would reduce User's suffering, increase stability, and increase ease of debugging and testing.
And if some companies don't want to join in with the standards, along with everybody else. Then dinosaurs realy do go instinct, you know. But I don't see that happening. After all companies like ATI and Nvidia already do belong to open standards groups like OpenGL.
Is actually an existing company with previous experience with graphics hardware and systems software. Developing a graphics card is something they are fully capable of doing. The question is whether or not they are going to make a card that targets the open source OS market.
ATi and nVidia are doing so well converting lumps of silicon into gold because their chips are fastFor people who want to run Doom3. I for one would like to give someone my money for a card with nice solid vendor supported 3D accel on Linx/Xorg without spending a hefty bundle. Or recompiling between reboots (I run multiple kernels).
Not saying that this is a viable plan, but your analysis is off
You won't compete performance-wise with high-end consumer 3D cards. You won't compete budget-wise with low-end consumer 3D cards. You're going to have crappy Windows drivers unless you wave money in front of your developers to work on that uninteresting part and _maintain_ it, _and_ shell out for the Microsoft developer packages for this sort of thing.
Your revenue? Linux geeks who are patriotic enough to pay for a product with less bang for the buck than a standard commercial card, and who will take the promise of eventually-less-buggy drivers some time in the future as being more valuable than a buggy but adequate and fast 3D driver now.
The thread makes mention of hardware cost control, though they're having serious trouble making that competitive (hard to beat quantity-millions for bulk rates). However, Alan Cox's message highlights a serious problem - you have a lack of programmers for cards that specs are already known for.
The only realistic solution I can think of is to pay coders to produce a minimum adequate driver implementation for the new card (or heck, even one of the old ones). Making a decent accelerated 2D driverfor an experimental card is a few person-months of work, if memory serves. Making a decent accelerated 3D driver is a few person-years of work. The budget for this is within reason, but still has to come from somewhere. As there isn't a deeply pressing need for this being felt by most people (see previous point), the pace of volunteer development will be slow (as is shown by Alan Cox's comments about current driver projects).
I'm not suggesting taking this outside the open source community. I'm suggesting paying open source people enough that they can do this as their day job, and have _incentive_ to do this as opposed to some other interesting project.
This is the Big Problem. I can't stress it enough. Any easy way of implementing _anything_ to do with 2D graphics cards was patented a decade ago or more. Any easy way of implementing any basic 3D was patented more recently, but is still patented. Even crawling through the patent database to look for implementations that were missed will take a lot of time, and cost a significant amount of money (you need experts on graphics algorithms and VLSI design to do this, and patent lawyers to back them up; see previous point about volunteer time vs. needed schedule).
Big graphics companies solve this by doing the requisite grunt work, and aggressively patenting everything they can think of as a defensive measure. The standard way of solving patent conflicts is bitter litigation followed by cross-licensing relevant patent portfolios from each other (we've seen this in other parts of the hardware world often enough too). A low-budget open source card project won't be able to afford either of these, and both will eventually become necesary (someone will claim you're infringing no matter how clear it is you aren't, because it's in their best interests to make the claim).
In summary, the only way that I can see an open source graphics architecture being developed is if the community and donors scrape together several hundred thousand to a few million in startup capital to fund hardware and software development, and to deploy lawyers. A side benefit is that you might even be able to afford chip spins if you're on the high side of the funding scale, though it'd probably be more wise to divert the funds to multi-platform driver support and patent portfolio instead.
Variant options that come to mind:
The catch is th
Sigmentation fault - core dumped
I would absolutely consider buying a card like this after my experience with ATI's drivers in linux. In fact, I've often wondered why there hasn't been a company like this years ago. The user base for linux has grown substantially in the last few years, and considering the hoops you have to jump through to get 3d graphics support working in certain cases, I think there is definitely a market for such a video card. Let's remember that there are many users out there using older/legacy machines to run linux, and don't necessarily need the latest and greatest [read: 6800GT/X300] as their graphics card.
I would be THRILLED if there was a card out there for $150, where I could compile the drivers from source and run OpenGL-based games at a decent speed on this computer.
Like some others have said though, while I don't expect them to be competitive with nVidia and ATi's higher end products, I WOULD like them to provide moderate performance, perhaps on par with a lower end radeon cards. The lower end ATi Radeon 9200 provided excellent performace per dollar, and I would be willing to purchase a similar open-source'd card for well over the amount I paid for that card ($89). I realize that this would require quite of bit of investment though, since the company would probably need to use top-of-line or nearly top-of-line device process flows to achieve this type of chip.
My only fear is that if this becomes a reality and catches on, we will see ATi/nVidia step up their support for Linux JUST enough to pull away any consumer base this company might gain.
Regardless, I agree that to get from concept -> implementation requires $$$, so I would recommend that this company come to some kind of decision and allow the consumer to "prepurchase" or otherwise finance such a card.
/. sig.
Graphics cards have become the single greatest hassle when installing Linux. Many of them don't even work correctly in frame buffer or VESA mode anymore, and if they do, they are slow.
I think that we are in for a major change in graphics hardware, going from more proprietary, special-purpose hardware to basically vectorized general-purpose hardware. If you keep the card more general purpose, you will probably at least get lots of orders from universities and research labs working on new ways of doing 3D graphics and using 3D graphics cards for compute-intensive applications.
On the other hand, Linux hardware vendors and users would probably also like to have a cheap, low-end card that just works with every OSS and supports commonly used functions. So, something with good 2D acceleration (both bitblit and Postscript models) and some cheap 3D support would serve those needs. And such a card could also become popular for Windows if it accelerates Windows desktop functions well and (in contrast to all the proprietary trash that's out for Windows) has a simple, clean, and hence reliable, driver.
A couple of points, though. First, it's probably the high-end open 3D card that would pay the bills, at least initially, and it would be sold to a niche market. But a high degree of programmability and flexibility would be its selling point. Second, sadly, decent Windows support would probably also be important for it to sell well because many people still want to have the option of booting into Windows.
I think this could be a good way for a smaller graphics card company to get a steady revenue stream because, while the market is small in relative terms, it is probably a decent size in absolute terms and you'd have it largely to yourself.
Oh, another thing that would be important would be good marketing: banner ads on OSS sites, getting the drivers into X implementations, making sure the major distributions include suport, etc.