Safe Haskell | None |
---|---|
Language | Haskell2010 |
Name
VK_EXT_global_priority_query - device extension
VK_EXT_global_priority_query
- Name String
VK_EXT_global_priority_query
- Extension Type
- Device extension
- Registered Extension Number
- 389
- Revision
- 1
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_EXT_global_priority
- Requires
VK_KHR_get_physical_device_properties2
- Contact
Other Extension Metadata
- Last Modified Date
- 2021-03-29
- IP Status
- No known IP claims.
- Contributors
- Yiwei Zhang, Google
Description
This device extension allows applications to query the global queue priorities supported by a queue family. It allows implementations to report which global priority levels are treated differently by the implementation, instead of silently mapping multiple requested global priority levels to the same internal priority, or using device creation failure to signal that a requested priority is not supported. It is intended primarily for use by system integration along with certain platform-specific priority enforcement rules.
New Structures
New Enum Constants
Issues
1) Can we additionally query whether a caller is permitted to acquire a specific global queue priority in this extension?
RESOLVED: No. Whether a caller has enough privilege goes with the OS, and the Vulkan driver cannot really guarantee that the privilege will not change in between this query and the actual queue creation call.
2) If more than 1 queue using global priority is requested, is there a good way to know which queue is failing the device creation?
RESOLVED: No. There is not a good way at this moment, and it is also not quite actionable for the applications to know that because the information may not be accurate. Queue creation can fail because of runtime constraints like insufficient privilege or lack of resource, and the failure is not necessarily tied to that particular queue configuration requested.
Version History
- Revision 1, 2021-03-29 (Yiwei Zhang)
See Also
MAX_GLOBAL_PRIORITY_SIZE_EXT
,
PhysicalDeviceGlobalPriorityQueryFeaturesEXT
,
QueueFamilyGlobalPriorityPropertiesEXT
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
- data PhysicalDeviceGlobalPriorityQueryFeaturesEXT = PhysicalDeviceGlobalPriorityQueryFeaturesEXT {}
- data QueueFamilyGlobalPriorityPropertiesEXT = QueueFamilyGlobalPriorityPropertiesEXT {}
- type EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1
- pattern EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION :: forall a. Integral a => a
- type EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME = "VK_EXT_global_priority_query"
- pattern EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
- newtype QueueGlobalPriorityEXT where
- type MAX_GLOBAL_PRIORITY_SIZE_EXT = 16
- pattern MAX_GLOBAL_PRIORITY_SIZE_EXT :: forall a. Integral a => a
Documentation
data PhysicalDeviceGlobalPriorityQueryFeaturesEXT Source #
VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT - Structure describing whether global priority query can be supported by an implementation
Members
The members of the PhysicalDeviceGlobalPriorityQueryFeaturesEXT
structure describe the following features:
Description
If the PhysicalDeviceGlobalPriorityQueryFeaturesEXT
structure is
included in the pNext
chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2
,
it is filled in to indicate whether each corresponding feature is
supported. PhysicalDeviceGlobalPriorityQueryFeaturesEXT
can also be
used in the pNext
chain of DeviceCreateInfo
to
selectively enable these features.
Valid Usage (Implicit)
See Also
Instances
data QueueFamilyGlobalPriorityPropertiesEXT Source #
VkQueueFamilyGlobalPriorityPropertiesEXT - Return structure for queue family global priority information query
Description
The valid elements of priorities
must not contain any duplicate
values.
The valid elements of priorities
must be a continuous sequence of
QueueGlobalPriorityEXT
enums
in the ascending order.
Note
For example, returning priorityCount
as 3 with supported priorities
as
QUEUE_GLOBAL_PRIORITY_LOW_EXT
,
QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT
and
QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
is not allowed.
Valid Usage (Implicit)
-
Any given element of
priorities
must be a validQueueGlobalPriorityEXT
value
See Also
VK_EXT_global_priority_query,
QueueGlobalPriorityEXT
,
StructureType
QueueFamilyGlobalPriorityPropertiesEXT | |
|
Instances
pattern EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME = "VK_EXT_global_priority_query" Source #
pattern EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #
newtype QueueGlobalPriorityEXT Source #
VkQueueGlobalPriorityEXT - 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,
DeviceQueueGlobalPriorityCreateInfoEXT
,
QueueFamilyGlobalPriorityPropertiesEXT
pattern QUEUE_GLOBAL_PRIORITY_LOW_EXT :: QueueGlobalPriorityEXT |
|
pattern QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT :: QueueGlobalPriorityEXT |
|
pattern QUEUE_GLOBAL_PRIORITY_HIGH_EXT :: QueueGlobalPriorityEXT |
|
pattern QUEUE_GLOBAL_PRIORITY_REALTIME_EXT :: QueueGlobalPriorityEXT |
|
Instances
type MAX_GLOBAL_PRIORITY_SIZE_EXT = 16 Source #
pattern MAX_GLOBAL_PRIORITY_SIZE_EXT :: forall a. Integral a => a Source #