| // Copyright 2017-2021 The Khronos Group Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| include::{generated}/meta/{refprefix}VK_EXT_global_priority.txt[] |
| |
| === Other Extension Metadata |
| |
| *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 |
| |
| === Description |
| |
| 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 callers 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 precedence 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. |
| |
| include::{generated}/interfaces/VK_EXT_global_priority.txt[] |
| |
| === Version History |
| |
| * Revision 2, 2017-11-03 (Andres Rodriguez) |
| - Fixed VkQueueGlobalPriorityEXT missing _EXT suffix |
| |
| * Revision 1, 2017-10-06 (Andres Rodriguez) |
| - First version. |