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?'"
Does your company have to divulge any proprietary secrets in order to leave everything open for this card? If so, is that okay or does that do them harm?
http://www.busyweather.com/
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.
What? Create a functional and supportable video card that is platform agnostic and will just work? The problem is, it is too logical. Unfortunately, it won't work in todays economic environment. Unless you are screwing over your competitors, your customers, or your employees, you can't make a buck.
I like the idea. My only thought is, are they going to have enough pull to make this happen? Graphics cards are much more than just throwing a few hundred million transistors on a chip. You have to worry about pipeline architecture, parallel texturing units, and (most importantly) well optimized driver software.
Can this company create a card that's competitive? And if they can, will they get pushed out of business through patent litigation?
Javascript + Nintendo DSi = DSiCade
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
I'm in!
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.
It's serving a small market(right now), requires thousands of man hours of design and testing, requires expensive fabrication equipment(too expensive for this company probably), and is unnecessary because current video cards work fine under Linux. At least well enough that spending $500 to buy a mediocre card by a small company is out of the question. And yes, it would most likely cost that much. With little demand, high development costs and high fabrication costs, it will be that expensive.
Hurricane Ivan: A 17th century prison collapsed. All of the inmates escaped.
Until now, open source software has proven to be able to scare M$. Why can't open source hardware scare competitors of it's field? Obviously it's not the same but hopefully, if they all planned it well, and by the article it shows that they got a nice idea, I'm sure a project such as this would get sufficent support to progress.
Seriously. nVidia already has kick-ass hardware and the best drivers available under Linux, plus one of the best, if not the best, installer for Linux that I've ever used. It would probably take less effort to convince them to open up completely than to create a new card.
Do you have ESP?
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
So please do it. I know some Linux users take pride in their amazing ability to get some piece of not-really-supported hardware to function, and in fact there are whole companies which provide installation of Linux on unsupported laptops as their business, but this is not fun and is a waste of time.
When can I buy it?
Seems that most people here didn't bother to read the article. (Big surprise.)
This is a 2D only card. He would not try to compete with BigBadVideoCardVendor. He knows that development of a competitive 3D card is out of the question for now. But you have to start somewhere.
Unlike an opensource software project, an "opensource" hardware project can't "show me the code" in order to gain legitimacy and gather developer attention. He's looking to see if there is real interest so that he can make a case to his boss. He seems to understand the risks involved, and I hope he can make it work.
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.
for those of us that read the article, we see that the entire nVidia/ATi argument is practically moot. the developer explicity says that the card will be primarily 2D because his employer won't give enough funding to produce an ASIC. Thus, they're using an FPGA and will only really be able to implement a 2D core.
[move
It may be technically feasible, but what about financially? The interesting thing about open-source consumers is that they're mostly talk, but when it comes down to actually buying all of they stuff that they claim to want for Linux, they don't vote with their dollars. Just look at the failure of Lokigames to make a profit, not to mention id's big profile attempt to push Linux by doing a simultaneous Linux/Mac/Windows release of Quake III - sales of Linux Quake III were abysmal.
Expecting geeks to pony up a few hundred bucks for an open-source video card that has little if any chance of competing with ATI/Nvidia on speed seems pretty unlikely.
I currently own a couple of nvidia cards. I enjoy that NVIDIA is providing 3d accelleration for my installed software. What this Free Software Friendly board is capable of is minimal. It's essentially an ancient 2d acceleration. 3d support is off the table. I can find that elsewhere; I think there's a few OSS drivers that do that with proprietary cards. Perhaps they can't work on obscure platforms. I don't work with obscure platforms regularly, thats why they're obscure!
From a ROI perspective, you have to convince me there's some improvement over the status quo. I couldn't care less about the source. I know that 3d graphics are among the most alien software topics to developers. Its difficult, especially when you're mixing it with low level programming in a performance sensative environment. Not providing 3d means I'll look for a second card. More likely, I'll be looking at a different card that offers more functionality, even on Linux, at 50 dollars, than this can offer at 100.
Simply put, an free-software friendly board lacks a community to push it forward, and I don't see it treading water among the highly competitive graphics card market. If you want this to sell, you need to identify and explicitly cater to your niche market. Promote it as a learning tool, and grease the community wheels. Just putting it out there and expecting the world to recognize its value won't net you much.
I Browse at +4 Flamebait
Open Source Sysadmin
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
A path that could be very fruitful is to design a video card to be used in a TiVo-like device. In particular, in addition to the good suggestions involving the Render and Damage extensions, a 2D-only card should do some hardware accelerating of IDCT and motion compensation, so that i.e. DVD's and MPEG-4 files can be played with a very minimal CPU. Work with systems integrators that are willing to put MythTV on a silent fanless system with a pcHDTV card and your video card/chip. This could be a good way to go for smaller but demonstrated market, where the part is easier to design than a 3D-nvidia-ati competing beast. Actually doing the video and TV on the same part is a good idea, if it can be done, since these machines are usually space and PCI-slot constrained.
I do not think, out of the gate on a small budget is reasonable or feasable to get a 3D part. It would be better to start small, and plan some features for the second generation. For funding, take pre-orders. Oh and hype the shit out of it, on slashdot.
Secondly, how feasable is it to put a cheap off-the-shelf CPU on the part to handle the 3D workload. Certainly that's faster and cheaper than a FPGA. CPU's with MMX or Altivec instructions can be had in the 1-2 GHz range for < $50.
-- Bob
1^2=1; (-1)^2=1; 1^2=(-1)^2; 1=-1; 1=0.
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.
Matrox? Don't count on it. They've just "recently" gone from being one of the best supported video card makers, both 2D and 3D, in linux, to one of the absolut worst after they switched to a closed source model of providing their own drivers.
"Worst?", I hear you say, "How can that be? My ATI doesn't work great either!". Well, consider this; It's been almost a year since their last driver was released. It doesn't support Linux 2.6 yet. People are trying to patch things up, but it's a losing battle. It doesn't support SMP either, which means that any P4/HT users are out of luck. And I'm not just talking about not actively enhancing the drivers for SMP, no, it will outright crash and bring the the whole computer down with it if you som much as think of starting an OpenGL application. Oh, and while we're at it, there is of course no support at all for AMD64.
Quite frankly, Matrox has remained so apathetic to the Linux crowd that I'm now convinced that they tricked us all just to get our money, and deep down inside they just hate us.
Slagborr
Make an X.org accelerator - There are a lot of people who dont care much for pushing polygons, but would love to have a fast, high quality grahics card that intergrates with X.org or XFree86 and works without hassle.
Support multi-head operation with robust Xinerama support, good colour calibration etc. and provide hardware acceleration for compositing, video4linux overlays, SDL hardware blitting, X primitives, Freetype font renderers, DirectFB acceleration - this card could form the heart of every low-cost or embedded linux system sold in existing or emerging markets round the world, and provide significantly better 2D desktop acceleration than ATI or NVidia, who seem to put 100% of their efforts into appeasing the Doom3 players.
Even if its not a match 3D-wise to a Geforce FX6800, it wouldn't be hard to do a better job of supporting Linux APIs than 90% of the manufacturers out there.
I gots ta ding a ding dang my dang a long ling long
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.