Skip to content

Commit da3f114

Browse files
committed
Generalized the setup of the VkValidationFeaturesEXT to make it cleaner to add future features.
1 parent a0ec18e commit da3f114

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

src/vsg/vk/Instance.cpp

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -153,14 +153,23 @@ Instance::Instance(Names instanceExtensions, Names layers, uint32_t vulkanApiVer
153153
createInfo.enabledLayerCount = static_cast<uint32_t>(layers.size());
154154
createInfo.ppEnabledLayerNames = layers.empty() ? nullptr : layers.data();
155155

156-
// enable synchronization validation feature if requested
157-
VkValidationFeatureEnableEXT validationFeature = VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT;
156+
std::vector<VkValidationFeatureEnableEXT> enabledValidationFeatures;
157+
std::vector<VkValidationFeatureDisableEXT> disabledValidationFeatures;
158+
159+
// syncronization validation requires VkValidationFeaturesEXT
160+
if (containsInstanceLayerName(layers, "VK_LAYER_KHRONOS_synchronization2")) enabledValidationFeatures.push_back(VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT);
161+
162+
// set up the VkValidationFeaturesEXT if required
158163
VkValidationFeaturesEXT validationFeatures{};
159-
if (containsInstanceLayerName(layers, "VK_LAYER_KHRONOS_synchronization2"))
164+
if (!enabledValidationFeatures.empty() || !disabledValidationFeatures.empty())
160165
{
161166
validationFeatures.sType = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT;
162-
validationFeatures.enabledValidationFeatureCount = 1;
163-
validationFeatures.pEnabledValidationFeatures = &validationFeature;
167+
validationFeatures.enabledValidationFeatureCount = static_cast<uint32_t>(enabledValidationFeatures.size());
168+
validationFeatures.pEnabledValidationFeatures = enabledValidationFeatures.data();
169+
170+
validationFeatures.disabledValidationFeatureCount = static_cast<uint32_t>(disabledValidationFeatures.size());
171+
validationFeatures.pDisabledValidationFeatures = disabledValidationFeatures.data();
172+
164173
createInfo.pNext = &validationFeatures;
165174
}
166175
else

0 commit comments

Comments
 (0)