73 lines
2.0 KiB
Plaintext
73 lines
2.0 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 elink:VK_QUEUE_GLOBAL_PRIORITY_MEDIUM.
|
||
|
|
||
|
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 (elink:VK_QUEUE_GLOBAL_PRIORITY_MEDIUM) if the
|
||
|
caller does not have sufficient privileges.
|
||
|
In this scenario elink: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 elink:VK_ERROR_INITIALIZATION_FAILED is returned.
|
||
|
|
||
|
=== New Object Types
|
||
|
|
||
|
None.
|
||
|
|
||
|
=== New Enum Constants
|
||
|
|
||
|
* Extending elink:VkStructureType:
|
||
|
** elink:VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT
|
||
|
|
||
|
* Extending elink:VkResult:
|
||
|
** elink:VK_ERROR_NOT_PERMITTED_EXT
|
||
|
|
||
|
=== New Enums
|
||
|
|
||
|
* elink:VkQueueGlobalPriorityEXT
|
||
|
|
||
|
=== New Structures
|
||
|
|
||
|
* slink:VkDeviceQueueGlobalPriorityCreateInfoEXT
|
||
|
|
||
|
=== New Functions
|
||
|
|
||
|
None.
|
||
|
|
||
|
=== Issues
|
||
|
|
||
|
None.
|
||
|
|
||
|
=== Version History
|
||
|
|
||
|
* Revision 1, 2017-10-06 (Andres Rodriguez)
|
||
|
- First version.
|