i.MX8 - GPU

From RidgeRun Developer Connection
Jump to: navigation, search


NXP Partner Program Registered Vertical.jpg NXP Partner Program Horizontal.jpg
  Index  





General Description

According to the i.MX8 Reference Manual, the chip incorporates the following Graphics Processing Unit (GPU) features to provide 2D/3D acceleration:

  • 4 shader.
  • Run up to 800 MHz at 0.9V nominal voltage
  • Support 267 million triangles/sec
  • Support 1.6 Giga pixel/sec fill rate
  • Support 25.6 GFLOPs 32-bit, 51.2 GFLOPs 16-bit
  • Support OpenGL ES 1.1, 2.0, 3.0, 3.1
  • Support OpenCL 1.1/1.2 FP
  • Frame Buffer Compression – Lossless compression of buffers.
  • TrustZone support using a local MMU to manage secure regions.

TrustZone is a hardware architecture by ARM which main porpuse is to enable the construction of a programmable environment that allows the confidentiality and integrity of almost any asset to be protected from specific attacks. Read more about TrustZone in here.

Software

The GPU driver is divided into two layers:

  • The first layer is running in kernel mode: represents the base driver for the whole stack. This layer provides the essential hardware access, device management, memory management, command queue management, context management and power management.
  • The second layer is running in user mode: implements the stack logic and provides the APIs (OpenGL ES, OpenCL, OpenVX, Vulkan) to the upper layer applications.

Hardware

You can see all the functional blocks that compose the GPU structure in the following image:

Image source: https://www.nxp.com

For detailed information about the GPU blocks, please refer to the i.MX8 Reference Manual. At this time, there are four main product families for i.MX8 that have different features and facilities. The summary of such features can be found in the following table:

GPU Libraries & Extensions
Product Family GPU OpenGL ES OpenVX OpenCL Vulkan
i.MX8 2 3.1 Yes 2.0 Yes
i.MX 8M 1 3.1 No 1.2 Yes
i.MX 8M Mini 1 2.0 No No No
i.MX 8X 1 3.1 No 1.2 EP Yes



Previous: IMX8/Carrier_Boards/Nitrogen8M Index Next: IMX8/GPU/OpenGL