概述
Qualcomm 显示处理单元 (DPU) 提供硬件加速的图像处理。DPU 从内存中检索像素数据,并通过标准接口将其发送到显示外设。
DPU 提供以下镜像处理和接口功能:
- 图像处理:包括合成、缩放、颜色格式转换、色彩空间转换和颜色处理。
- 合成:将单个图层混合到一个可发送到显示面板的帧中。
- 缩放:支持放大/缩小源图像以匹配面板分辨率。
- 颜色格式转换:将颜色从一种颜色格式转换为另一种颜色格式(从 YUV 到 RGB)。
- 色彩空间转换:将颜色从一个色彩空间转换为另一个色彩空间(sRGB、P3 和 BT2020)。
- 颜色处理:增强颜色以获得更好的视觉质量。
- 接口:使用MIPI DSI 接口连接各种显示屏,或者使用DisplayPort连接电脑或显示器。
- MIPI DSI:定义主机处理器和外围设备之间的协议,这些协议符合移动设备接口的 MIPI 联盟规范。
- DisplayPort:用作数字显示接口,主要将视频源连接到计算机显示器等显示设备。此外,DisplayPort 可以传输音频、USB
和其他数据形式。
Adreno DPU 引擎的硬件功能通过 Qualcomm Linux Intelligent Multimedia Software Development Kit (QIM SDK) 参考 和 libdrm API 开放。显示软件架构如下图所示:
Figure : 显示软件架构
入门指南
在开始之前,请按照 Qualcomm Linux 编译指南中所述搭建基础架构。
设置 HDMI
显示子系统提供 Weston 和 Wayland 合成器,以及与 DPU 驱动程序交互以渲染 Wayland 客户端应用程序的 libdrm。示例测试程序用于评估 Wayland 应用程序的基本渲染并设置 HDMI 显示屏。
前提条件
确保配置了以下设置:
- DIP_SW_0 Switch 4 设置为 OFF。
- 设备已连接到 HDMI 显示屏。
验证 HDMI 显示屏设置
要验证 HDMI 显示屏的设置,请打开设备电源。当设备启动时,Weston 会自动启动。您应该在显示器上看到以下 Weston 花卉图案:
Note:
有时,Weston 服务器在启动期间可能默认不启动,并显示空白的 HDMI 显示屏。要解决空白屏幕问题,请终止 Weston 进程并手动重新启动 Weston 服务器。有关详细信息,请参阅重新启动 Weston。
Weston EGL 客户端应用程序
若要运行 Weston 简单 EGL 客户端应用程序,请运行以下命令:
mount -o remount,rw /
su
. /etc/profile
export XDG_RUNTIME_DIR=/dev/socket/weston
mkdir --parents $XDG_RUNTIME_DIR
chmod 0700 $XDG_RUNTIME_DIR
cd /usr/bin
export WAYLAND_DISPLAY=wayland-1
./weston-simple-egl
下图显示了在显示器上运行的 Weston 简单 EGL 客户端应用程序:
若要终止应用程序,请按 CTRL + C。
GStreamer 示例
用于视频播放的 GStreamer 示例程序是 QIM SDK 的一部分。若要详细了解 GStreamer 应用程序的先决条件,请参阅示例程序。
使用以下命令运行示例视频测试用例:
-
使用 gst-launch-1-0 运行视频测试用例:
gst-launch-1.0 -e filesrc location=/opt/<h264_file>.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! waylandsink enable-last-sample=false fullscreen=true
DRM 模式测试
DRM 模式测试检查显示驱动程序拓扑是否按预期工作。该测试可确保 DSI 和 DPU 路径有效工作。若要运行模式测试,请执行以下操作:
- 若要终止 Weston 客户端应用程序,请在设备 shell 中运行以下命令:
mount -o remount,rw /
示例输出:ps -A | grep weston
示例 Weston 进程列表中的 Weston 进程 ID 用于终止 Weston 进程。824 ? 00:00:12 weston 1090 ? 00:00:00 weston-keyboard 1092 ? 00:00:01 weston-desktop-
- 若要终止所有 Weston 进程,请运行以下命令:
killall weston
- 若要更改模式测试应用程序的权限,请运行以下命令:
chmod 0777 /usr/bin/modetest
- 若要了解连接器 ID 和模式,请运行以下命令:
/usr/bin/modetest -M msm_drm > /opt/drm_mode.txt
- 若要检查 DRM 模式和连接器信息,请在将 /opt/drm_mode.txt 文件拉取到主机。使用安全复制协议 (SCP) 工具将 drm_mode.txt 文件从设备拉取到主机。例如,
下图所示的输出来自 /opt/drm_mode.txt 文件。scp -r root@<IP of the device>:/opt/drm_mode.txt <directory path of the host machine>
- 使用 /opt/drm_mode.txt 文件中的相关值获取连接器 ID 和模式名称:
modetest -M msm_drm -s <Connector id>:<mode name>
- 若要启动模式测试应用程序,请使用从 /opt/drm_mode.txt 文件中检索到的连接器 ID 和模式名称运行以下示例命令,例如:
HDMI输出结果:/usr/bin/modetest -M msm_drm -s 32:1920x1080-60
若要重新启动 Weston 服务器,请参阅重新启动 Weston。