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/
Can it be cool and still be royalty-free? Or are you going to get shut down by the big boys for stepping in their patents?
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
open hardware? free [as in free speech not as in free beer] hardware?
SHOULD we do it?
/etc. ,BR>
Yes.
WILL they do it?
No.
~~~~~~
It's a "trade secret thing. nVidia doesn't want ATI to know what they are planing / doing so they can make their buck...
I'm not a prophet or a stone-age man,
I'm just a mortal with potential of a super man.
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.
What are Matrox and VIA doing these days?
Help fight continental drift.
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
A nice useful mid range card at a competitive price. I'll take 2, To start with and more later. We are starting to sell dual boot systems at the white box store where I'm a tech and sales type. We have sold a few in the last 2 months, some Fedora, some Suse, and one Mandrake. A nice mid-range card supported on Linux and Win XP would be perfect. Just make it a bit cheaper than the Radeon 9600, with similar performance and I'll be able to sell the hell out of them. One of the biggest complaints amongst Linux users is support for video and audio.
Professional Politicians are not the solution, they ARE the problem.
Just a reminder, drivers are a cost for video card manufacturers. They sell a card and have to bury the cost of driver development and maintenance into the cost of the card. Open sourcing driver development lets a card manufacturer profit from the hardware while the community develops drivers for them and they get good karma to boot. This would be a fairly inexpensive/low risk way for a low-end (PCI only it appears at the moment) card manufacturer to get their "foot in the door".
Only the "big boys" (Nvidia and ATI) have anything to lose by open sourcing their cards. People would actually see to what extent they fudge their cards and drivers for benchmarks.
They that can give up essential liberty to obtain a little temporary safety deserve neither safety nor liberty.
Ben
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
Damn, there isn't a single good comment in this whole discussion... Does anyone here realize what a huge difference a fully-open videocard would make?
Yes, you'd have working drivers, which is valuable, but barely worth noting. The big deal will be the more advanced features.
HDTV is developing pretty well, and even if you can't get HDTV broadcasts, there's plenty of HD material on the internet. Unfortunately, most computers aren't fast enough to play 1080 material in any format, and I'd bet there's a few that can't handle 720 video encoded with MPEG-4, WMV, etc. The real answer is to have hardware decoding... MPEG-1/2 are all that we see now, and even that is pretty rare under Linux. I happen to be lucky on that front, but xvmc doesn't allow you to deinterlace before it's displayed, so it's fairly useless at this point.
When you have all the specs for the FPGA, you can just download the latest upgrade, and have full-fledged MPEG4/Theora/WMV decoding on the same videocard, meaning a 100MHz PC could playback HD-DVDs perfectly. No doubt Tivo would be equally as interested in the features of this card.
Even if you don't have a videocard powerful enough to decode your favorite codec, you'll still get serious gains from it being open. If you check-out mplayer's vidix drivers, you'll see that you can get serious performance improvements if the developers have the docs for the card. It's hard to explain what a HUGE performance boost you would get from having a fully-open card.
Plus, FPGA programming is getting a bit of attention lately. It wouldn't be hard to imagine companies setting up clusters of computers, and filling every available PCI slot with this graphics card, and using the cards to do most of the calculations. Remember the PS2 cluster? Imagine the processing power of that, but on steroids.
In addition, think of all the groups trying to setup display-walls, with multiple monitors. Being able to do that much easier with this card could make it a big seller, if nothing else...
As someone who has setup several Unix machines for multimedia, I think there would be a big market for this, even if it costs, say, $60, and has no 3D support. If you think you need 3D support everywhere, you're probably mistaken. If you're running anything other than x86 (or maybe MacOS on PPC) you've got practically no options for hardware-accelerated 3D anyhow. So, putting a 2D card in there, instead of wasting money on a new Radeon, makes everything work better, and you loose nothing.
Personally, I have only 2 suggestions.
1. Make it as cheap as possible, while still being fully functional. If it sells for $30 (maybe after a few months) I'll buy dozens of them myself!
2. Include as many output options as you can. I use S-Video a lot, but very few have interlaced TV-output support. DVI is important for those with LCDs. Composite looks like the next standard for HDTV output, and that could turn into lots of sales (especially if your card costs less than ATI's Radeon/HDTV adapter!). I've heard lots of cards don't work with HDTV well because they can't output an interlaced signal at HDTV resolutions.
Dual-head support would be very nice, at least if you can include dual overlay support with it. Then you only need 2 cards for a 4-head Linux system.
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
> I'm currently sticking with NVidia cards simply because they support FreeBSD, Linux, and other OSes. ATI might have a slight performance lead (although things have gotten pretty blurry with the recent batch of cards), but that isn't enough for me to leave a company that I know I can trust.
As soon as you start talking Linux, the performance advantage of the Radeon 9x00 vs it's GeforceFX equivalents vanishes.
As soon as you start talking Radeon X800 vs Geforce 6800, the Geforce is clearly ahead on windows. And there are no X800 Linux drivers yet AFAIK, so that's clearly a wash. But even assuming they were availeable we can extrapolate from both companies' track record and assume the 6800 drivers will still be better.
In summary:
9x00 > a similarly priced GeforceFX *ON WINDOWS*
GeforceFX > a similarly priced 9x00 *ON LINUX*
6800 > X800 *PERIOD*
Now, it is possible to find a benchmark on Windows where the X800 outperformes the 6800, but they are few and far between. And since we're mostly interested in FOSS OS's, who the hell cares anyway?
The unofficial
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
It might be more worthwhile to work on better relationships between Linux developers and Via. Via sells a large fraction of the motherboard chipsets (if it's not Intel, it's probably Via) and, as a commodity part manufacturer, doesn't have a strong business interest in a proprietary interface.
If Via can be brought on board (assuming it isn't already) that provides more leverage for dealing with other vendors, like nVidia.
Not knee-jerk activism. The article was a person that claimed to be from a bussiness, asking a bussiness question, and that's the kind of answer I gave. Sorry, but it's the truth. If you think that there will be serious sales of a 2d graphics card that costs more than many 3d cards, you are kidding yourself. As a project for fun, this would be really cool and I'd say good idea. As an actual idea to make money, it's crap because it won't.
It's like say you came and told me you wanted to design a web browser, but only one that did HTML 3, no CSS or JavaScript or layers and so on, just simple HTML, as a personal project. I'd say cool, and great luck, sounds like a great way to learn, and might develop to something cool. If a company asked me should they spend money to develop that becasue they'd like to sell it, I'd say never, because there are better browsers out there for free.
Also hardware isn't like software on this level. You don't just go throw a graphics card together from parts at RadioShack. Even if you have the full specs, you need a company to produce it and that is expensive. It's not like precision chip fabs are easy to build or cheap to operate.
Oh and yes, ATi and nVidia WILL survive, so long as they make money. If they don't, it'll be because someone else is. They also aren't teh only two, S3 and Matrox are two other major players, and there's probably a few more I forgot about.
Your legacy architectore argument is stupid too. If you build something on cheap, commodity hardware with no support contract, you've no right to bitch when it fails. YOu replace it with more cheap hardware. If the system must be kept running for decades on end on the orignal platform, you pay for a system that does that. At work we have an IBM 390 mainframe that is about 15 years old. IBM still supports it and maintains it, and we pay them for a yearly contract to do so.
Get off it, an open graphics card of this nature solves nothing worth solving. It's not a serious competitor so they aren't going to sell or force a change. It's a neat idea, but only if implemented on hardware with an actual chance of having a market.
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.