// Copyright (c) 2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_global_priority_query.txt[]

=== 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.

include::{generated}/interfaces/VK_EXT_global_priority_query.txt[]

=== 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)
