對 Magma 做出貢獻和最佳做法

提交修補程式

請參閱「貢獻」一文。

原始碼

核心 Magma 程式碼位於以下位置:

Magma 服務驅動程式位於以下位置:

Magma 用戶端驅動程式是第三方程式碼集。開放原始碼用戶端驅動程式位於 third_party/mesa

程式設計慣例和格式

  • 請使用Google 樣式指南的原始碼。
  • 對變更內容執行 clang-format,以維持一致的格式。

用於測試的版本設定

L0 測試專用產品

  • core

L0 測試套件

  • src/graphics/lib/magma/tests:l0

適用於 L1 測試的產品

  • workbench_eng

L1 測試套件

  • src/graphics/examples:vkcube-on-scenic

提交前測試

如要進一步瞭解 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

  1. 建構 Fuchsia:

    fx build
  2. 執行測試指令碼 src/graphics/lib/magma/scripts/test.sh

    ./src/graphics/lib/magma/scripts/test.sh

L1

如果您有已連結的螢幕,請執行旋轉 vkcube。這項測試會使用圖片管道交換鏈,將影格傳遞至系統合成器。使用 --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

完整的 UI 壓力測試。啟動兩個 spinning_cube flutter 範例的例項,並讓它們在隔天早上執行。

C0

對於某些變更,建議您在提交前執行 Vulkan 相容性測試套件。請參閱「相容性」一節。

P0

對於某些變更,執行基準測試來驗證效能指標是適當的做法。請參閱「基準測試」。

符合性

如要進一步瞭解 Vulkan 符合性測試套件,請參閱:

另請參閱