// Copyright 2018-2021 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

==== Acquiring and Releasing Displays

On some platforms, access to displays is limited to a single process or
native driver instance.
On such platforms, some or all of the displays may not be available to
Vulkan if they are already in use by a native windowing system or other
application.

ifdef::VK_EXT_acquire_xlib_display[]
include::{chapters}/VK_EXT_acquire_xlib_display/acquire_xlib_display.txt[]
endif::VK_EXT_acquire_xlib_display[]

ifdef::VK_NV_acquire_winrt_display[]
include::{chapters}/VK_NV_acquire_winrt_display/acquire_winrt_display.txt[]
endif::VK_NV_acquire_winrt_display[]

ifdef::VK_EXT_acquire_drm_display[]
include::{chapters}/VK_EXT_acquire_drm_display/acquire_drm_display.txt[]
endif::VK_EXT_acquire_drm_display[]

[open,refpage='vkReleaseDisplayEXT',desc='Release access to an acquired VkDisplayKHR',type='protos']
--
To release a previously acquired display, call:

include::{generated}/api/protos/vkReleaseDisplayEXT.txt[]

  * pname:physicalDevice The physical device the display is on.
  * pname:display The display to release control of.

include::{generated}/validity/protos/vkReleaseDisplayEXT.txt[]
--
