When talking about graphics on OMAP this covers a range of different software components relating to high performance 3D and 2D rendering. These components will vary depending on the HLOS (High level OS: Android, GNU/Linux/Ubuntu etc.) and specific OMAP processor (3430, 3630, 4430 etc).
Typically, the OMAP range of processors features a PowerVR SGX GPU core from Imagination Technologies (IMG). IMG provide various software packages which are integrated and optimized by TI for particular OMAP & HLOS releases.
Note: this page doesn't currently describe 2D rendering related components
SGX software components
The following diagram illustrates a simplified view of the typical software components which make up the SGX software stack. Most of these components will be built from a DDK release (see below), a subset of components may be distributed in TI's HLOS project releases.
Shaded components indicated common components which may have some modification for the host OS or the OMAP platform.
- Kernel module(s)
- SGX kernel services
- Display class module: integrates display controller / display / OS specific interfaces to SGX services (usually built into the SGX kernel module)
- Libraries / Service layer
- Provides access to Khronos standard EGL, OpenGLES1 & OpenGLES2 hardware accelerated services via SGX
- Misc. apps/tools
- Unit tests and other facilities e.g. a bootstrap mechanism for the SGX hardware
- OS specific
- Some OSs require additional components in order to integrate graphics services into them. Android's "SurfaceFlinger" compositor needs a Gralloc module tailored for the OMAP/SGX GPU environment.
Non DDK software components
Some OS services or applications might use GLES or EGL services without requiring any further modification. However there may also be modifications and enhancements related to OMAP/SGX made directly to OS components. These will be located in the relevant components in TI's various OS project releases for e.g. git.omapzoom.org.
SGX Source Code Kits
This section refers to source code releases which are available (typically) on a restricted basis.
Driver Development Kit (DDK)
The DDK component provides the source code required to build all driver modules, user libraries, firmware and unit tests necessary to enable the SGX core on an OMAP for a particular OS. The TI DDK consists of a core package from IMG upon which any number of patches may be applied for platform integration, feature addition, and bug fixes.
The DDK is restricted due to IP & licensing restrictions on TI. Note though that the SGX kernel side drivers are available in the Android linux kernel tree for e.g. the OMAP4 2.6.35 kernel.
Software Development Kit (SDK)
The SDK component provides tutorials, demos, and tools helpful for developing graphics applications on Khronos APIs in general and SGX hardware in particular. The TI SDK consists of a core package from IMG upon which any number of patches may be applied for bug fixes (typically minimal).
The SDK does not contain the software component binaries (built from the DDK) for a particular OS and hardware platform.
Note that an OS environment like Android may provide access to the necessary header files/APIs to build OpenGLES applications. The Android NDK contains these headers so you do not necessarily need to get this SDK to develop GLES applications.
See Graphics SDK
SGX Binary releases
Android binaries are here Note, this looks out of date...