It's been a while since the last update on the Open Graphics Project, so I've put together this article to fill in the community on what's been happening, what's going to happen, and how we can make what happens happen faster. Since the last update, a number of things have been going on, some more slowly than others. Although we're not too far off the Gantt chart, it is nevertheless frustrating for us to find the time to work on some things. For a hardware project that's being done in our spare time, though, things are going rather well, and there's a very strong likelihood that you'll see real hardware for sale on our web site before the year is out. Especially if we can get help on a few things from the community. Read on for details.
Two things went wrong, however. One was that I was not able to convince my employer, a relatively traditional business, that the FOSS community was large enough to make OGP turn a profit. The other was that Tech Source came upon new business opportunities that required them to concentrate their engineering resources on their core products. Tech Source canceled the project. After some time and discussions with management, Howard Parkin, Andy Fong, and I, all employees of Tech Source, decided to carry on the project on our own, with Tech Source's blessing.
In order to carry on and be able to form a profitable business model, we had to make some adjustments to the original plan. The new plan goes something like this:
Although not legally formed, we have dubbed our company “Traversal Technology.” We'll formally incorporate when the prototype product is finished and we're ready to take orders. Traversal Technology is the “official corporate sponsor” of the Open Graphics Project (OGP) and will serve as the IHV that builds and sells the products that are specified by the OGP.
Some product naming has finally happened. See http://wiki.duskglow.com/index.php/OpenGraphics videocard naming. Jack Carroll, a member of the mailing list, has been invaluable in helping the OGP and Traversal name their products and work towards having a coherent inventory-naming convention that will last them indefinitely. Here's a brief summary of the more important names:
In short, the FPGA product will have OGD in its names, and the graphics cards will have OGC in their names. See the link above for examples.
What is OGD?
As I mention elsewhere, OGD serves two purposes: First, it's a development platform for TRV ASICs. Very early on, we decided that the best way to make sure that our graphics chip worked properly out of the gate was to first target the design to an FPGA. The FPGA will allow us to test our design in real hardware and in real-time. When we find bugs in our design, we can fix them, resynthesize (like recompiling), and reprogram the FPGA. We couldn't do this with the first ASIC I developed at Tech Source, and it cost us a lot of money, because when we found that our first chip didn't work, we couldn't get back the money we'd spent on the first set of masks. We did incredible amounts of simulation, but that didn't stop us from missing a number of very subtle problems. With today's FPGAs, they have more than enough die area to support a relatively full-featured GPU, so we don't have to skip this step. Even if the design runs at half-speed in the FPGA, compared to the ASIC, it will still allow us to put the card into real computers and test it in real-time.
Second, OGD is something that can be of general use to many other people. We're not the only people who need a board like this. Lots of chip developers will find this to be a very interesting product. Those include businesses designing chips and university FPGA labs that would buy them in the hundreds. Having freely-available design documentation only adds to the value. Computer Science Masters programs that teach CPU design would find this interesting, for instance, because the FPGA is big enough to hold a reasonably powerful CPU, and the RAM and video output are built right into the board. How about FPGA-based parallel computing? Or how about the long-time software engineer who would really like to break into chip design but hasn't been able to get his or her hands on the necessary hardware. I would have bought this as an undergrad.
Tech Source could have used this too. Back when we were working on the ASIC I mentioned, we had hoped that it might fit into an FPGA. It didn't, but in the mean time, we had already bought an FPGA-based prototyping board. I don't recall the name of the vendor, but it has a Xilinx Virtex II 1000, which was a massive FPGA at the time, and it cost over $2000. The last time we checked, which was in 2004, that same board was still selling for that same price. We have tentatively priced OGD, which sports, among other things, a Xilinx Spartan III 4000, 256 megabytes of RAM, and a bunch of video hardware, for somewhere around $550 +/- $50. As a graphics card, this wouldn't be a very good price, but OGD isn't a graphics card--it's something that can be turned into a graphics card... or a high-end sound card or a hardware raytracer or a high-speed video codec or a stream processor for parallel computing or... shall I go on?
If things keep going as they are, an early release of the OGD card will be available this November or December (2005). This may or may not come with a fully-functional PCI controller, but anything missing will be downloadable later from our web site. (Certain kinds of reprogramming will require extra cables, but if you're a chip designer, you expect that.)
What about OGC?
OCG is the thing that most of you want. It's a low-end graphics card that's open architecture, comes with open source drivers, and is tuned for X.org, Mesa, accelerated alpha compositing of windows, etc. It's the card that “just works” with Linux or BSD, x86 or PowerPC and has drivers that are written properly so that they don't become a stability concern like some closed-source drivers are. It's the card that exposes all of its interfaces so that every feature can be supported, and every feature you want to support can be accelerated.
This is the ultimate goal of the Open Graphics Project. There are a few things holding this back right now. First is that we can't develop it with out OGD being finished, and OGD has its own schedule we're trying desperately to stick to. Second is that we don't have any money; we're going to pay for OGD prototypes out of our own pockets, plus the ASIC will cost about $2 million to fabricate. Our goal at this point is to finish OGD, use that to generate some revenue, and use that business success to attract investors and partners that will help us produce the TRV ASIC and OGC graphics cards. If we can generate enough revenue from OGD, we can afford to quit our jobs and work full time on this.
We are hopeful that our schedules will allow us to complete this product during the first half of 2006. It's hard to say what its performance will be like, but we'll be using more advanced fabrication technology than we can get today. We expect it to meet or exceed our original figure of 6.4 gigabytes/second memory bandwidth and 400 million pixels/second 3D rendering throughput up until memory bandwidth is saturated by turning on more 3D features. It too will have 256 megabytes of RAM. We have been estimating the retail price at no more than $120 for the board (comparable in price to the recent Matrox G550 PCIe with 32 megs of RAM, although PCIe will come after PCI and AGP for us), and we have seen no reason since then to increase that number.
OGD chip development
Lately, I have been working on the PCI core. Although the ASIC will have support for AGP and, indirectly PCI-Express, I am currently working on a 32-bit PCI-X controller for the OGD1P-256 board. You have to start somewhere, and PCI is probably the best thing for an experimenter board since it's the most universally available right now. The RTL for this is currently downloadable from our SVN repository (see the bottom of http://wiki.duskglow.com/index.php/FrequentlyAskedQuestions). The license is LGPL, but Traversal retains the copyright and the right to dual-license, like MySQL.
Unfortunately, not too many people are members of the PCI SIG or have access to the PCI spec, so I haven't gotten much feedback on this aspect of the design. Those with PCI experience are encouraged to offer their help and criticism, and those without the PCI spec but who would like to help anyway can find out what they need from "PCI System Architecture (4th Edition)" by Tom Shanley, Don Anderson, Mindshare, Inc.
Patrick McNamara contributed a huge amount of information, as well as some excellent circuit schematics, for the design of the VGA controller. Most of that can be found at http://wiki.duskglow.com/index.php/Documentation. This has stagnated as I have focused on PCI. The VGA core is also under LGPL (dual). More eyes are welcome.
OGD PCB development
Andy and Howard have been working on the PCB design for OGD. It's essentially done, but there are a few time-consuming things left to be completed before that can go for fabrication.
I will cover the cost and shipping for any parts that a contributor may need to buy to help with this. Also, the PCB schematic and artwork will be licensed under the LGPL, as well as all the Verilog code that will ultimately come standard with OGD.
Once we have revenue, Traversal intends to pay someone to host their web site. Before that point, we would appreciate free hosting. Any suggestions on whom to host with are welcome. However, for OGP, duskglow.com has been hosting the mailing list, gitk.com has been hosting documents and images, and suug.ch has been hosting the SVN repository. Their contributions to the project have been greatly appreciated, so one of them is probably the best choice.
The next issue is designing the web site which can be a significant investment of time and/or money. If it were all open source, it would instill a greater feeling of confidence in those using it to place orders. What we need is a site that describes the product, makes it clear what you're getting (early releases of OGD may lack the PCI logic, requiring later update from files you download), explains the warranty, and is able to handle secure credit card and PayPal transactions and accurate computations of shipping/handling costs. Also, economy of scale requires that Traversal manufacture cards in batches, meaning that orders have to be stored safely for as long as it takes to get N orders. If PHP and MySQL are used in the back-end, that would be preferable so that I can maintain it in the future, as I am familiar with those. We welcome those who can help us design and code the web site and advise us on how to do it properly.
Depending on your perspective, you might think the OGP was progressing slowly or quickly. It's hard to design new hardware in your spare time, without corporate backing, but I, my partners, and my friends on the OGP mailing list are making steady progress. We can already see the light at the end of the tunnel for OGD, because although there are a number of time-consuming things left to do, there aren't very many left, and outside contributions can make it happen more quickly. Even without a complete PCI controller, OGD would be a valuable and relatively inexpensive tool for many hardware designers.
The Open Graphics Project is going to take a while to realize its ultimate goal of ubiquitous Open Architecture hardware for FOSS users, but as with any well-conceived plan, things do not happen over night. OGD is the product that Traversal and the OGP need to get off the ground. With the right help, this will easily happen this year. Although the OGD isn't a graphics card, per se, it will be a revenue-generating platform for the development of a graphics card. With luck, 2006 will see the release of the first fully open-architecture graphics card, designed specifically to always “just work” universally with Free and Open Source Software.
OGP Community wiki: http://wiki.duskglow.com/index.php/Open-Graphics