• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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