VK_EXT_global_priority
Other Extension Metadata
Last Modified Date
2017-10-06
IP Status
No known IP claims.
Contributors
- Andres Rodriguez, Valve
- Pierre-Loup Griffais, Valve
- Dan Ginsburg, Valve
- Mitch Singer, AMD
Description
In Vulkan, users can specify device-scope queue priorities.
In some cases it may be useful to extend this concept to a system-wide
scope.
This extension provides a mechanism for callers to set their system-wide
priority.
The default queue priority is VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT
.
The driver implementation will attempt to skew hardware resource allocation in favor of the higher-priority task. Therefore, higher-priority work may retain similar latency and throughput characteristics even if the system is congested with lower priority work.
The global priority level of a queue shall take precedence over the
per-process queue priority
(VkDeviceQueueCreateInfo
::pQueuePriorities
).
Abuse of this feature may result in starving the rest of the system from
hardware resources.
Therefore, the driver implementation may deny requests to acquire a priority
above the default priority (VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT
) if
the caller does not have sufficient privileges.
In this scenario VK_ERROR_NOT_PERMITTED_EXT
is returned.
The driver implementation may fail the queue allocation request if resources
required to complete the operation have been exhausted (either by the same
process or a different process).
In this scenario VK_ERROR_INITIALIZATION_FAILED
is returned.
New Structures
New Enums
New Enum Constants
VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME
VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION
- Extending VkResult:
VK_ERROR_NOT_PERMITTED_EXT
- Extending VkStructureType:
VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT
Version History
- Revision 2, 2017-11-03 (Andres Rodriguez)
- Fixed VkQueueGlobalPriorityEXT missing _EXT suffix
- Revision 1, 2017-10-06 (Andres Rodriguez)
- First version.