图:图形应用程序工作流
- 首先生成针对该平台定制的 SDK。
- 运行 OpenGL ES、OpenCL 和 Vulkan 示例应用程序以验证功能。
- 执行调试,以识别并解决示例运行期间的问题。
- 使用 Snapdragon Profiler 工具分析图形性能问题。
编译并运行基于 OpenGL ES 的应用程序
Platform SDK 提供了一个名为 glmark2 的基于 OpenGL ES 的示例应用程序。该应用程序使用 OpenGL ES API 渲染各种场景。 要编译并运行基于 OpenGL ES 的应用程序,你必须了解 OpenGL ES API。 前提条件- 使用以下任一方法安装 Platform SDK:
- 建立从 Linux 主机到设备的 SSH 连接。有关说明,请参阅使用 SSH 登录。
- 确保 Weston 应用程序正在运行。如果没有运行,请运行以下命令启动 Weston 应用程序:
有关 Weston 应用程序的更多信息,请参阅 Qualcomm Linux 显示指南。
- 要在 Linux 主机上设置 SDK 环境,请运行以下命令:
- 要编译并生成二进制文件,请运行以下命令:
如果遇到任何 umask 错误,请将 umask 设置为 022。 编译成功后,你可以在
<path-to-installed-sdk>/workspace/sources/glmark2/oe-workdir/image/usr/bin目录中找到输出文件。 - 要将二进制文件推送到设备,请运行以下命令:
- 要在设备上运行该应用程序,请使用设备的 IP 地址打开 SSH 终端并运行以下命令:
注意 要从 UART shell 运行示例应用程序,请使用以下命令重新挂载文件系统:注意 glmark2 和 X11 应用程序会遇到 X connection to :0 broken 的情况。后续版本将包含针对此问题的修复。
编译并运行基于 OpenCL 的应用程序
Adreno OpenCL SDK 提供了许多示例应用程序。编译和运行它们的步骤是相同的。你可以使用 Adreno OpenCL SDK 开发多种应用程序。但是,在编译和运行应用程序之前,请考虑 GPU 的能力。 运行 hello world 应用程序的步骤如下: 前提条件- 使用以下任一方法安装 Platform SDK:
- 建立从 Linux 主机到设备的 SSH 连接。有关说明,请参阅使用 SSH 登录。
- 下载 Adreno OpenCL SDK。
注意
- 你必须是注册用户才能下载 Adreno OpenCL SDK。
- 使用 QLI 2.0 时,请确保使用 OpenCL SDK 2.4 或更新版本。
- 要编译该应用程序,请在 Linux 主机上运行以下命令:
代码编译成功后,系统会在
/build目录中生成二进制文件。 - 要运行该应用程序,请使用设备的 IP 地址打开 SSH 终端并运行以下命令:
注意 要从 UART shell 运行示例应用程序,请使用以下命令重新挂载文件系统:
- 要将二进制文件推送到设备,请运行以下命令:
- 要启动该应用程序,请通过 SSH 终端在设备上运行以下命令。对于所有 OpenCL 用例,在使用 overlay 或
qcom‑multimedia‑proprietary‑image时,请确保导出export OCL_ICD_FILENAMES=/usr/lib/libOpenCL_adreno.so.1命令。
编译并运行基于 Vulkan 的应用程序
Adreno SDK 提供了许多基于 Vulkan 的示例应用程序。编译和运行任何基于 Vulkan 的应用程序的步骤是相同的。你可以使用 Adreno SDK 开发基于 Vulkan 的应用程序。要编译并运行这些应用程序,请参阅以下步骤。作为示例,本节介绍运行 Sascha Willems 和 Khronos 基于 Vulkan 的应用程序的步骤。 注意 Dragonwing IQ-615 设备不支持依赖VK_EXT_debug_utils 扩展的基于 Vulkan 的应用程序。后续版本将提供对该扩展的支持。
编译并运行 Sascha Willems 基于 Vulkan 的应用程序
你可以在 https://github.com/SaschaWillems/Vulkan.git 找到 Sascha Willems Vulkan 示例应用程序。编译和运行任何 Sascha Willems Vulkan 应用程序的步骤是相同的。 有关 Qualcomm Linux 设备支持的 Vulkan 扩展的信息,请参阅 Vulkan 扩展。 前提条件- 使用以下任一方法安装 Platform SDK:
- 建立从 Linux 主机到设备的 SSH 连接。有关说明,请参阅使用 SSH 登录。
- 要编译该应用程序,请在 Linux 主机上运行以下命令:
编译成功后,你可以在
build/linux/bin目录中找到二进制文件。 - 要将二进制文件推送到设备,请运行以下命令:
- 要运行该应用程序,请使用设备的 IP 地址打开 SSH 终端并运行以下命令。对于所有基于 Vulkan 的用例,在使用 overlay 或
qcom‑multimedia‑proprietary‑image时,请确保导出export VK_DRIVER_FILES=/usr/share/vulkan/icd.d/adrenovk.json命令。
编译并运行 Khronos 基于 Vulkan 的应用程序
你可以在 https://github.com/KhronosGroup/Vulkan-Samples.git 找到 Khronos 基于 Vulkan 的应用程序。编译和运行任何 Khronos 基于 Vulkan 的应用程序的步骤是相同的。 有关 Qualcomm Linux 设备支持的 Vulkan 扩展的信息,请参阅 Vulkan 扩展。 前提条件- 使用以下任一方法安装 Platform SDK:
- 建立从 Linux 主机到设备的 SSH 连接。有关说明,请参阅使用 SSH 登录。
- 要编译该应用程序,请在 Linux 主机上运行以下命令:
如果编译失败,请执行以下操作:
- 打开
Vulkan-Samples/build/linux/CmakeCache.txt文件。 - 将
GLFW_BUILD_X11更改为OFF。 - 运行以下命令:
- 打开
- 要生成二进制文件,请运行以下命令:
编译成功后,你可以在
Vulkan-Samples/build/linux/app/bin/Release/aarch64目录中找到二进制文件。 - 要将二进制文件推送到设备,请运行以下命令:
- 要运行该应用程序,请使用设备的 IP 地址打开 SSH 终端并运行以下命令。对于所有基于 Vulkan 的用例,在使用 overlay 或
qcom‑multimedia‑proprietary‑image时,请确保导出export VK_DRIVER_FILES=/usr/share/vulkan/icd.d/adrenovk.json命令。注意 如果你在编译或运行应用程序时遇到问题,请使用以下命令检出特定版本。然后,重复步骤 2 到 4,重新编译应用程序并运行。如果由于存储问题无法从/tmp目录运行这些示例应用程序,请尝试其他目录,例如/etc。
编译并运行基于 X11 的应用程序
基于 X11 的应用程序是为 X Window 系统设计的图形程序,X Window 是在 Linux 和其他类 Unix 操作系统上广泛使用的显示协议。 前提条件- 使用以下任一方法安装 Platform SDK:
- 建立从 Linux 主机到设备的 SSH 连接。有关说明,请参阅使用 SSH 登录。
- 从 GitLab 安装 X11 相关的二进制文件。
- 安装 libXt(X Toolkit Intrinsics)
- 安装 libxmu(X11 的各类实用函数库)
- 为主机安装 X 开发库
- 安装 libXt(X Toolkit Intrinsics)
- 设置 Meson
- 创建
aarch64-qcom-linux-meson.cross文件。 - 将以下文本添加到
aarch64-qcom-linux-meson.cross文件并保存更改。 - 创建
meson.native文件。 - 将以下文本添加到
meson.native文件并保存更改。
- 创建
- 要设置 SDK 环境,请在 Linux 终端中运行以下命令:
- 要克隆 glmark2 源码,请运行以下命令:
- 要进行配置,请运行以下命令:
- 要编译并生成二进制文件,请运行以下命令:
生成的二进制文件位于
build/bin目录。例如build/src/es-glmark2。 数据文件位于build/share/glmark2。例如<path-to-installed-Platform-sdk>/glmark2/source/build/share/glmark2。 - 要开始该过程,请运行以下命令:
- 要运行 Weston,请使用设备的 IP 地址打开新的 SSH 终端并运行以下命令:
- 要运行 glmark2 应用程序,请使用设备的 IP 地址打开原先的 SSH 终端并运行以下命令:
- 要设置 SDK 环境,请在 Linux 终端中运行以下命令:
- 要克隆 VKCube 源码,请运行以下命令:
- 要进行配置,请运行以下命令:
- 要编译并生成二进制文件,请运行以下命令:
生成的二进制文件位于
$PWD/build/。例如<path-to-installed-Platform-sdk>/vkcube/build/。 - 要开始该过程,请使用设备的 IP 地址打开新的 SSH 终端并运行以下命令:
- 要启动 VKCube 应用程序,请使用设备的 IP 地址打开原先的 SSH 终端并运行以下命令:
- 使用设备的 IP 地址打开新的 SSH 终端,并运行以下命令:

