驗證層
驗證層可讓開發者檢查應用程式是否正確使用 Vulkan API。驗證層可於除錯與發行版本,以及匯出的專案中啟用。
備註
啟用驗證層會影響效能,僅於需要偵錯時再開啟即可。
Windows
安裝 Vulkan SDK https://vulkan.lunarg.com/sdk/home,其中已預設包含驗證層。安裝時不需啟用任何可選功能,只需安裝核心 Vulkan SDK 即可。安裝完成後無需重新啟動,但可能需關閉並重新開啟目前的終端機。
安裝 Vulkan SDK 後,使用 --gpu-validation 命令列參數 執行 Godot。你也可以加上 --gpu-abort,讓 Godot 在發生驗證錯誤時立即結束,避免系統當機。
macOS
警告
Godot 官方 macOS 版本**不**支援驗證層,因為這些是與 Vulkan SDK 靜態連結,必須改用動態連結。
實際上,在 macOS 上使用驗證層時,必須 使用以 use_volk=yes SCons 選項編譯的 Godot 版本。詳見 在 macOS 上編譯 。若要在匯出專案上測試驗證層,需重新編譯匯出樣板,並於 macOS 匯出設定中指定自訂樣板。
安裝 Vulkan SDK https://vulkan.lunarg.com/sdk/home,其中已預設包含驗證層。安裝時不需啟用任何可選功能,只需安裝核心 Vulkan SDK 即可。安裝完成後無需重新啟動,但可能需關閉並重新開啟目前的終端機。
安裝 Vulkan SDK 後,請執行以 use_volk=yes SCons 選項編譯的 Godot 執行檔,指定 --gpu-validation 命令列參數。你也可以加上 --gpu-abort,讓 Godot 在驗證錯誤發生時立即結束,避免系統當機。
Linux, *BSD
請從你的發行版套件庫安裝 Vulkan 驗證層:
vulkan-validation-layers
pacman -S vulkan-validation-layers
apt install vulkan-validationlayers
dnf install vulkan-validation-layers
pkg install graphics/vulkan-validation-layers
emerge -an media-libs/vulkan-layers
urpmi vulkan-validation-layers
pkg_add graphics/vulkan-validation-layers
zypper install vulkan-validationlayers
eopkg install -c vulkan-validation-layers
安裝驗證層後無需重新啟動,但可能需關閉並重新開啟目前的終端機。
安裝套件後,使用 --gpu-validation 命令列參數 執行 Godot。你也可以加上 --gpu-abort,讓 Godot 在驗證錯誤發生時立即結束,避免系統當機。
Android
在 Android 啟用驗證層後,開發者可於 adb logcat 輸出中看到錯誤與警告訊息。
iOS
目前 iOS 尚未 支援驗證層。
Web
Web 平台**不**支援驗證層,因為該平台不支援 Vulkan。
啟用驗證層
從官方原始碼建構驗證層
要編譯 Android 函式庫,請依照「Khronos」儲存庫 <https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/BUILD.md#building-on-android> 說明操作。編譯成功後,函式庫會位於 Vulkan-ValidationLayers/build-android/libs。
複製函式庫
將函式庫從 Vulkan-ValidationLayers/build-android/libs 複製到 godot/platform/android/java/app/libs/debug/vulkan_validation_layers。
你的 Godot 原始碼目錄樹應該如下所示:
godot
|-- platform
|-- android
|-- java
|-- app
|-- libs
|-- debug
|-- vulkan_validation_layers
|-- arm64-v8a
|-- armeabi-v7a
|-- x86
|-- x86_64
若 libs/debug/vulkan_validation_layers 子目錄不存在,請建立該目錄。
編譯並執行 Android 應用程式
已連結的驗證層會在 Android 除錯版本中自動載入與啟用。你可以利用 Godot 的 單鍵部署 功能,快速於驗證層啟用情境下測試你的專案。