Vulkan на X11: vkGetPhysicalDeviceSurfaceCapabilitiesKHR error

Я пытаюсь запустить Vulkan под X11.

Я (очевидно) успешно создал экземпляр, устройство и поверхность, и несколько вызовов, относящихся к поверхности, также успешно выполняются и даже возвращают разумные значения (например, vkGetPhysicalDeviceSurfaceFormatsKHR возвращает два формата). Тем не менее, когда я звоню vkGetPhysicalDeviceSurfaceCapabilitiesKHRЯ получаю следующее:

X Error of failed request:  BadDrawable (invalid Pixmap or Window parameter)
Major opcode of failed request:  14 (X_GetGeometry)
Resource id in failed request:  0x5800009
Serial number of failed request:  42
Current serial number in output stream:  42

Окно X11 0x5800009, как указано в ошибке. Я использую Vulkan SDK 1.0.5 и драйверы Nvidia 364.12 (если это актуально).

1

Решение

На предчувствие, что Вулкан что-то спрашивал о Window что еще не было создано, я положил XSync(<display>, false) позвоните до этого, и это, кажется, решило проблему.

Я не уверен, требуется ли это для правильной работы (я не эксперт X11), или это проблема с самим Vulkan. Если у кого-то есть лучшее объяснение, я бы с удовольствием его услышал.

2

Другие решения

У меня была такая же ошибка в Linux с XCB, и я решил ее (с помощью ответа MuertoExcobito), вызвав xcb_flush после создания окна.

0

По вопросам рекламы [email protected]