3.9.1. Introduction

AM62x device is enabled with 3D graphics accelerator based on the A-Series AXE-1-16M from Imagination Technologies Inc. It enables the support of 3D graphics rendering using OpenGL® ES API’s. The OpenGL® ES API’s up to and including version 3.1 with render surfaces upto 2k and input textures upto 4k sizes are supported by the hardware. It also supports Vulkan ® up to API version 1.3.

For more information about OpenGL® ES see OpenGL ES.

For more information about Vulkan® see Vulkan.

For more information about OpenCL® see OpenCL.

The following extensions are supported:

Table 3.11 EGL client extensions

EGL_EXT_client_extensions

EGL_EXT_device_base

EGL_EXT_device_enumeration

EGL_EXT_device_query

EGL_EXT_platform_base

EGL_KHR_client_get_all_proc_addresses

EGL_KHR_debug

EGL_EXT_platform_device

EGL_EXT_platform_wayland

EGL_KHR_platform_wayland

EGL_MESA_platform_gbm

EGL_KHR_platform_gbm

EGL_MESA_platform_surfaceless

Note

Utilize vulkaninfo and eglinfo to list supported extensions.

3.9.1.1. General Features

These devices do not use static memory carve-outs. The only reservations made in device tree are for control registers. Memory is instead dynamically allocated at runtime depending on the task and will scale as needed. Scanout buffers come from the Contiguous Memory Allocation (CMA) pool. Other runtime memory allocations are from standard pages. See the kernel module memory management subsystem for more information.

Other features of the Rogue series of GPUs include bilinear and trilinear filtering.

Support for the following pixel formats:

Table 3.19 Supported pixel formats

ARGB4444

ARGB8888

BGRA8888

RGB565

RGBA5551

YUV420

YUYV

NV12

Surface

Texture

Support for Ericsson Texture Compression (ETC1 and ETC2) on input textures. For an example toolkit to interact with these texture compression mechanisms, see the Khronos KTX-Software project.

Support for OS controlled Active Power Management, enabled by default.

Support for OS suspend and resume functions. See How to Suspend to RAM (Deep Sleep) on AM62x for more info.

3.9.1.2. Software architecture

The following picture shows the software architecture of Graphics in Processor SDK Linux AM62x.

../../../../_images/rogue-graphics-software-stack.png

Fig. 3.4 PSDK Linux Rogue Graphics Software Stack

  • More information regarding Mesa can be found within the Build guide

  • RGX-KM refers to the kernel module, within the filesystem it is named pvrsrvkm.ko

  • Within the SDK, the Weston Compositor is used, an implementation of Wayland specification

  • More information regarding integration of this software stack into other ecosystems can be found at Build guide

Note

The kernel module is available at 2 possible locations depending on the kernel version selected. Before kernel 6.6 the location for external modules was extra/, from 6.6 onward the location is updates/.

3.9.1.3. Graphics demos

Along with the graphics driver and user space libraries, the SDK also includes example applications.

The following 3D Graphics demos are available:

Table 3.20 Demos

Demo Name

Details

Kmscube

This demo shows how to render and display multi-colored spinning cube

offscreendemo

Lightweight Render Example. Heavily inspired by Eduardo Lima’s gpu-playground, this attempts to act as the smallest demo of offscreen rendering.