See Contributing.
The source code for a magma graphics driver may be hosted entirely within the garnet repository.
The core magma code is found under:
Implementations of the magma service drivers are found under:
Implementations of the magma application driver may be located in drivers/gpu; though often these are built from third party projects, such as third_party/mesa.
Magma adheres to a philosophy of multi-level testing. Unit testing should accompany all units of implementation. Unit tests can be found:
Integration tests are the next level of testing:
Particularly, for each of the magma abis, there should be adequate coverage from unit and/or integration tests:
Tests that exercise the vulkan api should also be run on most changes. Many of these can be executed on a running system using the script:
Which executes the tests defined in:
The vulkan cube is a good simple, single vulkan application test case:
For some changes, it's appropriate to run the vulkan conformance test suite before submitting. See Conformance.
For some changes, it's appropriate to run benchmarks to validate performance metrics. See Benchmarking.
For some changes, it's appropriate to build and exercise the full ui to validate functionality and performance. For details, refer to top level project documentation.
For details on the Vulkan conformance test suite, see
See helper scripts:
The source to Vulkan gfxbench is access-restricted. It should be cloned into third_party.
See helper build script: