OpenFIMG, the open-source graphics driver project that began as the GLES6410 driver
for providing a full open-source 3D stack for some Samsung ARM SoCs, continues to be developed and is moving on with its OpenGL ES accelerated support.
One year ago I mentioned An Open-Source GLES Driver For Samsung's Galaxy GPU
by way of this GLES6410 driver project. While this driver project is nearly a one-man effort, in the past year the project has continued and much headway has been made. In the process, the driver was also renamed to OpenFIMG. The OpenFIMG project site and code is now over on GitHub
OpenFIMG's aim remains the same -- to provide a proper implementation of OpenGL ES 1.1 (and potentially OpenGL ES 2.0) for the 3D engine on some Samsung SOCs. The project name comes from FIMG 3DSE, which is the Samsung 3D engine as found on the S3C6410, S5P6442 and S5PC100 ARM SoCs. (Note: this OpenGL ES 3D engine isn't derived from PowerVR SGX technology).
The OpenFIMG driver is being principally developed from a Samsung Galaxy Spica (S3C6410) running Google Android as well as a Tiny6410 development board having the same Samsung chipset while running Debian Linux, but should be compatible with any mobile device bearing FIMG-3DSE graphics.
As far as the status of this open-source Samsung graphics driver goes, which is being developed by reverse-engineering the Samsung Linux blob, there is the status page
All basic EGL 1.4 features have now been implemented in this driver except for rendering-to-texture support. Key EGL (and Android EGL) extensions have also been implemented with the exception of EGL_KHR_image_pixmap
. When it comes to OpenGL ES 1.1 coverage, basic features like support for context management, buffer objects, emulation shaders, texturing, buffer clearing, and glReadPixels have been implemented (among other functionality) in this open-source driver. Areas of missing GLES 1.1 base coverage at this point is support for clipping, lighting, and fog.
Many of the extensions that are part of the OpenGL ES 1.1 specification have also been successfully implemented, but there's still many extensions that are not yet implemented. However, the progress on this driver over the past year is quite good -- especially considering it's a one-man show -- and that there is no support at all from the vendor (Samsung).
Sadly though this driver isn't being written against Mesa's Gallium3D, but rather being all implemented from scratch as its own library for the FIMG 3DSE hardware. The driver is working under Android and other Linux distributions for the select ARM SoCs.
This driver also isn't using the Linux kernel DRM (Direct Rendering Manager). However, the project's TODO list
does indicate plans for "Convert the architecture to use Direct Rendering Manager." There's also TODO plans for possible X11/Qt back-end support, FIMG-3DSE 1.5.3 (S5P6442) support, OpenGL ES 2.0 compliance, a shader compiler possibly like Intel's Mesa "GLSL2" compiler, merging an FBO (Frame Buffer Object) implementation, and adding other functionality.
This impressive progress comes while the Free Software Foundation's high-priority PowerVR driver project
(also to be done via reverse-engineering) is dead in the water
. Since writing the scathing article about the sad state of the FSF's high-priority projects
several months ago, there's no other visible signs of progress. In fact, the last Wiki updates for the project (the Wiki
) were in November and that's when someone was using the Wiki to try to find out who is even working on the project, who can be contacted, how can anyone even collaborate on the code/reverse-engineering for those interested, and whether there's even a code repository yet. Those questions have yet to even be answered as the project really hasn't done anything yet.
Stay tuned though for some announcements.