Skip to content

Commit a99eabe

Browse files
committed
Add optional path for sync-val enablement.
1 parent a959b17 commit a99eabe

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

vulkan/context.cpp

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -633,6 +633,7 @@ bool Context::create_instance(const char * const *instance_ext, uint32_t instanc
633633
};
634634

635635
force_no_validation = Util::get_environment_bool("GRANITE_VULKAN_NO_VALIDATION", false);
636+
VkValidationFeaturesEXT validation_features = { VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT };
636637

637638
if (!force_no_validation && has_layer("VK_LAYER_KHRONOS_validation"))
638639
{
@@ -644,24 +645,24 @@ bool Context::create_instance(const char * const *instance_ext, uint32_t instanc
644645
std::vector<VkExtensionProperties> layer_exts(layer_ext_count);
645646
vkEnumerateInstanceExtensionProperties("VK_LAYER_KHRONOS_validation", &layer_ext_count, layer_exts.data());
646647

647-
#if 0
648-
VkValidationFeaturesEXT validation_features = { VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT };
649-
650-
// Tons of false positives around timeline semaphores atm, so don't bother.
651-
if (find_if(begin(layer_exts), end(layer_exts), [](const VkExtensionProperties &e) {
652-
return strcmp(e.extensionName, VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME) == 0;
653-
}) != end(layer_exts))
648+
if (Util::get_environment_bool("GRANITE_VULKAN_SYNC_VALIDATION", false))
654649
{
655-
instance_exts.push_back(VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME);
656-
static const VkValidationFeatureEnableEXT validation_sync_features[1] = {
657-
VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT,
658-
};
659-
LOGI("Enabling VK_EXT_validation_features for synchronization validation.\n");
660-
validation_features.enabledValidationFeatureCount = 1;
661-
validation_features.pEnabledValidationFeatures = validation_sync_features;
662-
info.pNext = &validation_features;
650+
// Tons of false positives around timeline semaphores atm, so don't bother.
651+
if (find_if(begin(layer_exts), end(layer_exts), [](const VkExtensionProperties &e)
652+
{
653+
return strcmp(e.extensionName, VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME) == 0;
654+
}) != end(layer_exts))
655+
{
656+
instance_exts.push_back(VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME);
657+
static const VkValidationFeatureEnableEXT validation_sync_features[1] = {
658+
VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT,
659+
};
660+
LOGI("Enabling VK_EXT_validation_features for synchronization validation.\n");
661+
validation_features.enabledValidationFeatureCount = 1;
662+
validation_features.pEnabledValidationFeatures = validation_sync_features;
663+
info.pNext = &validation_features;
664+
}
663665
}
664-
#endif
665666

666667
if (!ext.supports_debug_utils &&
667668
find_if(begin(layer_exts), end(layer_exts), [](const VkExtensionProperties &e) {

0 commit comments

Comments
 (0)