与 Android CTS 集成

Android CTS 发布包(可从 Android 兼容性下载中获得)包括 Khronos 合规性测试,并且必须通过这些测试中的一部分测试(称为 mustpass 列表)。对于不支持目标 API 或扩展程序的设备,将跳过测试并报告为已通过。

mustpass 列表涵盖 OpenGL ES 2.0 到 OpenGL ES 3.2 以及 Vulkan 1.1。mustpass 文件可以在 Khronos 合规性测试的 android/cts 目录下找到。您可以使用以下命令,通过 cts-tradefed 实用程序运行这些测试:

cts-tradefed run cts --plan CTS-DEQP

在没有 CTS 的情况下复制运行

如需复制 CTS 运行,请安装 CTS 包的 deqp APK 并使用以下命令:

adb -d shell am start -n com.drawelements.deqp/android.app.NativeActivity -e \
cmdLine "deqp --deqp-case=dEQP-GLES3.some_group.* --deqp-gl-config-name=rgba8888d24s8 --deqp-log-filename=/sdcard/dEQP-Log.qpa

关键部分是 --deqp-gl-config-name=rgba8888d24s8 参数,它要求在具有 24 位深度缓冲区和 8 位模板缓冲区的 RGBA 8888 屏幕 Surface 上运行测试。请记得使用 --deqp-case 参数设置所需的测试。

CTS 结果映射

在 Android CTS 中,测试用例最终呈现以下三种状态之一:通过、失败或未执行(deqp 会提供更多的结果代码)。CTS 会自动将 Khronos 合规性测试结果代码映射到 CTS 结果:

  • CTS 通过可包括 PassNotSupportedQualityWarningCompatibilityWarning
  • CTS 失败可包括 FailResourceErrorCrashTimeoutInternalError