Skip to content

Commit 61c94f5

Browse files
committed
Moved extension check to DeviceExtensions.
1 parent b01d466 commit 61c94f5

4 files changed

Lines changed: 7 additions & 6 deletions

File tree

include/vsg/vk/Device.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,6 @@ namespace vsg
8585
/// return true if Device was created with specified extension
8686
bool supportsDeviceExtension(const char* extensionName) const;
8787

88-
/// commonly checked extensions
89-
const bool memory_budget = false; // VK_EXT_memory_budget
90-
9188
/// return the amount of remaining memory, compatible with specified flags, available that can be allocated.
9289
VkDeviceSize availableMemory(VkMemoryPropertyFlags memoryPropertiesFlags, double allocatedMemoryLimit = 1.0) const;
9390

include/vsg/vk/DeviceExtensions.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ namespace vsg
6161
PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnable = nullptr;
6262
PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnable = nullptr;
6363
PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOp = nullptr;
64+
65+
// cache whether extension is supported
66+
bool memory_budget = false; // VK_EXT_memory_budget
6467
};
6568
VSG_type_name(vsg::DeviceExtensions);
6669

src/vsg/vk/Device.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,9 @@ Device::Device(PhysicalDevice* physicalDevice, const QueueSettings& queueSetting
114114
deviceExtensions.push_back(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME);
115115
#endif
116116

117-
if (_physicalDevice->supportsDeviceExtension(VK_EXT_MEMORY_BUDGET_EXTENSION_NAME))
117+
if (supportsApiVersion(VK_API_VERSION_1_1) && _physicalDevice->supportsDeviceExtension(VK_EXT_MEMORY_BUDGET_EXTENSION_NAME))
118118
{
119119
deviceExtensions.push_back(VK_EXT_MEMORY_BUDGET_EXTENSION_NAME);
120-
const_cast<bool&>(memory_budget) = true;
121120
}
122121

123122
VkDeviceCreateInfo createInfo = {};
@@ -214,7 +213,7 @@ bool Device::supportsDeviceExtension(const char* extensionName) const
214213

215214
VkDeviceSize Device::availableMemory(VkMemoryPropertyFlags memoryPropertiesFlags, double allocatedMemoryLimit) const
216215
{
217-
if (memory_budget)
216+
if (_extensions->memory_budget)
218217
{
219218
VkPhysicalDeviceMemoryBudgetPropertiesEXT memoryBudget;
220219
memoryBudget.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT;

src/vsg/vk/DeviceExtensions.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,6 @@ DeviceExtensions::DeviceExtensions(Device* device)
7777
device->getProcAddr(vkCmdSetStencilTestEnable, "vkCmdSetStencilTestEnableEXT");
7878
device->getProcAddr(vkCmdSetStencilOp, "vkCmdSetStencilOpEXT");
7979
}
80+
81+
memory_budget = device->supportsApiVersion(VK_API_VERSION_1_1) && device->supportsDeviceExtension(VK_EXT_MEMORY_BUDGET_EXTENSION_NAME);
8082
}

0 commit comments

Comments
 (0)