Class EXTFullScreenExclusive
Applications can choose between explicitly disallowing or allowing this behavior, letting the implementation decide, or managing this mode of operation directly using the new AcquireFullScreenExclusiveModeEXT
and ReleaseFullScreenExclusiveModeEXT
commands.
VK_EXT_full_screen_exclusive
- Name String
VK_EXT_full_screen_exclusive
- Extension Type
- Device extension
- Registered Extension Number
- 256
- Revision
- 4
- Extension and Version Dependencies
VK_KHR_get_physical_device_properties2
andVK_KHR_surface
andVK_KHR_get_surface_capabilities2
andVK_KHR_swapchain
- Contact
- James Jones cubanismo
Other Extension Metadata
- Last Modified Date
- 2019-03-12
- IP Status
- No known IP claims.
- Interactions and External Dependencies
- Interacts with Vulkan 1.1
- Interacts with
VK_KHR_device_group
- Interacts with
VK_KHR_win32_surface
- Contributors
- Hans-Kristian Arntzen, ARM
- Slawomir Grajewski, Intel
- Tobias Hector, AMD
- James Jones, NVIDIA
- Daniel Rakos, AMD
- Jeff Juliano, NVIDIA
- Joshua Schnarr, NVIDIA
- Aaron Hagan, AMD
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
ExtendsVkResult
.static final String
The extension name.static final int
The extension specification version.static final int
VkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorstatic final int
VkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorstatic final int
VkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorstatic final int
VkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorstatic final int
ExtendsVkStructureType
.static final int
ExtendsVkStructureType
.static final int
ExtendsVkStructureType
. -
Method Summary
Modifier and TypeMethodDescriptionstatic int
nvkGetDeviceGroupSurfacePresentModes2EXT
(VkDevice device, long pSurfaceInfo, long pModes) Unsafe version of:GetDeviceGroupSurfacePresentModes2EXT
static int
nvkGetPhysicalDeviceSurfacePresentModes2EXT
(VkPhysicalDevice physicalDevice, long pSurfaceInfo, long pPresentModeCount, long pPresentModes) Unsafe version of:GetPhysicalDeviceSurfacePresentModes2EXT
static int
vkAcquireFullScreenExclusiveModeEXT
(VkDevice device, long swapchain) Acquire full-screen exclusive mode for a swapchain.static int
vkGetDeviceGroupSurfacePresentModes2EXT
(VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pModes) Array version of:GetDeviceGroupSurfacePresentModes2EXT
static int
vkGetDeviceGroupSurfacePresentModes2EXT
(VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, IntBuffer pModes) Query device group present capabilities for a surface.static int
vkGetPhysicalDeviceSurfacePresentModes2EXT
(VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pPresentModeCount, int[] pPresentModes) Array version of:GetPhysicalDeviceSurfacePresentModes2EXT
static int
vkGetPhysicalDeviceSurfacePresentModes2EXT
(VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, IntBuffer pPresentModeCount, IntBuffer pPresentModes) Query supported presentation modes.static int
vkReleaseFullScreenExclusiveModeEXT
(VkDevice device, long swapchain) Release full-screen exclusive mode from a swapchain.
-
Field Details
-
VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION
public static final int VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT
public static final int VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXTExtendsVkStructureType
.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
public static final int VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXTExtendsVkStructureType
.Enum values:
- See Also:
-
VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT
public static final int VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXTExtendsVkResult
.- See Also:
-
VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT
public static final int VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXTExtendsVkStructureType
.- See Also:
-
VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT
public static final int VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXTVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorDescription
FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT
indicates the implementation should determine the appropriate full-screen method by whatever means it deems appropriate.FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT
indicates the implementation may use full-screen exclusive mechanisms when available. Such mechanisms may result in better performance and/or the availability of different presentation capabilities, but may require a more disruptive transition during swapchain initialization, first presentation and/or destruction.FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT
indicates the implementation should avoid using full-screen mechanisms which rely on disruptive transitions.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
indicates the application will manage full-screen exclusive mode by using theAcquireFullScreenExclusiveModeEXT
andReleaseFullScreenExclusiveModeEXT
commands.
See Also
- See Also:
-
VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT
public static final int VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXTVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorDescription
FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT
indicates the implementation should determine the appropriate full-screen method by whatever means it deems appropriate.FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT
indicates the implementation may use full-screen exclusive mechanisms when available. Such mechanisms may result in better performance and/or the availability of different presentation capabilities, but may require a more disruptive transition during swapchain initialization, first presentation and/or destruction.FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT
indicates the implementation should avoid using full-screen mechanisms which rely on disruptive transitions.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
indicates the application will manage full-screen exclusive mode by using theAcquireFullScreenExclusiveModeEXT
andReleaseFullScreenExclusiveModeEXT
commands.
See Also
- See Also:
-
VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT
public static final int VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXTVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorDescription
FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT
indicates the implementation should determine the appropriate full-screen method by whatever means it deems appropriate.FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT
indicates the implementation may use full-screen exclusive mechanisms when available. Such mechanisms may result in better performance and/or the availability of different presentation capabilities, but may require a more disruptive transition during swapchain initialization, first presentation and/or destruction.FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT
indicates the implementation should avoid using full-screen mechanisms which rely on disruptive transitions.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
indicates the application will manage full-screen exclusive mode by using theAcquireFullScreenExclusiveModeEXT
andReleaseFullScreenExclusiveModeEXT
commands.
See Also
- See Also:
-
VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
public static final int VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXTVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorDescription
FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT
indicates the implementation should determine the appropriate full-screen method by whatever means it deems appropriate.FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT
indicates the implementation may use full-screen exclusive mechanisms when available. Such mechanisms may result in better performance and/or the availability of different presentation capabilities, but may require a more disruptive transition during swapchain initialization, first presentation and/or destruction.FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT
indicates the implementation should avoid using full-screen mechanisms which rely on disruptive transitions.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
indicates the application will manage full-screen exclusive mode by using theAcquireFullScreenExclusiveModeEXT
andReleaseFullScreenExclusiveModeEXT
commands.
See Also
- See Also:
-
-
Method Details
-
nvkGetPhysicalDeviceSurfacePresentModes2EXT
public static int nvkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice, long pSurfaceInfo, long pPresentModeCount, long pPresentModes) Unsafe version of:GetPhysicalDeviceSurfacePresentModes2EXT
- Parameters:
pPresentModeCount
- a pointer to an integer related to the number of presentation modes available or queried, as described below.
-
vkGetPhysicalDeviceSurfacePresentModes2EXT
public static int vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, IntBuffer pPresentModeCount, @Nullable IntBuffer pPresentModes) Query supported presentation modes.C Specification
Alternatively, to query the supported presentation modes for a surface combined with select other fixed swapchain creation parameters, call:
VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
Description
vkGetPhysicalDeviceSurfacePresentModes2EXT
behaves similarly toGetPhysicalDeviceSurfacePresentModesKHR
, with the ability to specify extended inputs via chained input structures.Valid Usage
- If the
VK_GOOGLE_surfaceless_query
extension is not enabled,pSurfaceInfo→surface
must be a validVkSurfaceKHR
handle - If
pSurfaceInfo→surface
is notNULL_HANDLE
, it must be supported byphysicalDevice
, as reported byGetPhysicalDeviceSurfaceSupportKHR
or an equivalent platform-specific mechanism
Valid Usage (Implicit)
physicalDevice
must be a validVkPhysicalDevice
handlepSurfaceInfo
must be a valid pointer to a validVkPhysicalDeviceSurfaceInfo2KHR
structurepPresentModeCount
must be a valid pointer to auint32_t
value- If the value referenced by
pPresentModeCount
is not 0, andpPresentModes
is notNULL
,pPresentModes
must be a valid pointer to an array ofpPresentModeCount
VkPresentModeKHR
values
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
physicalDevice
- the physical device that will be associated with the swapchain to be created, as described forCreateSwapchainKHR
.pSurfaceInfo
- a pointer to aVkPhysicalDeviceSurfaceInfo2KHR
structure describing the surface and other fixed parameters that would be consumed byCreateSwapchainKHR
.pPresentModeCount
- a pointer to an integer related to the number of presentation modes available or queried, as described below.pPresentModes
- eitherNULL
or a pointer to an array ofVkPresentModeKHR
values, indicating the supported presentation modes.
- If the
-
vkAcquireFullScreenExclusiveModeEXT
Acquire full-screen exclusive mode for a swapchain.C Specification
To acquire exclusive full-screen access for a swapchain, call:
VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain);
Valid Usage
swapchain
must not be in the retired stateswapchain
must be a swapchain created with aVkSurfaceFullScreenExclusiveInfoEXT
structure, withfullScreenExclusive
set toFULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
swapchain
must not currently have exclusive full-screen access
A return value of
SUCCESS
indicates that theswapchain
successfully acquired exclusive full-screen access. The swapchain will retain this exclusivity until either the application releases exclusive full-screen access withReleaseFullScreenExclusiveModeEXT
, destroys the swapchain, or if any of the swapchain commands returnERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT
indicating that the mode was lost because of platform-specific changes.If the swapchain was unable to acquire exclusive full-screen access to the display then
ERROR_INITIALIZATION_FAILED
is returned. An application can attempt to acquire exclusive full-screen access again for the same swapchain even if this command fails, or ifERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT
has been returned by a swapchain command.Valid Usage (Implicit)
device
must be a validVkDevice
handleswapchain
must be a validVkSwapchainKHR
handleswapchain
must have been created, allocated, or retrieved fromdevice
Return Codes
- On success, this command returns
- On failure, this command returns
- Parameters:
device
- the device associated withswapchain
.swapchain
- the swapchain to acquire exclusive full-screen access for.
-
vkReleaseFullScreenExclusiveModeEXT
Release full-screen exclusive mode from a swapchain.C Specification
To release exclusive full-screen access from a swapchain, call:
VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain);
Description
Note
Applications will not be able to present to
swapchain
after this call until exclusive full-screen access is reacquired. This is usually useful to handle when an application is minimised or otherwise intends to stop presenting for a time.Valid Usage
swapchain
must not be in the retired stateswapchain
must be a swapchain created with aVkSurfaceFullScreenExclusiveInfoEXT
structure, withfullScreenExclusive
set toFULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
- Parameters:
device
- the device associated withswapchain
.swapchain
- the swapchain to release exclusive full-screen access from.
-
nvkGetDeviceGroupSurfacePresentModes2EXT
public static int nvkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device, long pSurfaceInfo, long pModes) Unsafe version of:GetDeviceGroupSurfacePresentModes2EXT
-
vkGetDeviceGroupSurfacePresentModes2EXT
public static int vkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, IntBuffer pModes) Query device group present capabilities for a surface.C Specification
Alternatively, to query the supported device group presentation modes for a surface combined with select other fixed swapchain creation parameters, call:
VkResult vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes);
Description
vkGetDeviceGroupSurfacePresentModes2EXT
behaves similarly toGetDeviceGroupSurfacePresentModesKHR
, with the ability to specify extended inputs via chained input structures.Valid Usage
pSurfaceInfo→surface
must be supported by all physical devices associated withdevice
, as reported byGetPhysicalDeviceSurfaceSupportKHR
or an equivalent platform-specific mechanism
Valid Usage (Implicit)
device
must be a validVkDevice
handlepSurfaceInfo
must be a valid pointer to a validVkPhysicalDeviceSurfaceInfo2KHR
structurepModes
must be a valid pointer to aVkDeviceGroupPresentModeFlagsKHR
value
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device
- the logical device.pSurfaceInfo
- a pointer to aVkPhysicalDeviceSurfaceInfo2KHR
structure describing the surface and other fixed parameters that would be consumed byCreateSwapchainKHR
.pModes
- a pointer to aVkDeviceGroupPresentModeFlagsKHR
in which the supported device group present modes for the surface are returned.
-
vkGetPhysicalDeviceSurfacePresentModes2EXT
public static int vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pPresentModeCount, @Nullable int[] pPresentModes) Array version of:GetPhysicalDeviceSurfacePresentModes2EXT
-
vkGetDeviceGroupSurfacePresentModes2EXT
public static int vkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pModes) Array version of:GetDeviceGroupSurfacePresentModes2EXT
-