Vulkan pSurfaceFormatCount равен нулю с драйверами NVIDIA.

Я не знаю, было ли это обновление или пакет, который я установил, но все приложения Vulkan больше не работают. Однако приложения OpenGL работают.

Я использую Ubuntu 18.04 с Gnome 3. У меня есть GTX 950M, и я переключался между графическими драйверами на вкладке «Программное обеспечение и обновления», «Дополнительные драйверы». Я пробовал разные драйверы с открытым исходным кодом, например nvidia-driver-430/440 / 410. Ни один не работал.

В некоторых приложениях я получаю такую ​​ошибку:

X Error of failed request:  BadDrawable (invalid Pixmap or Window parameter)
  Major opcode of failed request:  149 ()
  Minor opcode of failed request:  4
  Resource id in failed request:  0x220000d
  Serial number of failed request:  179
  Current serial number in output stream:  184

В других просто ничего не отображается (возможно, из-за обработки ошибок).
Внеэкранный рендеринг Vulkan работает. Я знаю это, потому что одно из моих приложений использует его и отображает журналы.
Система окон (GLFW3) работает в приложениях OpenGL, тогда как в Vulkan окно открывается, но остается черным или вылетает из-за указанной выше ошибки.

Я помню, что недавно я установил некоторые пакеты для программы, которую хотел запустить, например sld2, qt5 и, возможно, другие, которых я не помню. С тех пор я их прочистил.

Честно говоря, я понятия не имею, что могло быть не так. Если у вас есть идеи, поделитесь, или если вам нужна дополнительная информация, я могу предоставить.

РЕДАКТИРОВАТЬ:
Я пробовал эти распространенные обходные пути, но они не сработали:
QT_X11_NO_MITSHM = 1
LIBOVERLAY_SCROLLBAR = 0

EDIT2:
Я пробовал использовать проприетарный драйвер 435, но он не работал.

РЕДАКТИРОВАТЬ3:
Благодаря @kvark и дальнейшей отладке я немного сузил его. Причина проблемы в том, что значение pSurfaceFormatCount равно 0 при запросе с помощью vkGetPhysicalDeviceSurfaceFormatsKHR . В настоящее время я использую драйвер 440, и мое приложение распознает графический процессор Nvidia. Нет сообщений от уровней проверки.

-1
задан 16 December 2019 в 15:29

1 ответ

У меня была эта проблема на ноутбуке с Nvidia. Проблема и обходной путь подробно описаны здесь - https://dev.getsol.us/T6335

В принципе, вы можете обойти это, заставив NVidia Vulkan ICD с переменной окружения, установленной из одного из сценариев запуска :

VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/10_nvidia.json

Ваш путь к NV ICD может быть другим (ссылка для Solus, а этот вопрос о Ubuntu).

3
ответ дан 9 February 2020 в 21:25

Другие вопросы по тегам:

Похожие вопросы: