2016-04-07 2 views
1

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

Я (по-видимому) успешно создал экземпляр, устройство и поверхность, а также несколько вызовов, связанных с поверхностью, также успешно и даже возвращают разумные значения (например, 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 (если это актуально).

+0

Пожалуйста, отредактируйте в [mcve]. –

+3

@ColonelThirtyTwo: Er ... Vulkan и «минимальный» не совсем хорошо сочетаются. –

+0

Да, код, необходимый для создания этой ситуации, должен составлять 10 страниц. К сожалению, SDK также не поставляется с любыми образцами X11 (только XCB). Мне более любопытно, если это известная проблема, или есть какая-то общая ошибка, под которой происходит эта ошибка. – MuertoExcobito

ответ

2

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

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

0

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