GPU user guide

Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.


What is GPU

GPU (Graphics Processing Unit) is a chip in the device dedicated to “drawing” and “computing images”. The CPU is responsible for “thinking” — processing logic and running programs. The GPU is responsible for “drawing” — rendering content into images displayed on the screen. The RK3576 integrates an ARM Mali-G52 MC3 GPU (up to 900 MHz). The desktop interface, video playback, and 3D games all rely on it for rendering.

Where the GPU Works in Daily Use

Scenario

What the GPU Does

Desktop interface

Window compositing, animation transitions, app switching

Video playback

Color processing and scaling of video frames

Web browsing

Web content compositing, scrolling rendering

3D apps/games

3D scene rendering

Video conferencing

Video effects, virtual backgrounds

The M2 Debian desktop (GNOME) uses GPU compositing rendering by default. The GPU works all the time during daily operations; no manual enabling is required.

Using the GPU on M2

Scenario 1: Video Playback (GPU Rendering Output)

Use GStreamer to play video, with frames rendered by the GPU to the screen (Wayland):

# Play the onboard test video (hardware decode + GPU rendering display)
gst-launch-1.0 filesrc location=/oem/SampleVideo_1280x720_5mb.mp4 ! \
  qtdemux ! h264parse ! mppvideodec ! waylandsink

# Desktop environment variables (GNOME user session)
export XDG_RUNTIME_DIR=/run/user/1000 WAYLAND_DISPLAY=wayland-0

Normal playback display indicates the GPU rendering pipeline works correctly.

Scenario 2: Running GPU Performance Test (glmark2)

glmark2 is an OpenGL performance benchmark. The score reflects overall GPU performance:

# Install
sudo apt install glmark2-wayland

# Run in the desktop session (M2 / Debian)
XDG_RUNTIME_DIR=/run/user/1000 WAYLAND_DISPLAY=wayland-0 glmark2-wayland

M2 measured score: 745 (all items). Observe GPU frequency changes while running:

watch -n1 cat /sys/class/devfreq/27800000.gpu/cur_freq
# Frequency rises from 300MHz to 900MHz during benchmark

Scenario 3: Writing Your Own OpenGL Program (Development)

The M2 Mesa Panfrost driver supports OpenGL ES 3.1 and Desktop GL 3.1. You can develop with standard OpenGL:

# Install development libraries
sudo apt install libgl1-mesa-dev libegl1-mesa-dev libgles2-mesa-dev

# Compile GLES program (es2gears as example)
sudo apt install mesa-utils-extra
es2gears

If the program reports “Could not initialize canvas”, there is no available graphics session — you need to log in to the GNOME desktop first.

FAQ

Problem

Solution

3D programs report “Could not initialize canvas”

Log in to the GNOME desktop first; SSH without a desktop session cannot run it

Desktop lag / frame drops

Check GPU frequency: cat /sys/class/devfreq/27800000.gpu/cur_freq

Desktop GL programs cannot run on SMARC

SMARC only supports GLES 3.2; use the GLES version or switch to M2

GPU overheating

RK3576 GPU heats up under full load; pay attention to heat dissipation