VK_NV_compute_occupancy_priority
Other Extension Metadata
Last Modified Date
2025-12-01
Contributors
- Chris Lentini, NVIDIA
- Eric Werness, NVIDIA
- Lionel Duc, NVIDIA
- Peter Deayton, NVIDIA
Description
This extension provides applications with control over how their compute workloads utilize GPU compute resources, specifically allowing prioritization relative to other simultaneously executing workloads. Applications can specify the priority with which compute workloads should occupy GPU compute resources, allowing for a fine-grained distinction between workloads that may want to execute at a background priority over a long period of time versus workloads with harder latency requirements.
The extension introduces a new command vkCmdSetComputeOccupancyPriorityNV that allows applications to set the occupancy priority for subsequent compute dispatches. The occupancy priority affects how compute workloads utilize GPU compute resources relative to other simultaneously executing workloads.
The occupancy priority is stateful on a command buffer. All commands listed in the Dispatching Commands chapter issued subsequent to a vkCmdSetComputeOccupancyPriorityNV call will be executed with the specified priority parameters until another vkCmdSetComputeOccupancyPriorityNV call is made.
For convenience, three named occupancy priority values are defined:
- VK_COMPUTE_OCCUPANCY_PRIORITY_LOW_NV - a constant value that can be
used for
VkComputeOccupancyPriorityParametersNV::
occupancyPriorityto specify a low priority level. - VK_COMPUTE_OCCUPANCY_PRIORITY_NORMAL_NV - a constant value that can
be used for
VkComputeOccupancyPriorityParametersNV::
occupancyPriorityto specify a normal priority level. This represents the default priority level. - VK_COMPUTE_OCCUPANCY_PRIORITY_HIGH_NV - a constant value that can be
used for
VkComputeOccupancyPriorityParametersNV::
occupancyPriorityto specify a high priority level.
All command buffers (primary and secondary) start with a priority level equal to the VK_COMPUTE_OCCUPANCY_PRIORITY_NORMAL_NV value. The priority state is not inherited by secondary command buffers - each command buffer maintains its own independent priority state.
New Commands
New Structures
New Enum Constants
VK_COMPUTE_OCCUPANCY_PRIORITY_HIGH_NVVK_COMPUTE_OCCUPANCY_PRIORITY_LOW_NVVK_COMPUTE_OCCUPANCY_PRIORITY_NORMAL_NVVK_NV_COMPUTE_OCCUPANCY_PRIORITY_EXTENSION_NAMEVK_NV_COMPUTE_OCCUPANCY_PRIORITY_SPEC_VERSION- Extending VkStructureType:
VK_STRUCTURE_TYPE_COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NVVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV
Issues
None.
Version History
- Revision 1, 2025-08-06 (Chris Lentini)
- Initial revision