1

我试图让 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 驱动程序(如果相关)。

4

2 回答 2

2

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

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

于 2016-04-08T00:18:44.003 回答
0

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

于 2016-07-10T07:33:23.397 回答