Name
VK_NV_external_compute_queue - device extension
VK_NV_external_compute_queue
- Name String
VK_NV_external_compute_queue
- Extension Type
Device extension
- Registered Extension Number
557
- Revision
1
- Ratification Status
Not ratified
- Extension and Version Dependencies
None
- Contact
- Extension Proposal
VK_NV_external_compute_queue
Other Extension Metadata
- Last Modified Date
2025-03-24
- Contributors
Chris Lentini, NVIDIA
Eric Werness, NVIDIA
James Jones, NVIDIA
Jeff Juliano, NVIDIA
Liam Middlebrook, NVIDIA
Lionel Duc, NVIDIA
Description
This extension gives applications the ability to join compatible
external compute APIs to a Device. In this way,
the extension allows an application to achieve simultaneous execution
between work submitted from these compatible external APIs and work that
has been submitted through the Vulkan API.
At device creation time, an application must supply a
ExternalComputeQueueDeviceCreateInfoNV. This communicates to the
implementation the maximum number of external queues that the
application can create at once. This information may be used by the
implementation to aid in decisions made during device creation.
After device creation, the function createExternalComputeQueueNV is
used by an application to create a new
ExternalComputeQueueNV object. The
ExternalComputeQueueNV object holds
information and reserves resources necessary for a compatible external
API to be able to join a Device. This
information can be queried through the getExternalComputeQueueDataNV
function, returning an opaque blob of data which can be passed to
compatible external APIs. The application must finally call
destroyExternalComputeQueueNV when it is done in order to release the
reserved resources.
This extension introduces a new properties structure,
PhysicalDeviceExternalComputeQueuePropertiesNV, which can be queried
through
getPhysicalDeviceProperties2.
The structure provides information on functional limits to the extension
as well as a way of querying the size of the application allocated
memory which must be passed to the getExternalComputeQueueDataNV
function.
When creating a ExternalComputeQueueNV
through createExternalComputeQueueNV, the
ExternalComputeQueueCreateInfoNV structure requires an application to
supply a Queue to aid in external compute queue
creation. The supplied Queue is a strong
scheduling hint about which queue it expects to submit graphics
workloads to and with which it expects simultaneous execution of compute
workloads submitted through the external API.
New Object Types
New Commands
New Structures
New Enum Constants
While the external queue is now a part of a
Device, idling the device through
deviceWaitIdle does not wait for the external
queue. Draining the work on an external queue must be done through its
own external API. External queues must be idled before destroying the
associated Device.
In general, synchronization and resource sharing between the external
API and Vulkan must still be accomplished via existing cross-API interop
mechanisms.
Version History
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.