OpenGL ES 2.x API
For our work based on the OpenGL ES 2.0 API specification a couple of fundamental changes have been applied to the project structure, which I am going to summarize here.
FPGA-based Implementation
From a technical point of view, the OpenGL ES 2.0 API specification is targeting devices providing hardware accelerated vector floating point operations. For this reason, there are no plans to support integer-only machines. Instead, goal of the 2.X project is the creation of an FPGA-based implementation of the graphics pipeline. Currently, we are using development kits from Altera for this work.The Vincent 2.X project comprises the following components:
- A reference implementation of the OpenGL ES 2.0 API specification acting as runtime written using the C programming language and assuming floating point support.
- An architectural specification defining an FPGA-based GPU core roughly equivalent to vs_3.0/ps_2.0.
- A synthesizable functional model of the GPU architecture written using the Verilog language, and linked to the C runtime library.
- An embedded compiler frontend based on the OpenGL ES 1.0 Shading Language specification currently targeting a dialect of the ARB low level shading language.
- A compiler backend converting the ARB low level shading language to the instruction set defined by the architecture specification.
New License
The C sources for the 2.x project will be made available under an OSI approved license. The current plan is the use the Common Development and Distribution License (CDDL), which covers key aspects of non-commercial and commercial use, relation to patents and other IP, as well as rights and obligations of contributors to the project. The CDDL is based on the Mozilla license with minor clarifications and corrections, which are discussed on Sun's web site. The open-source package will include a C-based implementation of an emulator/simultor for the GPU architecture.The current development platform for the synthesizable model is the Altera Video Development Kit, Cyclone II Edition. I anticipate that I will outgrow this development kit as the implementation proceeds.