У меня есть базовое приложение Vulkan, «Привет треугольник», полученное из этого урока . В режиме отладки я использую два слоя проверки:
VK_LAYER_KHRONOS_validation
и VK_LAYER_LUNARG_monitor
В Windows у меня нет проблем. Оба слоя загружаются, я вижу счетчик FPS в строке заголовка. Но у меня другое поведение в Linux (Ubuntu 18.04).
Только VK_LAYER_LUNARG_monitor
загрузка. В строке заголовка не отображается счетчик FPS.
VK_LAYER_KHRONOS_validation
не удается загрузить с ошибкой:
ОШИБКА: libVkLayer_khronos_validation.so: невозможно открыть файл общего объекта: такого файла нет иликаталог
Я выполнил установку Linux в соответствии с рекомендациями, приведенными в этом документе LunarG.
- Поместите весь LunarG SDK в произвольное место на моей файловой системе Linux.
- Источник
setup-env.sh
в .profile
файл - Внутри сценария setup-env.sh я также добавил
VK_LOADER_DEBUG=all
для просмотра подробной информации из Vulkan Loader. - Проверено, чтовсе переменные, установленные сценарием, указывают на правильность каталогов в SDK. Они делают.
setup-env.sh:
VULKAN_SDK="$(dirname "$(readlink -f "${BASH_SOURCE:-$_}" )" )/x86_64"
export VULKAN_SDK
PATH="$VULKAN_SDK/bin:$PATH"
export PATH
LD_LIBRARY_PATH="$VULKAN_SDK/lib:${LD_LIBRARY_PATH:-}"
export LD_LIBRARY_PATH
VK_LAYER_PATH="$VULKAN_SDK/etc/vulkan/explicit_layer.d"
export VK_LAYER_PATH
export VK_LOADER_DEBUG=all
Вот фрагмент, который я получаю из вывода отладки, который показывает ошибку загрузки слоев:
ОТЛАДКА: Загрузка библиотеки слоев /home/platform-thirdparty/vulkan-sdk/1.1.121.1/x86_64/lib/libVkLayer_monitor.so INFO: Вставлен слой устройства VK_LAYER_LUNARG_monitor (/ home / platform-thirdparty / vulkan1.1.121.1/x86_64/lib/libVkLayer_monitor.so) Сообщение: libVkLayer_khronos_validation.so: невозможно открыть файл общего объекта: нет такого файла или каталога. ОШИБКА: libVkLayer_khronos_validation.so: невозможно открыть файл общего объекта: такого файла или каталога нет
Даже при том, что
Вставленный слой устройства VK_LAYER_LUNARG_monitor
Монитор не работает. Если я заменю VK_LAYER_KHRONOS_validation
на VK_LAYER_LUNARG_standard_validation
, я получаю ту же ошибку сбоя загрузки. Отладчик также показывает, что загрузчик нашел все файлы манифеста для всех слоев в SDK. Я понятия не имею, что еще может быть проблемой.
Настройка моей системы:
Ubuntu 18.04 64bit, Nvidia RTX 3000 Nvidia Драйверы: 430.0 VulkanSDK (LunarG): 1.1.121.1