| 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. |