VK_NV_compute_occupancy_priority(3)

# VK_NV_compute_occupancy_priority(3) Manual Page

## Name

VK_NV_compute_occupancy_priority - device extension

Loading… please wait.

## Registered Extension Number

646

## Revision

1

## Ratification Status

Not ratified

## Extension and Version Dependencies

VK_KHR_get_physical_device_properties2
or
Vulkan Version 1.1

## Contact

- Chris Lentini [GitHub]clentini

## Extension Proposal

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::`occupancyPriority` to specify a low priority level.

- VK_COMPUTE_OCCUPANCY_PRIORITY_NORMAL_NV - a constant value that can be used for VkComputeOccupancyPriorityParametersNV::`occupancyPriority` to 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::`occupancyPriority` to 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

- vkCmdSetComputeOccupancyPriorityNV

## New Structures

- VkComputeOccupancyPriorityParametersNV

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV

## New Enum Constants

- VK_COMPUTE_OCCUPANCY_PRIORITY_HIGH_NV

- VK_COMPUTE_OCCUPANCY_PRIORITY_LOW_NV

- VK_COMPUTE_OCCUPANCY_PRIORITY_NORMAL_NV

- `VK_NV_COMPUTE_OCCUPANCY_PRIORITY_EXTENSION_NAME`

- `VK_NV_COMPUTE_OCCUPANCY_PRIORITY_SPEC_VERSION`

- Extending VkStructureType:

  - VK_STRUCTURE_TYPE_COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV

Note | The extension only allows specification of occupancy priority for compute workloads, however, the priorities will also impact the prioritization of compute workloads relative to simultaneously executing graphics workloads. In such a scenario, the graphics workload may be thought of as executing at VK_COMPUTE_OCCUPANCY_PRIORITY_NORMAL_NV priority, and so a simultaneously executing compute workload with VK_COMPUTE_OCCUPANCY_PRIORITY_HIGH_NV occupancy priority will preferentially utilize available compute resources.

Note | Workloads specified with a higher priority may begin execution after workloads specified with a lower priority, at which point they may find GPU compute resources already occupied. So, while they will from that point forward preferentially occupy available compute resources, they may not ramp up to full occupancy until the already present lower priority work has reached a point where it can relinquish compute resources.

## Issues

None.

## Version History

- Revision 1, 2025-08-06 (Chris Lentini)

  - Initial revision

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

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0