对 Magma 做出贡献和最佳实践

提交补丁

请参阅贡献

源代码

核心 magma 代码位于:

Magma 服务驱动程序位于以下位置:

Magma 客户端驱动程序是第三方代码库。开源客户端驱动程序位于 third_party/mesa 中。

编码规范和格式设置

  • 请使用 Google 样式指南来编写源代码。
  • 对所做更改运行 clang-format,以保持格式一致。

用于测试的 build 配置

适用于 L0 测试的产品

  • core

用于 L0 测试的软件包

  • src/graphics/lib/magma/tests:l0

用于 L1 测试的商品

  • workbench_eng

用于 L1 测试的软件包

  • src/graphics/examples:vkcube-on-scenic

提交前测试

如需详细了解 magma 的测试策略,请参阅测试策略

Magma TPS 有多个级别。每个级别都包含所有之前的级别。

提交更改时,请指明测试的 TPS 级别,并在前面加上您执行测试所用的硬件:

测试: nuc,vim3:go/magma-tps#L1 nuc,vim3:go/magma-tps#S1 nuc,vim3:go/magma-tps#C0 nuc,vim3:go/magma-tps#P0

L0

  1. 构建 Fuchsia:

    fx build
  2. 运行测试脚本 src/graphics/lib/magma/scripts/test.sh

    ./src/graphics/lib/magma/scripts/test.sh

L1

如果您有连接的显示屏,请执行旋转的 vkcube。此测试使用 imagepipe 交换链将帧传递给系统合成器。使用 --with-test src/graphics/examples:vkcube-on-scenic 构建。

通过 Scenic 使用呈现进行测试:

ffx session add fuchsia-pkg://fuchsia.com/vkcube-on-scenic#meta/vkcube-on-scenic.cm`

S0

让 vkcube-on-scenic 在夜间(12-24 小时)运行。

S1

完整的界面压力测试。启动 spinning_cube flutter 示例的两个实例,并让它们在夜间运行。

C0

对于某些更改,在提交之前运行 Vulkan 一致性测试套件是适当的做法。请参阅合规性

P0

对于某些更改,运行基准测试来验证性能指标是恰当的做法。请参阅基准测试

一致性

如需详细了解 Vulkan 一致性测试套件,请参阅:

另请参阅