vkAcquireXlibDisplayEXT
To acquire permission to directly access a display in Vulkan from an X11 server, call:
VkResult vkAcquireXlibDisplayEXT(
VkPhysicalDevice physicalDevice,
Display* dpy,
VkDisplayKHR display);
physicalDevice
The physical device the display is on.dpy
A connection to the X11 server that currently ownsdisplay
.display
The display the caller wishes to control in Vulkan.
All permissions necessary to control the display are granted to the Vulkan
instance associated with physicalDevice
until the display is released
or the X11 connection specified by dpy
is terminated.
Permission to access the display may be temporarily revoked during periods
when the X11 server from which control was acquired itself loses access to
display
.
During such periods, operations which require access to the display must
fail with an appropriate error code.
If the X11 server associated with dpy
does not own display
, or
if permission to access it has already been acquired by another entity, the
call must return the error code VK_ERROR_INITIALIZATION_FAILED
.
One example of when an X11 server loses access to a display is when it loses ownership of its virtual terminal.
Valid Usage (Implicit)
VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameter
physicalDevice
must be a valid VkPhysicalDevice handle
VUID-vkAcquireXlibDisplayEXT-dpy-parameter
dpy
must be a valid pointer to a Display
value
VUID-vkAcquireXlibDisplayEXT-display-parameter
display
must be a valid VkDisplayKHR handle
VUID-vkAcquireXlibDisplayEXT-display-parent
display
must have been created, allocated, or retrieved from physicalDevice