Я не знаю, было ли это обновление или пакет, который я установил, но все приложения 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. Нет сообщений от уровней проверки.
У меня была эта проблема на ноутбуке с Nvidia. Проблема и обходной путь подробно описаны здесь - https://dev.getsol.us/T6335
В принципе, вы можете обойти это, заставив NVidia Vulkan ICD с переменной окружения, установленной из одного из сценариев запуска :
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/10_nvidia.json
Ваш путь к NV ICD может быть другим (ссылка для Solus, а этот вопрос о Ubuntu).