Skip to main content
以下工作流展示了如何在 Qualcomm 设备上开始使用图形应用程序。
图:图形应用程序工作流

图:图形应用程序工作流

上面的流程图概述了使用 Platform SDK 运行和分析图形与计算示例应用程序所涉及的步骤:
  1. 首先生成针对该平台定制的 SDK。
  2. 运行 OpenGL ES、OpenCL 和 Vulkan 示例应用程序以验证功能。
  3. 执行调试,以识别并解决示例运行期间的问题。
  4. 使用 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 显示指南
有关 Qualcomm Linux 设备支持的 OpenGL ES 扩展的信息,请参阅 EGL 扩展 编译并运行 glmark2 应用程序
  1. 要在 Linux 主机上设置 SDK 环境,请运行以下命令:
  2. 要编译并生成二进制文件,请运行以下命令:
    如果遇到任何 umask 错误,请将 umask 设置为 022。 编译成功后,你可以在 <path-to-installed-sdk>/workspace/sources/glmark2/oe-workdir/image/usr/bin 目录中找到输出文件。
  3. 要将二进制文件推送到设备,请运行以下命令:
  4. 要在设备上运行该应用程序,请使用设备的 IP 地址打开 SSH 终端并运行以下命令:
    注意 要从 UART shell 运行示例应用程序,请使用以下命令重新挂载文件系统:
    注意 glmark2 和 X11 应用程序会遇到 X connection to :0 broken 的情况。后续版本将包含针对此问题的修复。

编译并运行基于 OpenCL 的应用程序

Adreno OpenCL SDK 提供了许多示例应用程序。编译和运行它们的步骤是相同的。你可以使用 Adreno OpenCL SDK 开发多种应用程序。但是,在编译和运行应用程序之前,请考虑 GPU 的能力。 运行 hello world 应用程序的步骤如下: 前提条件 有关 Qualcomm Linux 设备支持的 OpenCL 扩展的信息,请参阅 OpenCL 扩展 编译并运行 hello world 示例应用程序
  1. 要编译该应用程序,请在 Linux 主机上运行以下命令:
    代码编译成功后,系统会在 /build 目录中生成二进制文件。
  2. 要运行该应用程序,请使用设备的 IP 地址打开 SSH 终端并运行以下命令:
    注意 要从 UART shell 运行示例应用程序,请使用以下命令重新挂载文件系统:
  3. 要将二进制文件推送到设备,请运行以下命令:
  4. 要启动该应用程序,请通过 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 扩展 前提条件 编译并运行 triangle bin 示例应用程序的步骤
  1. 要编译该应用程序,请在 Linux 主机上运行以下命令:
    编译成功后,你可以在 build/linux/bin 目录中找到二进制文件。
  2. 要将二进制文件推送到设备,请运行以下命令:
  3. 要运行该应用程序,请使用设备的 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 扩展 前提条件 编译并运行 vulkan_samples 应用程序的步骤
  1. 要编译该应用程序,请在 Linux 主机上运行以下命令:
    如果编译失败,请执行以下操作:
    1. 打开 Vulkan-Samples/build/linux/CmakeCache.txt 文件。
    2. GLFW_BUILD_X11 更改为 OFF
    3. 运行以下命令:
  2. 要生成二进制文件,请运行以下命令:
    编译成功后,你可以在 Vulkan-Samples/build/linux/app/bin/Release/aarch64 目录中找到二进制文件。
  3. 要将二进制文件推送到设备,请运行以下命令:
  4. 要运行该应用程序,请使用设备的 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 开发库
  • 设置 Meson
    1. 创建 aarch64-qcom-linux-meson.cross 文件。
    2. 将以下文本添加到 aarch64-qcom-linux-meson.cross 文件并保存更改。
    3. 创建 meson.native 文件。
    4. 将以下文本添加到 meson.native 文件并保存更改。
编译并运行基于 X11 的 glmark2 应用程序
  1. 要设置 SDK 环境,请在 Linux 终端中运行以下命令:
  2. 要克隆 glmark2 源码,请运行以下命令:
  3. 要进行配置,请运行以下命令:
  4. 要编译并生成二进制文件,请运行以下命令:
    生成的二进制文件位于 build/bin 目录。例如 build/src/es-glmark2 数据文件位于 build/share/glmark2。例如 <path-to-installed-Platform-sdk>/glmark2/source/build/share/glmark2
  5. 要开始该过程,请运行以下命令:
  6. 要运行 Weston,请使用设备的 IP 地址打开新的 SSH 终端并运行以下命令:
  7. 要运行 glmark2 应用程序,请使用设备的 IP 地址打开原先的 SSH 终端并运行以下命令:
注意 运行 glmark2 应用程序时,一旦基准测试完成并显示最终分数,即可视为运行成功。此后出现的任何消息都可以忽略。 编译并运行基于 X11 的 VKCube 应用程序
  1. 要设置 SDK 环境,请在 Linux 终端中运行以下命令:
  2. 要克隆 VKCube 源码,请运行以下命令:
  3. 要进行配置,请运行以下命令:
  4. 要编译并生成二进制文件,请运行以下命令:
    生成的二进制文件位于 $PWD/build/。例如 <path-to-installed-Platform-sdk>/vkcube/build/
  5. 要开始该过程,请使用设备的 IP 地址打开新的 SSH 终端并运行以下命令:
  6. 要启动 VKCube 应用程序,请使用设备的 IP 地址打开原先的 SSH 终端并运行以下命令:
  7. 使用设备的 IP 地址打开新的 SSH 终端,并运行以下命令:

后续步骤