Here's an implementation of a suite of extensions necessary to directly drive displays from the mesa Vulkan implementation:
VK_KHR_display Provides basic enumeration, control and display to directly connected devices. VK_EXT_direct_mode_display VK_EXT_acquire_xlib_display These allow the application to borrow an output from X and use it with Vulkan. The Mesa/DRM implementation is slightly different from the existing nVidia code as it requires that the application use RandR to discover the desired output and convert that to a Vulkan Display using vkGetRandROutputDisplayEXT. It cannot use the display enumeration API provided in VK_KHR_display because DRM doesn't allow normal applications to access any of the display resources from the kernel. An application wanting to support both sets of devices will need to use both enumeration methods. VK_EXT_display_surface_counter This lets you tell if the vblank counter from VK_EXT_display_control is supported. VK_EXT_display_control This provides vblank fences for direct displays along with DPMS control and hotplug events. The implementation provided here does not wire up the hotplug events. The previous series included a new extension for passing device file descriptors directly to the driver; that may still be a nice thing to have, but isn't required to support HMD displays in a fairly straightforward fashion. -keith _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev