Уровни проверки

Уровни валидации (Validation) позволяют разработчикам проверять корректность использования API Vulkan в своих приложениях. Уровни валидации можно включить как в отладочных, так и в релизных сборках, в том числе в экспортированных проектах.

Примечание

Включение уровней проверки влияет на производительность, поэтому включайте их только тогда, когда вам действительно нужны выходные данные для отладки приложения.

Windows

Установите Vulkan SDK https://vulkan.lunarg.com/sdk/home, который содержит уровни проверки в составе стандартной установки. Не нужно включать дополнительные функции в установщике; достаточно установить базовый Vulkan SDK. Перезагрузка после установки SDK не требуется, но может потребоваться закрыть и снова открыть текущий терминал.

После установки Vulkan SDK запустите Godot с аргументом командной строки --gpu-validation. Вы также можете указать --gpu-abort, чтобы Godot завершил работу сразу после возникновения ошибки валидации. Это поможет предотвратить зависание системы при возникновении ошибки валидации.

macOS

Предупреждение

Официальные сборки Godot для macOS не поддерживают слои валидации, поскольку они статически связаны с Vulkan SDK. Вместо этого необходимо использовать динамическую линковку.

На практике это означает, что для использования слоёв проверки в macOS требуется использовать сборку Godot, скомпилированную с опцией use_volk=yes SCons. Компиляция для macOS. При тестировании слоёв проверки в экспортированном проекте необходимо перекомпилировать шаблон экспорта и указать его как пользовательский шаблон экспорта в настройках экспорта вашего проекта в macOS.

Установите Vulkan SDK https://vulkan.lunarg.com/sdk/home, который содержит уровни проверки в составе стандартной установки. Не нужно включать дополнительные функции в установщике; достаточно установить базовый Vulkan SDK. Перезагрузка после установки SDK не требуется, но может потребоваться закрыть и снова открыть текущий терминал.

После установки Vulkan SDK запустите исполняемый файл Godot, скомпилированный с опцией SCons use_volk=yes. Укажите --gpu-validation аргумент командной строки. Вы также можете указать --gpu-abort, чтобы Godot завершил работу сразу после возникновения ошибки валидации. Это поможет предотвратить зависание системы при возникновении ошибки валидации.

Linux, *BSD

Установите слои проверки Vulkan из репозиториев вашего дистрибутива:

vulkan-validation-layers

После установки слоев проверки перезагрузка не требуется, но может потребоваться закрыть и снова открыть текущий терминал.

После установки пакета запустите Godot с аргументом командной строки --gpu-validation. Вы также можете указать --gpu-abort, чтобы Godot завершил работу сразу после возникновения ошибки валидации. Это поможет предотвратить зависание системы при возникновении ошибки валидации.

iOS

Слои проверки в настоящее время не поддерживаются в iOS.

Web

Уровни проверки не поддерживаются на веб-платформе, поскольку там нет поддержки Vulkan.

Android

После включения уровней проверки на Android разработчик может увидеть ошибки и предупреждающие сообщения в выводе adb logcat.

Включение уровней проверки

Создание проверочных слоев из официальных источников

Чтобы собрать библиотеки Android, следуйте инструкциям в репозитории Khronos'. После успешной сборки библиотеки будут размещены в 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 не существует, создайте его.

Скомпилируйте и запустите приложение (app) для Android

Связанные слои валидации автоматически загружаются и включаются в отладочных сборках Android. Вы можете использовать функцию Godot Развёртывание в один клик для быстрого тестирования проекта с включёнными слоями валидации (validation).