高通Linux显示指南(一)

概述

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 显示屏。

前提条件

确保配置了以下设置:

  1. DIP_SW_0 Switch 4 设置为 OFF。
  2. 设备已连接到 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 路径有效工作。若要运行模式测试,请执行以下操作:

  1. 若要终止 Weston 客户端应用程序,请在设备 shell 中运行以下命令:
    mount -o remount,rw /
    
    ps -A | grep weston
    
    示例输出:
    824 ?        00:00:12 weston
      1090 ?        00:00:00 weston-keyboard
      1092 ?        00:00:01 weston-desktop-
    
    示例 Weston 进程列表中的 Weston 进程 ID 用于终止 Weston 进程。
  2. 若要终止所有 Weston 进程,请运行以下命令:
    killall weston
    
  3. 若要更改模式测试应用程序的权限,请运行以下命令:
    chmod 0777 /usr/bin/modetest
    
  4. 若要了解连接器 ID 和模式,请运行以下命令:
    /usr/bin/modetest -M msm_drm > /opt/drm_mode.txt
    
  5. 若要检查 DRM 模式和连接器信息,请在将 /opt/drm_mode.txt 文件拉取到主机。使用安全复制协议 (SCP) 工具将 drm_mode.txt 文件从设备拉取到主机。例如,
    scp -r root@<IP of the device>:/opt/drm_mode.txt <directory path of the host machine>
    
    下图所示的输出来自 /opt/drm_mode.txt 文件。
    在这里插入图片描述
  6. 使用 /opt/drm_mode.txt 文件中的相关值获取连接器 ID 和模式名称:
    modetest -M msm_drm -s <Connector id>:<mode name>
    
  7. 若要启动模式测试应用程序,请使用从 /opt/drm_mode.txt 文件中检索到的连接器 ID 和模式名称运行以下示例命令,例如:
    /usr/bin/modetest -M msm_drm -s 32:1920x1080-60
    
    HDMI输出结果:
    在这里插入图片描述

若要重新启动 Weston 服务器,请参阅重新启动 Weston

猜你喜欢

转载自blog.csdn.net/weixin_38498942/article/details/142852242