提交补丁
请参阅贡献。
源代码
核心 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
构建 Fuchsia:
fx build
运行测试脚本 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 一致性测试套件,请参阅: