/ appendices / VK_EXT_global_priority.txt
VK_EXT_global_priority.txt
1 include::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 13 In Vulkan, users can specify device-scope queue priorities. 14 In some cases it may be useful to extend this concept to a system-wide 15 scope. 16 This extension provides a mechanism for caller's to set their system-wide 17 priority. 18 The default queue priority is ename:VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT. 19 20 The driver implementation will attempt to skew hardware resource allocation 21 in favour of the higher-priority task. 22 Therefore, higher-priority work may retain similar latency and throughput 23 characteristics even if the system is congested with lower priority work. 24 25 The global priority level of a queue shall take precedence over the 26 per-process queue priority 27 (sname:VkDeviceQueueCreateInfo::pname:pQueuePriorities). 28 29 Abuse of this feature may result in starving the rest of the system from 30 hardware resources. 31 Therefore, the driver implementation may deny requests to acquire a priority 32 above the default priority (ename:VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT) if 33 the caller does not have sufficient privileges. 34 In this scenario ename:VK_ERROR_NOT_PERMITTED_EXT is returned. 35 36 The driver implementation may fail the queue allocation request if resources 37 required to complete the operation have been exhausted (either by the same 38 process or a different process). 39 In this scenario ename:VK_ERROR_INITIALIZATION_FAILED is returned. 40 41 === New Object Types 42 43 None. 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 63 None. 64 65 === Issues 66 67 None. 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.