開始使用 Vulkan

這個說明文件會概述如何下載、編譯及執行 Khronos© 範例應用程式,以開始使用 Vulkan 圖形程式庫。

必要條件

在開始之前,請先確認您已準備好適當的硬體和平台版本。 您必須使用支援 Vulkan、搭載 Android 7.0 (Nougat) 且 API 級別為 24 以上的裝置或模擬器

如要確認 Android 版本,請前往「Settings」(設定) 選單,然後依序選取「About phone」(關於手機) >「Android Version」(Android 版本)。確認硬體和平台版本設定正確無誤後,即可下載必要的軟體。

下載

在開始之前,您必須先下載幾項工具和其他軟體。請注意,在 Windows 主機上,建議您避免為工具和原始碼檔案設定階層過多的路徑,這是為了因應某些 Windows 作業系統版本的檔案路徑限制。

  1. 如果您尚未安裝 Android Studio,請先下載 Android Studio,當中包含最新的 Android SDK。
  2. 從 Android Studio 中安裝或另外下載及安裝 NDK 和 CMake。
  3. 建構及執行 Hello JNI 範例,確認 Android Studio 可正常運作。
  4. 為主機平台安裝 python3 和 build.md 中列出的其他元件。

匯入

您將在本節中下載 Khronos© Vulkan© 範例存放區、產生 Android Gradle 專案,然後透過 Android Studio IDE 開啟專案。

  1. 設定下列環境變數:
    export ANDROID_HOME=/path/to/sdk-directory
    export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/{your-ndk-version-dir}
    
  2. 將 CMake 新增至 $PATH,用於產生 Android 建構指令碼:
    export PATH=$PATH:$ANDROID_HOME/cmake/{your-cmake-version}/bin
    
  3. 開啟終端機,並將原始碼下載至開發目錄:
    cd dev-directory
    git clone --recursive https://github.com/KhronosGroup/Vulkan-Samples.git
    
  4. 按照 Build.md 的操作說明產生 Android 範例專案:
    cd Vulkan-Samples
    ./scripts/generate.py android
    
  5. 開啟 Android Studio,依序選擇「File」(檔案) >「Open」(開啟),然後選取 Vulkan-Samples/build/android_gradle/build.gradle。 當 Android Studio 載入專案後,畫面上顯示的內容應如下所示:
    將範例專案匯入 Studio。

    圖 1. Android Studio 中的範例專案。

編譯

本存放區的所有範例都會整理成一個 Android 專案。如要編譯專案,請執行下列任一操作:

  • 如果只要編譯原始碼,請在選單中依序選取「Build」(建構) >「Make Project」(建構專案),或按 Ctrl-F9 快速鍵。
  • 如要產生範例 APK,請依序選取選單中的「Build」(建構) >「Build Bundle(s)/APK(s)」(建構套件/APK) >「Build APK(s)」(建構 APK)。

完成後,Android Studio 的「Build」(建構) 視窗應會顯示建構成功的訊息。 假如您看到錯誤,請修正錯誤並重新編譯。

使用 Studio 編譯範例專案。

圖 2. 建構成功的範例。

執行

執行範例專案前,請先確認 Android Studio 可識別已連結的 Vulkan 裝置或 Android Emulator。您看到的畫面應如下所示:

將測試裝置連結至 Studio。

圖 3. 將測試裝置連結至 Android Studio。

如要執行專案,請按照下列步驟操作:

  1. 依序選取選單中的「Run」(執行) >「Run vulkan_sample」(執行 vulkan_sample) 或點選工具列上的「執行」按鈕 ,然後等待系統安裝並在已連結的裝置上啟動範例專案。
  2. 在已連結的 Android 裝置上,為必要的存取要求提供授權。
    • 啟用「Allow access to manage all files」(授予管理所有檔案的權限),然後輕觸「返回」箭頭按鈕以返回範例的啟動主畫面。
    • 授予磁碟存取權:
      授予磁碟存取權。

      圖 4. 允許存取磁碟。

  3. 您看到的範例主選單畫面應如下所示:
    範例主選單。

    圖 5. 範例主選單。

  4. 瀏覽範例清單,然後選取要執行的幾個範例。 如果您是第一次使用 Vulkan 進行開發,可以先從「API」範例開始執行。 比方說,輕觸「Hello Triangle」後,畫面上應會顯示算繪的三角形,如下所示:
    Triangle

    圖 6. Hello Triangle 範例。

現在開發系統已設定完畢,可在測試裝置上執行範例專案。

Vulkan 範例專為在多種作業系統上執行而開發,包括電腦和行動作業系統。「Performance」(效能)、「Extensions」(擴充功能) 和「Tooling」(工具) 底下的某些範例可能無法在裝置上穩定執行,而且可能發生當機情形。可能的原因包括:

  • 特定 Vulkan 功能並非專為 Android 設計。
  • 範例專案不支援您的 Android 作業系統版本。
  • 硬體平台的 GPU 不夠強大。

探索

Vulkan 範例的 Java 區段衍生自 NativeActivity 類別,會將一般的應用程式生命週期事件傳遞至 C/C++ 程式碼,例如應用程式建立、啟動、停止和刪除事件。在範例的 C/C++ 區段中,範例架構導入了執行階段子範例切換功能。Android 系統事件/訊息大致上會透過以下路徑傳遞至範例應用程式的 Vulkan 程式碼:

  • NativeSampleActivity Java 區段
  • NativeSampleActivity C/C++ 區段
  • android_native_glue 程式碼
  • android_main
  • 範例架構
  • 個別子範例程式碼

android_mainNativeSampleActivity 與應用程式程式碼之間的橋樑,可當做起點,方便您按照程式碼範例執行。如果您只想專注在 Vulkan 專用原始碼上,可以探索 Vulkan_Samples\samples 底下的程式碼,包括:

  • 「API」類別的範例。
  • 「Performance」(效能) 類別的範例。
  • 「Extensions」(擴充功能) 類別的範例。
  • 「Tooling」(工具) 範例。

所有著色器都集中在 Vulkan_Samples\shaders 中。

您可以開始瀏覽「API」類別的範例,瞭解 Vulkan 的基本使用方式和範例架構,然後繼續瀏覽「Performance」(效能) 和「Extenstions」(擴充功能) 類別的範例。如要查看著色器程式碼,請在 Android Studio 中開啟「Project」(專案) 檢視畫面。

Triangle 著色器。

圖 7. 透過 Studio 探索著色器。

其他資源

Vulkan API 已推出數個版本,功能漸趨成熟。Vulkan 標準委員會和 Vulkan 社群打造了豐富的 Vulkan 教材,可示範 API 的使用方式和最佳做法。下列清單包含 Vulkan 應用程式開發的一些資源:

  • Vulkan 規範: Khronos Group 負責維護 Vulkan 規範。如需完整規範、訓練、指南教學課程,請參閱 Vulkan 首頁

  • 驗證層: 驗證層是應用程式開發程序中不可或缺的一環。如要進一步瞭解 Android 的 Vulkan 驗證層,請參閱這份說明文件

  • Shaderc: NDK 中的 Shaderc 程式碼位於 Shaderc 存放區的下游。想瞭解如何使用及取得最新版本,請參閱著色器編譯器的說明。