【发布时间】:2017-05-04 04:45:20
【问题描述】:
使用多显示器设置和 OpenGL/Direct3D 11,Windows 会选择主显示器连接到的设备。我试图用 Vulkan 来模仿这种行为。如何确定vkEnumeratePhysicalDevices 返回的哪个物理设备是主显示器连接的?
【问题讨论】:
使用多显示器设置和 OpenGL/Direct3D 11,Windows 会选择主显示器连接到的设备。我试图用 Vulkan 来模仿这种行为。如何确定vkEnumeratePhysicalDevices 返回的哪个物理设备是主显示器连接的?
【问题讨论】:
一般来说你不应该在意。
以特定于平台的方式在您想要的任何监视器上创建平台窗口。从平台窗口创建VkSurface。通过 vkGetPhysicalDeviceSurfaceSupportKHR 检查支持(分别选择 VkPhysicalDevice 和支持的队列系列)。并且满足于此 - 你现在可以在窗口上绘制(除非 Vulkan 另有说明)。
但是您可以滥用它,在主监视器上创建一个窗口并询问物理设备的任何队列系列是否支持它。如果是这样,则物理设备已连接或能够以其他方式显示在主监视器上。
【讨论】: