Summary
The tutorial currently recommends setting enabledLayerCount and ppEnabledLayerNames on VkDeviceCreateInfo for backward compatibility with older implementations. However, the official Vulkan spec now explicitly states these fields are legacy and fully deprecated, which contradicts the tutorial's framing.
Current tutorial text
The tutorial states:
"it is still a good idea to set them anyway to be compatible with older implementations"
And shows this code:
createInfo.enabledExtensionCount = 0;
if (enableValidationLayers) {
createInfo.enabledLayerCount = static_cast<uint32_t>(validationLayers.size());
createInfo.ppEnabledLayerNames = validationLayers.data();
} else {
createInfo.enabledLayerCount = 0;
}
Problem
The Vulkan spec — Legacy Device Layers appendix now documents these fields as fully deprecated legacy behavior. Implementations are not required to honor them, and new code should not use them at all.
References
Summary
The tutorial currently recommends setting
enabledLayerCountandppEnabledLayerNamesonVkDeviceCreateInfofor backward compatibility with older implementations. However, the official Vulkan spec now explicitly states these fields are legacy and fully deprecated, which contradicts the tutorial's framing.Current tutorial text
The tutorial states:
And shows this code:
Problem
The Vulkan spec — Legacy Device Layers appendix now documents these fields as fully deprecated legacy behavior. Implementations are not required to honor them, and new code should not use them at all.
References