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