X11上的Vulkan:vkGetPhysicalDeviceSurfaceCapabilitiesKHR错误

时间:2016-04-07 19:59:04

标签: c++ x11 vulkan

我想让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驱动程序(如果这是相关的)。

2 个答案:

答案 0 :(得分:2)

在Vulkan正在查询尚未创建的Window的预感时,我在此之前拨打了XSync(<display>, false)电话,这似乎解决了这个问题。

我不确定这是否是正确操作所必需的(我不是X11专家),或者这是否是Vulkan本身的问题。如果有人有更好的解释,我很乐意听到。

答案 1 :(得分:0)

我在使用XCB的Linux上遇到了同样的错误,我在窗口创建后调用 xcb_flush 解决了它(在MuertoExcobito的答案的帮助下)。