The VkPhysicalDeviceMemoryBudgetPropertiesEXT::heapBudget values can be used as a guideline for how much total memory from each heap the current process can use at any given time, before allocations may start failing or causing performance degradation. The values may change based on other activity in the system that is outside the scope and control of the Vulkan implementation.
The VkPhysicalDeviceMemoryBudgetPropertiesEXT::heapUsage will display the current process estimated heap usage.
With this information, the idea is for an application at some interval (once per frame, per few seconds, etc) to query heapBudget and heapUsage. From here the application can notice if it is over budget and decide how it wants to handle the memory situation (free it, move to host memory, changing mipmap levels, etc). This extension is designed to be used in concert with VK_EXT_memory_priority to help with this part of memory management.
VK_EXT_memory_budgetVK_KHR_get_physical_device_properties2 or Version 1.1| Modifier and Type | Field and Description |
|---|---|
| public static final String | VK_EXT_MEMORY_BUDGET_EXTENSION_NAME
The extension name. |
| public static final int | VK_EXT_MEMORY_BUDGET_SPEC_VERSION
The extension specification version. |
| public static final int | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT
Extends |
| Access | Constructor and Description |
|---|---|
| private |
| VK_EXT_MEMORY_BUDGET_EXTENSION_NAME | back to summary |
|---|---|
| public static final String VK_EXT_MEMORY_BUDGET_EXTENSION_NAME The extension name. | |
| VK_EXT_MEMORY_BUDGET_SPEC_VERSION | back to summary |
|---|---|
| public static final int VK_EXT_MEMORY_BUDGET_SPEC_VERSION The extension specification version. | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT Extends | |
| EXTMemoryBudget | back to summary |
|---|---|
| private EXTMemoryBudget() | |