Magma 貢獻與最佳做法
提交修補程式
請參閱「貢獻」。
原始碼
您可以在以下位置找到核心放大鏡程式碼:
Magma 服務驅動程式位於以下位置:
Magma 用戶端驅動程式是第三方程式碼集。開放原始碼用戶端驅動程式通常位於 third_party/mesa。
編碼慣例和格式
- 如需原始碼,請參閱 Google 樣式指南。
- 在變更上執行 clang-format,讓格式保持一致。
用於測試的建構設定
L0 和 L1 測試產品:
- Core
L0 和 L1 測試的套件:
- src/graphics/lib/magma/tests:l1
L2 測試產品:
- Workbench_eng
L2 測試套件:
- src/Experiences/example/spin_cube
提交前進行測試
如要進一步瞭解磁馬的測試策略,請參閱「測試策略」。
magma TPS 有多種等級。每個等級包含所有先前等級。
提交變更時,請在執行測試的硬體前面註明測試的 TPS 層級:
測試:nuc,vim2:go/magma-tps#L2 nuc,vim2:go/magma-tps#S1 nuc,vim2:go/magma-tps#C0 nuc,vim2:go/magma-tps#P0
近 0
包含所有單元測試和整合測試。這個 TTP 層級有 2 個步驟:
- 使用 magma_enable_developer_build 建構並納入 magma-dev 套件;這會在系統驅動程式庫啟動時執行需要硬體的單元測試,然後照常公開裝置。檢查系統記錄檔中的測試結果。
例子:
fx set core.x64 --with-base=//src/graphics/lib/magma/gnbuild/magma-intel-gen:magma-dev --args magma_enable_developer_build=true
- 使用
--with-base //src/graphics/bundles:vulkan --with src/graphics/lib/magma/tests:l0
進行建構,並執行測試指令碼 src/graphics/lib/magma/scripts/test.sh。
近 1 場
如果您有附加的螢幕,請執行旋轉 vkcube。這項測試會使用圖像管道交換鏈,將影格傳遞至系統合成器。使用 --with-base //src/graphics/bundles:vulkan --with src/graphics/lib/magma/tests:l1
進行建構。
透過景觀測試:ffx session add fuchsia-pkg://fuchsia.com/vkcube-on-scenic#meta/vkcube-on-scenic.cm
。
S0 號
整晚 (12-24 小時) 執行情境 vkcube-on-scenic。
S1
完整的 UI 壓力測試。啟動兩個 spin_cube flutter 範例的執行個體,並讓它們可整夜執行。
C0
至於某些變更,建議您先執行 Vulkan 合規測試套件,再提交資料。請參閱「一致性」一節。
得分
針對部分變更,建議您執行基準測試來驗證成效指標。請參閱「基準化」一文。
合規
如需 Vulkan 符合性測試套件的詳細資訊,請參閱