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 個步驟:

  1. 使用 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

  1. 使用 --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 符合性測試套件的詳細資訊,請參閱

另請參閱