#c #linux #graphics #driver #vulkan
Вопрос:
Кажется, у меня установлено два драйвера.
driverID = DRIVER_ID_MESA_RADV
driverID = DRIVER_ID_MESA_LLVMPIPE
В состоянии по умолчанию, в котором находится моя машина при загрузке, моя программа переходит в следующую операцию:
physical_device.getQueueFamilyProperties();
(Я использую заголовок hpp)
Однако, если перед запуском моей программы я выполняю свою export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json
программу без проблем.
Похоже, что реализация lavapipe приводит к сбою программы, тем более что vulkaninfo показывает это предупреждение:
ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_intel.so: wrong ELF class: ELFCLASS32
ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_lvp.so: wrong ELF class: ELFCLASS32
ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_radeon.so: wrong ELF class: ELFCLASS32
WARNING: lavapipe is not a conformant vulkan implementation, testing use only.
WARNING: lavapipe is not a conformant vulkan implementation, testing use only.
Однако vkcube работает нормально во всех случаях. Есть ли способ выбрать драйвер/загрузчик в самой программе? т. е. не нужно менять параметр env?
Комментарии:
1. Лавапайп, по-видимому, не работает. Почему бы просто не использовать
VkPhysicalDevice
то, что вы хотите использовать. Это программный способ сделать это…2. Технически я это делаю. Однако я делаю это так, чтобы запрашивать у устройств возможности (например, сколько очередей он поддерживает)… Я назначаю оценку и выбираю ту, у которой лучший результат. Проблема в том, что lavapipe выходит из строя, когда я пытаюсь вызвать любое устройство, запрашивающее возможности.
3. Вы также можете просто установить переменную env программно, как и раньше
vkCreateInstance
.4. Хотя, возможно, вы захотите просто исправить свою установку. Почему у вас 32-разрядные драйверы на 64-разрядной ОС.
5. @krOoze Я не уверен, что это пограничная нетронутая установка Ubuntu hirsute. Я установил только несколько программ, таких как vs code. Не устанавливал новые драйверы или что-то в этом роде.