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

Reply via email to