Open Source Graphics Processor (GPU)
Open Source Graphics Processor (GPU)
Complete Verilog implementation of a 2D/ 3D graphics processor capable of OpenGL and D3D w/ full test suite
Complete Verilog implementation of a 2D/ 3D graphics processor capable of OpenGL and D3D w/ full test suite Read more
Help fund us to create the the first professional quality Open Source GPU and help Kickstart an Open Hardware revolution. The current aim is to finish the final few modes of operation and release our product as a complete, professional, open source hardware platform. We will provide a complete Verilog implementation of a 2D/3D graphics processor capable of OpenGL and D3D with a full test suite that anyone is free to use and improve upon. Our Ultimate stretch goal is to create a complete open source implementation of a modern day graphics accelerator.
History/ About Us
Our company Silicon Spectrum was founded in 2002 at the request of numerous former Number Nine Customers who were no Longer able to purchase Number Nine Graphics Accelerators. Rather than trying to start from scratch, we licensed and re-implemented the same graphics technology that we had developed for Number Nine and optimized it for use in an FPGA creating a graphics accelerator compatible with the #9 Ticket To Ride IV. The reason behind this was to provide a binary compatible graphics core for vertical markets: Medical Imaging, Military, Industrial, and Server products. Our 2D/ 3D implementation, has since also been used in Digital picture frames, Avionics equipment and on a range of FPGA based products. Now we are running a Kickstarter to finish the final few modes of operation with the goal of a complete, professional, open source hardware platform.
How do you Open Source GPU (Hardware)?
We will release a Verilog implementation of a GPU under the LGPL open source licence. We would like anyone be able to use it. Want to link it with an ARM? Go right ahead. Want to do a complete open source SOC? Go ahead. But if you modify it, you have to make the modifications available. If you leave it alone, you just need to provide the source.
What is Verilog?
Verilog is a description language commonly used in the design and verification of digital circuits.
How does it work there are no pledges to buy the GPU hardware?
The goal of this project is to provide the hardware design for use by anyone who wants to use it to create an ASIC GPU. The Verilog can also be used to run the GPU in reprogrammable chips called FPGA's. These chips allow you to make numerous changes (tinker with) the GPU design without the need to produce expensive hardware and can be purchased off the shelf so they are great for those interested in hardware design or playing with this technology. The downside is these chips are generally slower than a common non-reprogrammable ASIC implemented GPU's.
Why should I support this?
Computer software is currently advancing at a phenomenal rate and at the heart of many new innovations in software is Open Source. We want to Kickstart a revolution in the computer hardware industry and make Open Hardware a reality. Our GPU is never going to compete with a Nvidia or AMD GPU from the word go, but its a start towards a future with open hardware,10 years from now our GPU could look very different. Linux itself started off as a small project well behind the Unix's of the day, now the Linux market dwarfs all the Unix's combined.
Goal and Stretch Goals
We have broken down the design into the following Goals:
$200,000 Fully Funded - 2D only
This is our goal in which we will release a 2D only core containing a PCI interface, CRT controller (to drive a monitor utilizing a DVI/ HDMI chip or DAC), 2D accelerator supporting lines, solid fills, patterned fills and bit BLTs. It also has a fully IBM compatible VGA controller for legacy operations.
We will also commit to a simple bus interface design to be released in the future (Q2 2014) that will allow easy connection to an Arduino, Raspberry-Pi, Altera/Xilinx SOC or PCIe core.
This and all goals contain a testbench with numerous tests to simulate modes of operation.
$400,000 3D Option
This Stretch Goal adds optional* full OpenGL and Direct 3D (7.0/8.0) 3D graphics.
(*) The 3D can be left out to save space if 2D is all that is required.
- Single pass nearest or bilinear filtering.
- Two pass Trilinear
- Mip mapping
- Specular lighting
- Gouraud Shading
- Alpha blending and compare
- Z buffering
- Area pattern
- Color expansion
- Stipple mode
- 3D color keying
- Backface culling
- Triangle setup
This tier is currently undergoing bug fixing and we anticipate delivery Q1 2014.
$600,000 Performance improvements
The design has been optimized for current technologies, but it is missing some features (Bump Mapping, texture compression, higher speed, single pass trilinear) This tier will address that.
This is new design work and our anticipated delivery would be Q3 2014.
$1,000,000 Universal Shader
This is our ultimate stretch goal and requires a complete redesign. It's something we have been wanting to do for years, but didn't have the resources. This would allow us to create a complete open source implementation of a modern day graphics accelerator.
If we receive more than the above, it will allow us to devote more time and effort to the project and we'll be able to release code sooner.
This is new design work and our anticipated delivery would be Q2 2015.
Licensing and Deliverables
This is where we believe we are unique. Our deliverables are Verilog source code and testbenches. They will run on modern simulators and the design has been tested in both Altera and Xilinx. Unlike other open source hardware projects, you will have access to everything, including board design files for the 2D part. (3D would require rework).
Our licensing model is LGPL v3 as we treat this almost like a software linked library. If you improve or modify our code, it must be released under the LGPL v3 or later license. However, you are free to use the design as part of a larger design or system as long as you comply with the LGPL v3 or later.
Dec 2013 - GPU will start propagating to our SVN server for Beta Access backers. This will be 2D. (3D should the stretch goal be met).
Feb 2014 - Source will be frozen and 3 month early access backers will get access to our SVN server. USB keys will go out to Beta and Early access backers.
May 2014 - General release. SVN will be open to the world and remaining USB keys will ship.
Q2 2014 - Should our stretch goal be met, generic Interface support will be added and released in the SVN.
Q3 2014 - Should our stretch goal be met, additional features and performance enhancements will be released into the SVN.
Q1 2015 - Should our ultimate stretch goal be reached, the Unified Shader Model SVN will be opened to beta access backers.
Q2 2015 - Should our ultimate stretch goal be reached, the Unified Shader Model will be released to early access backers.
Q3 2015 - Should our ultimate stretch goal be reached, the Unified Shader Model will be released to the public.
Risks and challenges
Risks for the 2D core are mostly non existent. We need to polish the code and documentation, then release.
The 3D core has a few missing features we need to complete and will have a Q1 2014 release.
The AXI interfaces and above are new code. We are intimately familiar with the design and have over 20 years of ASIC and FPGA experience each. We anticipate a Q2 2014 release.
Software drivers are a challenge, and we will work on providing some level of drivers, with the hopes that the community takes them up and pushes them to new levels and provides problem reports to us.
Some questions have come up regarding patents. I think we are safe in the lower tiers as the technology is 15+ years old and we knew of no patents and no patent lawsuits were filed against us at #9.
That said, the Unified Shader may pose challenging, but I would think any existing patents would be based on ways of doing things and we can work around them. We would be following OpenCL, as far as I understand an open standard.
- (45 days)