Programming the GPU

Zynq UltraScale+ Device Technical Reference Manual (UG1085)

Document ID
Release Date
2.3 English

The Mali GPU can be configured using the openGLES 2.0 API. Before use, the GPU must be powered up using the PMU as described in the Operation section in Platform Management Unit. Powering up uses a Xilinx driver (in the Linux environment). There are common libraries used for interacting with the driver. Those libraries are used by the OpenGLES implementation, which is then called by your specific application. This Figure describes the top level hierarchy/stack of libraries and driver for the GPU hardware. A list of documentation references follows the figure.

Figure 5-8:      GPU Software Stack

X-Ref Target - Figure 5-8


The PMU section of the kernel driver calls the Xilinx PMU API instead of the Arm specified PMU controlling the API(s).

Some useful references.

A description of the OpenGL API and how to use them is out of scope of this document.

Details on an example and API(s) to program and use the GPU can be found at the Khronos site and the Arm Mali developer site (Arm Mali Developer's Guide and the OpenGLES 2.0 Specification).

 A simple OpenGLES 2.0 example to draw a triangle.


RECOMMENDED:   If the GPU accesses other LPD memories (such as OCM, TCM), a delayed response can occur when there is an outstanding access to other slow I/O peripherals (such as Quad SPI flash memory) from a different master. OCM and TCM memories are not recommended for GPU access.

Note:   See the Arm Mali GPU Application Optimization Guide [Ref 54] to optimize the application’s memory performance and power utilization.