我想让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驱动程序(如果这是相关的)。
答案 0 :(得分:2)
在Vulkan正在查询尚未创建的Window
的预感时,我在此之前拨打了XSync(<display>, false)
电话,这似乎解决了这个问题。
我不确定这是否是正确操作所必需的(我不是X11专家),或者这是否是Vulkan本身的问题。如果有人有更好的解释,我很乐意听到。
答案 1 :(得分:0)
我在使用XCB的Linux上遇到了同样的错误,我在窗口创建后调用 xcb_flush 解决了它(在MuertoExcobito的答案的帮助下)。