76 lines
2.1 KiB
Plaintext
76 lines
2.1 KiB
Plaintext
include::meta/VK_EXT_global_priority.txt[]
|
|
|
|
*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
|
|
|
|
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 caller's to set their system-wide
|
|
priority.
|
|
The default queue priority is ename:VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT.
|
|
|
|
The driver implementation will attempt to skew hardware resource allocation
|
|
in favour 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 predence over the
|
|
per-process queue priority
|
|
(sname:VkDeviceQueueCreateInfo::pname: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 (ename:VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT) if
|
|
the caller does not have sufficient privileges.
|
|
In this scenario ename: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 ename:VK_ERROR_INITIALIZATION_FAILED is returned.
|
|
|
|
=== New Object Types
|
|
|
|
None.
|
|
|
|
=== New Enum Constants
|
|
|
|
* Extending elink:VkStructureType:
|
|
** ename:VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT
|
|
|
|
* Extending elink:VkResult:
|
|
** ename:VK_ERROR_NOT_PERMITTED_EXT
|
|
|
|
=== New Enums
|
|
|
|
* elink:VkQueueGlobalPriorityEXT
|
|
|
|
=== New Structures
|
|
|
|
* slink:VkDeviceQueueGlobalPriorityCreateInfoEXT
|
|
|
|
=== New Functions
|
|
|
|
None.
|
|
|
|
=== Issues
|
|
|
|
None.
|
|
|
|
=== Version History
|
|
|
|
* Revision 2, 2017-11-03 (Andres Rodriguez)
|
|
- Fixed VkQueueGlobalPriorityEXT missing _EXT suffix
|
|
|
|
* Revision 1, 2017-10-06 (Andres Rodriguez)
|
|
- First version.
|