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 终端,并运行以下命令:

后续步骤