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_properties2andVK_KHR_surfaceandVK_KHR_get_surface_capabilities2andVK_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
FieldsModifier and TypeFieldDescriptionstatic final intExtendsVkResult.static final StringThe extension name.static final intThe extension specification version.static final intVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorstatic final intVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorstatic final intVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorstatic final intVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorstatic final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType. -
Method Summary
Modifier and TypeMethodDescriptionstatic intnvkGetDeviceGroupSurfacePresentModes2EXT(org.lwjgl.vulkan.VkDevice device, long pSurfaceInfo, long pModes) Unsafe version of:GetDeviceGroupSurfacePresentModes2EXTstatic intnvkGetPhysicalDeviceSurfacePresentModes2EXT(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, long pSurfaceInfo, long pPresentModeCount, long pPresentModes) Unsafe version of:GetPhysicalDeviceSurfacePresentModes2EXTstatic intvkAcquireFullScreenExclusiveModeEXT(org.lwjgl.vulkan.VkDevice device, long swapchain) Acquire full-screen exclusive mode for a swapchain.static intvkGetDeviceGroupSurfacePresentModes2EXT(org.lwjgl.vulkan.VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pModes) Array version of:GetDeviceGroupSurfacePresentModes2EXTstatic intvkGetDeviceGroupSurfacePresentModes2EXT(org.lwjgl.vulkan.VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, IntBuffer pModes) Query device group present capabilities for a surface.static intvkGetPhysicalDeviceSurfacePresentModes2EXT(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pPresentModeCount, int[] pPresentModes) Array version of:GetPhysicalDeviceSurfacePresentModes2EXTstatic intvkGetPhysicalDeviceSurfacePresentModes2EXT(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, IntBuffer pPresentModeCount, IntBuffer pPresentModes) Query supported presentation modes.static intvkReleaseFullScreenExclusiveModeEXT(org.lwjgl.vulkan.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_EXTindicates the implementation should determine the appropriate full-screen method by whatever means it deems appropriate.FULL_SCREEN_EXCLUSIVE_ALLOWED_EXTindicates 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_EXTindicates the implementation should avoid using full-screen mechanisms which rely on disruptive transitions.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXTindicates the application will manage full-screen exclusive mode by using theAcquireFullScreenExclusiveModeEXTandReleaseFullScreenExclusiveModeEXTcommands.
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_EXTindicates the implementation should determine the appropriate full-screen method by whatever means it deems appropriate.FULL_SCREEN_EXCLUSIVE_ALLOWED_EXTindicates 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_EXTindicates the implementation should avoid using full-screen mechanisms which rely on disruptive transitions.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXTindicates the application will manage full-screen exclusive mode by using theAcquireFullScreenExclusiveModeEXTandReleaseFullScreenExclusiveModeEXTcommands.
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_EXTindicates the implementation should determine the appropriate full-screen method by whatever means it deems appropriate.FULL_SCREEN_EXCLUSIVE_ALLOWED_EXTindicates 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_EXTindicates the implementation should avoid using full-screen mechanisms which rely on disruptive transitions.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXTindicates the application will manage full-screen exclusive mode by using theAcquireFullScreenExclusiveModeEXTandReleaseFullScreenExclusiveModeEXTcommands.
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_EXTindicates the implementation should determine the appropriate full-screen method by whatever means it deems appropriate.FULL_SCREEN_EXCLUSIVE_ALLOWED_EXTindicates 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_EXTindicates the implementation should avoid using full-screen mechanisms which rely on disruptive transitions.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXTindicates the application will manage full-screen exclusive mode by using theAcquireFullScreenExclusiveModeEXTandReleaseFullScreenExclusiveModeEXTcommands.
See Also
- See Also:
-
-
Method Details
-
nvkGetPhysicalDeviceSurfacePresentModes2EXT
public static int nvkGetPhysicalDeviceSurfacePresentModes2EXT(org.lwjgl.vulkan.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(org.lwjgl.vulkan.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
vkGetPhysicalDeviceSurfacePresentModes2EXTbehaves similarly toGetPhysicalDeviceSurfacePresentModesKHR, with the ability to specify extended inputs via chained input structures.Valid Usage
- If the
VK_GOOGLE_surfaceless_queryextension is not enabled,pSurfaceInfo→surfacemust be a validVkSurfaceKHRhandle - If
pSurfaceInfo→surfaceis notNULL_HANDLE, it must be supported byphysicalDevice, as reported byGetPhysicalDeviceSurfaceSupportKHRor an equivalent platform-specific mechanism
Valid Usage (Implicit)
physicalDevicemust be a validVkPhysicalDevicehandlepSurfaceInfomust be a valid pointer to a validVkPhysicalDeviceSurfaceInfo2KHRstructurepPresentModeCountmust be a valid pointer to auint32_tvalue- If the value referenced by
pPresentModeCountis not 0, andpPresentModesis notNULL,pPresentModesmust be a valid pointer to an array ofpPresentModeCountVkPresentModeKHRvalues
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 aVkPhysicalDeviceSurfaceInfo2KHRstructure 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- eitherNULLor a pointer to an array ofVkPresentModeKHRvalues, indicating the supported presentation modes.
- If the
-
vkAcquireFullScreenExclusiveModeEXT
public static int vkAcquireFullScreenExclusiveModeEXT(org.lwjgl.vulkan.VkDevice device, long swapchain) 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
swapchainmust not be in the retired stateswapchainmust be a swapchain created with aVkSurfaceFullScreenExclusiveInfoEXTstructure, withfullScreenExclusiveset toFULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXTswapchainmust not currently have exclusive full-screen access
A return value of
SUCCESSindicates that theswapchainsuccessfully 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_EXTindicating 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_FAILEDis 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_EXThas been returned by a swapchain command.Valid Usage (Implicit)
devicemust be a validVkDevicehandleswapchainmust be a validVkSwapchainKHRhandleswapchainmust 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
public static int vkReleaseFullScreenExclusiveModeEXT(org.lwjgl.vulkan.VkDevice device, long swapchain) 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
swapchainafter 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
swapchainmust not be in the retired stateswapchainmust be a swapchain created with aVkSurfaceFullScreenExclusiveInfoEXTstructure, withfullScreenExclusiveset 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(org.lwjgl.vulkan.VkDevice device, long pSurfaceInfo, long pModes) Unsafe version of:GetDeviceGroupSurfacePresentModes2EXT -
vkGetDeviceGroupSurfacePresentModes2EXT
public static int vkGetDeviceGroupSurfacePresentModes2EXT(org.lwjgl.vulkan.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
vkGetDeviceGroupSurfacePresentModes2EXTbehaves similarly toGetDeviceGroupSurfacePresentModesKHR, with the ability to specify extended inputs via chained input structures.Valid Usage
pSurfaceInfo→surfacemust be supported by all physical devices associated withdevice, as reported byGetPhysicalDeviceSurfaceSupportKHRor an equivalent platform-specific mechanism
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepSurfaceInfomust be a valid pointer to a validVkPhysicalDeviceSurfaceInfo2KHRstructurepModesmust be a valid pointer to aVkDeviceGroupPresentModeFlagsKHRvalue
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device.pSurfaceInfo- a pointer to aVkPhysicalDeviceSurfaceInfo2KHRstructure describing the surface and other fixed parameters that would be consumed byCreateSwapchainKHR.pModes- a pointer to aVkDeviceGroupPresentModeFlagsKHRin which the supported device group present modes for the surface are returned.
-
vkGetPhysicalDeviceSurfacePresentModes2EXT
public static int vkGetPhysicalDeviceSurfacePresentModes2EXT(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pPresentModeCount, @Nullable int[] pPresentModes) Array version of:GetPhysicalDeviceSurfacePresentModes2EXT -
vkGetDeviceGroupSurfacePresentModes2EXT
public static int vkGetDeviceGroupSurfacePresentModes2EXT(org.lwjgl.vulkan.VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pModes) Array version of:GetDeviceGroupSurfacePresentModes2EXT
-