VulkanRenderer: Enable synchronization validation in debug

This commit is contained in:
Jérôme Leclercq 2021-05-05 12:06:30 +02:00
parent 961c3bf1df
commit ee690072f8
1 changed files with 30 additions and 9 deletions

View File

@ -202,17 +202,38 @@ namespace Nz
}
}
VkInstanceCreateInfo instanceInfo = {
VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
nullptr,
createFlags,
&appInfo,
UInt32(enabledLayers.size()),
enabledLayers.data(),
UInt32(enabledExtensions.size()),
enabledExtensions.data()
VkInstanceCreateInfo instanceInfo = { VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO };
#ifdef NAZARA_DEBUG
VkValidationFeaturesEXT features = {};
std::vector<VkValidationFeatureEnableEXT> enabledFeatures = {
//VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
//VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,
VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT
};
if (availableLayers.count("VK_LAYER_KHRONOS_validation"))
{
enabledExtensions.push_back(VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME);
features.sType = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT;
features.enabledValidationFeatureCount = UInt32(enabledFeatures.size());
features.pEnabledValidationFeatures = enabledFeatures.data();
instanceInfo.pNext = &features;
}
#endif
instanceInfo.flags = createFlags;
instanceInfo.pApplicationInfo = &appInfo;
instanceInfo.enabledExtensionCount = UInt32(enabledExtensions.size());
instanceInfo.ppEnabledExtensionNames = enabledExtensions.data();
instanceInfo.enabledLayerCount = UInt32(enabledLayers.size());
instanceInfo.ppEnabledLayerNames = enabledLayers.data();
if (!s_instance.Create(instanceInfo))
{
NazaraError("Failed to create instance: " + TranslateVulkanError(s_instance.GetLastErrorCode()));