Class EXTGlobalPriority
- java.lang.Object
-
- org.lwjgl.vulkan.EXTGlobalPriority
-
public final class EXTGlobalPriority extends java.lang.Object
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 caller's to set their system-wide priority. The default queue priority isQUEUE_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 (
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 (
QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT
) if the caller does not have sufficient privileges. In this scenarioERROR_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
ERROR_INITIALIZATION_FAILED
is returned.- Name String
VK_EXT_global_priority
- Extension Type
- Device extension
- Registered Extension Number
- 175
- Revision
- 2
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Contact
- Andres Rodriguez lostgoat
- 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
-
-
Field Summary
Fields Modifier and Type Field Description static int
VK_ERROR_NOT_PERMITTED_EXT
ExtendsVkResult
.static java.lang.String
VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME
The extension name.static int
VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION
The extension specification version.static int
VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT
VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT
VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT
VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXTVkQueueGlobalPriorityEXT - Values specifying a system-wide queue prioritystatic int
VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT
ExtendsVkStructureType
.
-
-
-
Field Detail
-
VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION
The extension specification version.
-
VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME
The extension name.
-
VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT
ExtendsVkStructureType
.
-
VK_ERROR_NOT_PERMITTED_EXT
ExtendsVkResult
.
-
VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT, VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT, VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT, VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
VkQueueGlobalPriorityEXT - Values specifying a system-wide queue priorityDescription
Priority values are sorted in ascending order. A comparison operation on the enum values can be used to determine the priority order.
QUEUE_GLOBAL_PRIORITY_LOW_EXT
is below the system default. Useful for non-interactive tasks.QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT
is the system default priority.QUEUE_GLOBAL_PRIORITY_HIGH_EXT
is above the system default.QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
is the highest priority. Useful for critical tasks.
See Also
-
-