vulkan-3.23: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Extensions.VK_EXT_global_priority

Description

Name

VK_EXT_global_priority - device extension

VK_EXT_global_priority

Name String
VK_EXT_global_priority
Extension Type
Device extension
Registered Extension Number
175
Revision
2
Extension and Version Dependencies
  • Requires support for Vulkan 1.0
Deprecation state
  • Promoted to VK_KHR_global_priority extension
Contact

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 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 (DeviceQueueCreateInfo::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 scenario 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 ERROR_INITIALIZATION_FAILED is returned.

New Structures

New Enums

New Enum Constants

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

DeviceQueueGlobalPriorityCreateInfoEXT, QueueGlobalPriorityEXT

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.

Synopsis

Documentation

type EXT_GLOBAL_PRIORITY_EXTENSION_NAME = "VK_EXT_global_priority" Source #

pattern EXT_GLOBAL_PRIORITY_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #

data DeviceQueueGlobalPriorityCreateInfoKHR Source #

VkDeviceQueueGlobalPriorityCreateInfoKHR - Specify a system wide priority

Description

Queues created without specifying DeviceQueueGlobalPriorityCreateInfoKHR will default to QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR.

Valid Usage (Implicit)

See Also

VK_EXT_global_priority, VK_KHR_global_priority, QueueGlobalPriorityKHR, StructureType

Constructors

DeviceQueueGlobalPriorityCreateInfoKHR 

Fields

Instances

Instances details
Storable DeviceQueueGlobalPriorityCreateInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_global_priority

Show DeviceQueueGlobalPriorityCreateInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_global_priority

Eq DeviceQueueGlobalPriorityCreateInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_global_priority

FromCStruct DeviceQueueGlobalPriorityCreateInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_global_priority

ToCStruct DeviceQueueGlobalPriorityCreateInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_global_priority

Zero DeviceQueueGlobalPriorityCreateInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_global_priority

newtype QueueGlobalPriorityKHR Source #

VkQueueGlobalPriorityKHR - Values specifying a system-wide queue priority

Description

Priority values are sorted in ascending order. A comparison operation on the enum values can be used to determine the priority order.

See Also

VK_EXT_global_priority, VK_KHR_global_priority, DeviceQueueGlobalPriorityCreateInfoKHR, QueueFamilyGlobalPriorityPropertiesKHR

Bundled Patterns

pattern QUEUE_GLOBAL_PRIORITY_LOW_KHR :: QueueGlobalPriorityKHR

QUEUE_GLOBAL_PRIORITY_LOW_KHR is below the system default. Useful for non-interactive tasks.

pattern QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR :: QueueGlobalPriorityKHR

QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR is the system default priority.

pattern QUEUE_GLOBAL_PRIORITY_HIGH_KHR :: QueueGlobalPriorityKHR

QUEUE_GLOBAL_PRIORITY_HIGH_KHR is above the system default.

pattern QUEUE_GLOBAL_PRIORITY_REALTIME_KHR :: QueueGlobalPriorityKHR

QUEUE_GLOBAL_PRIORITY_REALTIME_KHR is the highest priority. Useful for critical tasks.

Instances

Instances details
Storable QueueGlobalPriorityKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_global_priority

Read QueueGlobalPriorityKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_global_priority

Show QueueGlobalPriorityKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_global_priority

Eq QueueGlobalPriorityKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_global_priority

Ord QueueGlobalPriorityKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_global_priority

Zero QueueGlobalPriorityKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_global_priority