VK-GL-CTS:Khronos图形API一致性测试套件,支持OpenGL、Vulkan等多接口

Khronos Vulkan, OpenGL, and OpenGL ES Conformance Tests

分支62Tags156
文件最后提交记录最后更新时间
8 年前
1 天前
2 年前
1 个月前
1 年前
1 年前
1 天前
11 天前
16 天前
15 天前
1 个月前
2 年前
1 个月前
5 年前
1 年前
1 天前
1 天前
27 天前
7 年前
7 年前
2 年前
11 年前
11 年前
3 个月前
1 年前
1 年前

VK-GL-CTS 自述文件

该存储库包含名为 VK-GL-CTS 的 Khronos 遵从性测试套件,源自 dEQP(drawElements 质量计划)。 VK-GL-CTS 包含针对多种图形 API 的测试,包括 OpenGL、OpenGL ES、EGL、Vulkan 以及 Vulkan SC。

文档

VK-GL-CTS 的最新文档可在以下位置找到:

遵从性测试生成的 .qpa 日志中可能嵌入有测试结果的 PNG 图片。 可以使用 scripts/qpa_image_viewer.html 查看这些图片,通过网页浏览器打开文件并按照说明操作,或使用 Cherry 工具。

Khronos Vulkan 遵从性测试

该存储库包含在 external/vulkancts 目录下的 Khronos Vulkan CTS。 更多信息请见 Vulkan CTS 自述文件

Khronos OpenGL / OpenGL ES 遵从性测试

该存储库包含在 external/openglcts 目录下的 Khronos OpenGL / OpenGL ES CTS。 更多信息请见 OpenGL / OpenGL ES CTS 自述文件

默认构建时选择目标子集

如上所述,在配置 VK-GL-CTS 源代码以运行 Vulkan 遵从性测试或 OpenGL(ES) 遵从性测试时,CMake 会生成构建文件,默认情况下在桌面平台上,将构建每个可能的项目二进制文件。这可能并不理想,因为构建过程需要的时间和磁盘空间可能较多。

选择只构建目标子集的一种方法是使用 CMake 的目标选择机制。例如,以下命令将只构建 deqp-vk,即主要的 Vulkan 遵从性测试二进制文件:

cmake --build BUILD_DIRECTORY --target deqp-vk

当仅构建目标子集成为某个工作副本或构建目录的偏好默认行为时,存在第二种目标选择机制,以避免每次都传递 --target 选项:即 SELECTED_BUILD_TARGETS CMake 选项。如果设置为非空值,只有该配置选项中列出的目标会被构建,目标之间用空格分隔。

例如,在配置项目时传递 -DSELECTED_BUILD_TARGETS="deqp-vk deqp-vksc" 将使得 cmake --build BUILD_DIRECTORY 的行为类似于额外传递了 --target deqp-vk --target deqp-vksc 参数。

重要提示:目标子集选择可能在所有环境和情况下都未经充分测试,并且它不替代为创建一致性提交所提供的说明。

ANGLE for Android

要为 Android 构建ANGLE,请遵循这里的说明。

构建完成的 ANGLE 动态库可以被链接并嵌入到 dEQP.apk 中,使用 --angle-path 选项。这将导致 dEQP.apk 使用 ANGLE 库来处理 OpenGL ES 调用,而不是使用原生驱动。

必须指定一个 ABI,并且包含 ANGLE 动态库的目录结构必须与之匹配,以便构建系统能够找到正确的 *.so 文件。

假设 ANGLE 动态库生成到 ~/chromium/src/out/Release/,并且 dEQP.apk 将会使用 --abis arm64-v8a 生成,请执行以下命令:

cd ~/chromium/src/out/Release/
mkdir arm64-v8a && cd arm64-v8a
cp ../lib*_angle.so .

然后可以使用 --angle-path ~/chromium/src/out/Release/ 选项来链接并嵌入 ANGLE 动态库文件。完整的命令将是:

python scripts/android/build_apk.py --sdk <Android SDK 路径> --ndk <Android NDK 路径> --abis arm64-v8a --angle-path ~/chromium/src/out/Release/

Vulkan 视频示例

为了运行 vulkan 视频 解码 测试套件,你需要在构建和运行任何测试套件(如 dEQP-VK.video.decode.*)之前运行脚本 external/fetch_video_decode_samples.py。它将在 external/vulkancts/data/vulkan/video 中下载视频片段。

为了运行 vulkan 视频 编码 测试套件,你需要在构建和运行任何测试套件(如 dEQP-VK.video.encode.*)之前运行脚本 external/fetch_video_encode_samples.py。它将在 external/vulkancts/data/vulkan/video 中下载视频片段。