# VK_EXT_global_priority(3) Manual Page

## Name

VK_EXT_global_priority - device extension

Loading… please wait.

## Registered Extension Number

175

## Revision

2

## Ratification Status

Not ratified

## Extension and Version Dependencies

None

## Deprecation State

- Promoted to VK_KHR_global_priority extension

  - Which in turn was promoted to Vulkan 1.4

## Contact

- Andres Rodriguez [GitHub]lostgoat

## 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 `VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT`.

The driver implementation will attempt to skew hardware resource allocation in favor 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 (`VkDeviceQueueCreateInfo`::`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 (`VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT`) if the caller does not have sufficient privileges. In this scenario `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 `VK_ERROR_INITIALIZATION_FAILED` is returned.

## New Structures

- Extending VkDeviceQueueCreateInfo:

  - VkDeviceQueueGlobalPriorityCreateInfoEXT

## New Enums

- VkQueueGlobalPriorityEXT

## New Enum Constants

- `VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME`

- `VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION`

- Extending VkQueueGlobalPriority:

  - `VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT`

  - `VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT`

  - `VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT`

  - `VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT`

- Extending VkResult:

  - `VK_ERROR_NOT_PERMITTED_EXT`

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT`

## Version History

- Revision 2, 2017-11-03 (Andres Rodriguez)

  - Fixed VkQueueGlobalPriorityEXT missing _EXT suffix

- Revision 1, 2017-10-06 (Andres Rodriguez)

  - First version.

## See Also

No cross-references are available

## Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

## Copyright

Copyright 2014-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0