1// Copyright 2017-2021 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5include::{generated}/meta/{refprefix}VK_EXT_global_priority.txt[] 6 7=== Other Extension Metadata 8 9*Last Modified Date*:: 10 2017-10-06 11*IP Status*:: 12 No known IP claims. 13*Contributors*:: 14 - Andres Rodriguez, Valve 15 - Pierre-Loup Griffais, Valve 16 - Dan Ginsburg, Valve 17 - Mitch Singer, AMD 18 19=== Description 20 21In Vulkan, users can specify device-scope queue priorities. 22In some cases it may be useful to extend this concept to a system-wide 23scope. 24This extension provides a mechanism for callers to set their system-wide 25priority. 26The default queue priority is ename:VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT. 27 28The driver implementation will attempt to skew hardware resource allocation 29in favour of the higher-priority task. 30Therefore, higher-priority work may retain similar latency and throughput 31characteristics even if the system is congested with lower priority work. 32 33The global priority level of a queue shall take precedence over the 34per-process queue priority 35(sname:VkDeviceQueueCreateInfo::pname:pQueuePriorities). 36 37Abuse of this feature may result in starving the rest of the system from 38hardware resources. 39Therefore, the driver implementation may deny requests to acquire a priority 40above the default priority (ename:VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT) if 41the caller does not have sufficient privileges. 42In this scenario ename:VK_ERROR_NOT_PERMITTED_EXT is returned. 43 44The driver implementation may fail the queue allocation request if resources 45required to complete the operation have been exhausted (either by the same 46process or a different process). 47In this scenario ename:VK_ERROR_INITIALIZATION_FAILED is returned. 48 49include::{generated}/interfaces/VK_EXT_global_priority.txt[] 50 51=== Version History 52 53 * Revision 2, 2017-11-03 (Andres Rodriguez) 54 - Fixed VkQueueGlobalPriorityEXT missing _EXT suffix 55 56 * Revision 1, 2017-10-06 (Andres Rodriguez) 57 - First version. 58