VK_EXT_direct_mode_display does not scale to multiple outputs (Windows)

I could successfully run the sample GitHub - nvpro-samples/gl_render_vk_ddisplay: OpenGL sample that renders into a Vulkan direct display with one display. However, I am unable to create more than one Vulkan swapchain using Direct Display.

I have three display outputs. All of them are removed from Windows as described. Then I trivially modified the VkDirectDisplay class to create three display surfaces and three Vulkan swapchains instead of one. When the second swapchain gets created, I could observe one of the following behaviour:

  • vkCreateSwapchainKHR is successful, but the previous output connection is immediately lost.
  • The driver crashes during vkCreateSwapchainKHR.
  • vkCreateSwapchainKHR returns with VK_ERROR_INITIALIZATION_FAILED.

Is there a way to create multiple swapchains using Direct Display - was anybody able to do this?

1 Like

I also reproduce this behavior on both windows 10 and 11.
Is this intended or a driver / os bug ? Would be great to be able to grab multiple outputs for custom XR displays.