Submitting a patch
See Contributing.
Source code
The core magma code is found under:
Magma service drivers are found under:
Magma client drivers are third party codebases. Open source client drivers are in third_party/mesa.
Coding conventions and formatting
- Use the Google style guide for source code.
- Run clang-format on your changes to maintain consistent formatting.
Build Configuration for Testing
Product for L0 testing
core
Packages for L0 testing
src/graphics/lib/magma/tests:l0
Product for L1 testing
workbench_eng
Package for L1 testing
src/graphics/examples:vkcube-on-scenic
Testing Pre-Submit
For details on the testing strategy for magma, see Test Strategy.
There are multiple levels for magma TPS. Each level includes all previous levels.
When submitting a change, indicate the TPS level tested, prefaced by the hardware on which you performed testing:
TEST: 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
Build Fuchsia:
fx build
Run the test script src/graphics/lib/magma/scripts/test.sh:
./src/graphics/lib/magma/scripts/test.sh
L1
If you have an attached display, execute the spinning
vkcube. This test uses an imagepipe swapchain
to pass frames to the system compositor. Build with
--with-test src/graphics/examples:vkcube-on-scenic
.
Test with present through Scenic:
ffx session add fuchsia-pkg://fuchsia.com/vkcube-on-scenic#meta/vkcube-on-scenic.cm`
S0
Run vkcube-on-scenic overnight (12-24 hours).
S1
A full UI stress test. Launch two instances of the spinning_cube
flutter
example and let them run overnight.
C0
For some changes, it's appropriate to run the Vulkan conformance test suite before submitting. See Conformance.
P0
For some changes, it's appropriate to run benchmarks to validate performance metrics. See Benchmarking.
Conformance
For details on the Vulkan conformance test suite, see: