1include::meta/VK_EXT_global_priority.txt[] 2 3*Last Modified Date*:: 4 2017-10-06 5*IP Status*:: 6 No known IP claims. 7*Contributors*:: 8 - Andres Rodriguez, Valve 9 - Pierre-Loup Griffais, Valve 10 - Dan Ginsburg, Valve 11 - Mitch Singer, AMD 12 13In Vulkan, users can specify device-scope queue priorities. 14In some cases it may be useful to extend this concept to a system-wide 15scope. 16This extension provides a mechanism for caller's to set their system-wide 17priority. 18The default queue priority is ename:VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT. 19 20The driver implementation will attempt to skew hardware resource allocation 21in favour of the higher-priority task. 22Therefore, higher-priority work may retain similar latency and throughput 23characteristics even if the system is congested with lower priority work. 24 25The global priority level of a queue shall take predence over the 26per-process queue priority 27(sname:VkDeviceQueueCreateInfo::pname:pQueuePriorities). 28 29Abuse of this feature may result in starving the rest of the system from 30hardware resources. 31Therefore, the driver implementation may deny requests to acquire a priority 32above the default priority (ename:VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT) if 33the caller does not have sufficient privileges. 34In this scenario ename:VK_ERROR_NOT_PERMITTED_EXT is returned. 35 36The driver implementation may fail the queue allocation request if resources 37required to complete the operation have been exhausted (either by the same 38process or a different process). 39In this scenario ename:VK_ERROR_INITIALIZATION_FAILED is returned. 40 41=== New Object Types 42 43None. 44 45=== New Enum Constants 46 47 * Extending elink:VkStructureType: 48 ** ename:VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT 49 50 * Extending elink:VkResult: 51 ** ename:VK_ERROR_NOT_PERMITTED_EXT 52 53=== New Enums 54 55 * elink:VkQueueGlobalPriorityEXT 56 57=== New Structures 58 59 * slink:VkDeviceQueueGlobalPriorityCreateInfoEXT 60 61=== New Functions 62 63None. 64 65=== Issues 66 67None. 68 69=== Version History 70 71 * Revision 2, 2017-11-03 (Andres Rodriguez) 72 - Fixed VkQueueGlobalPriorityEXT missing _EXT suffix 73 74 * Revision 1, 2017-10-06 (Andres Rodriguez) 75 - First version. 76