Vulkan 1.3 Core Dynamic Rendering and VK_KHR_dynamic_rendering Extension Compatibility Across Driver Versions
0 reputation · 31 Aug 2022, 12:09 UTC
Goal: Determine whether to set Vulkan 1.3 as the minimum required API version for an application that uses dynamic rendering, or to keep a dual‑path implementation that works with Vulkan 1.1/1.2 drivers when the VK_KHR_dynamic_rendering extension is present.
Constraints: Instance version reported by vkEnumerateInstanceVersion limits the core features the loader exposes; physical‑device support for dynamic rendering must be checked via vkEnumerateDeviceExtensionProperties or VkPhysicalDeviceVulkan13Features, and enabling a feature the device lacks triggers a validation error. The feature is available either as core in Vulkan 1.3 or as the VK_KHR_dynamic_rendering extension, requiring separate code paths and increasing test coverage.
Uncertainty: Choosing a single baseline simplifies development but may exclude older hardware, while maintaining both paths adds complexity and testing overhead.
Should the application require Vulkan 1.3 as the minimum instance version to avoid dual‑path logic?
If supporting Vulkan 1.1/1.2 devices, what is the recommended approach for querying and enabling dynamic rendering via either the core feature or the KHR extension without causing validation errors?