Transition LightweightVK to Vulkan 1.4
1. Goal
Make Vulkan 1.4 the minimum target for LightweightVK and bring the enabled feature set in line with the Khronos Roadmap 2022 / 2024 profiles.
The transition is unconditional. There are no opt-in flags, runtime version queries, or conformance-check helpers — every item below is a small, mechanical code change that either enables a feature, switches an entry point to its core form, or deletes legacy plumbing.
This is a tracking issue. Each [ ] item should become its own small, self-contained PR (or be batched with closely-related items) so the work can land incrementally.
2. Vulkan 1.4 transition tasks
2.1 Make Vulkan 1.4 the minimum API version
2.2 API surface clean-up (entry-point promotion)
Vulkan 1.4 promoted several entry points that LVK still calls via the KHR alias. These calls work on 1.4 (the alias resolves to the core function via volk), but they leave a misleading paper trail:
3. Roadmap profile alignment
The two Roadmap profiles (Khronos Vulkan-Profiles) are used here purely as a menu of features to enable, grouped by year. We do not query for profile support, do not gate behavior on it, and do not advertise conformance — we just walk the lists and turn features on one PR at a time.
Each profile is tracked in its own checklist file:
4. Vulkan 1.4 "Additional Functionality" not in any Roadmap profile
The Vulkan 1.4 proposal lists these as required by 1.4 but does not classify them under Roadmap 2022 or 2024.
VkPhysicalDeviceFeatures (Vulkan 1.0 features)
VkPhysicalDeviceVulkan11Features
VkPhysicalDeviceVulkan14Features
Transition
LightweightVKto Vulkan 1.41. Goal
Make Vulkan 1.4 the minimum target for
LightweightVKand bring the enabled feature set in line with the Khronos Roadmap 2022 / 2024 profiles.The transition is unconditional. There are no opt-in flags, runtime version queries, or conformance-check helpers — every item below is a small, mechanical code change that either enables a feature, switches an entry point to its core form, or deletes legacy plumbing.
This is a tracking issue. Each
[ ]item should become its own small, self-contained PR (or be batched with closely-related items) so the work can land incrementally.2. Vulkan 1.4 transition tasks
2.1 Make Vulkan 1.4 the minimum API version
VulkanVersionenum (lvk/LVK.h:1280-1283) and theContextConfig::vulkanVersionfield (lvk/LVK.h:1286).VkApplicationInfo::apiVersion = VK_API_VERSION_1_4(lvk/vulkan/VulkanClasses.cpp:6687-6691).#if defined(VK_API_VERSION_1_4)guard. The bundledVulkan-Headersare already at 1.4.341, so the guarded blocks are the only branch that ever compiles. Affected sites:VulkanClasses.h:723-725, 739-745,VulkanClasses.cpp:6687-6691, 6998-7005, 7143-7157. (09b6363)if (config_.vulkanVersion < VulkanVersion_1_4)extension-enable block atVulkanClasses.cpp:7257-7264. The four promoted extensions (VK_KHR_push_descriptor,VK_KHR_maintenance5,VK_KHR_dynamic_rendering_local_read,VK_KHR_index_type_uint8) and their feature structs collapse into the 1.4 features struct.LVK_ASSERT_MSG(... "Only Vulkan 1.3 is supported on this platform")atVulkanClasses.cpp:7004along with the surrounding#elsebranch. (09b6363)bootstrap-deps.json). (c57a095)2.2 API surface clean-up (entry-point promotion)
Vulkan 1.4 promoted several entry points that LVK still calls via the
KHRalias. These calls work on 1.4 (the alias resolves to the core function viavolk), but they leave a misleading paper trail:vkCmdBindIndexBuffer2KHR→vkCmdBindIndexBuffer2(lvk/vulkan/VulkanClasses.cpp:2753, has an explicit// TODO: remove KHRnote).vkCmdPushDescriptorSetKHR→vkCmdPushDescriptorSet(lvk/vulkan/VulkanClasses.cpp:2705).*MaintenanceN_KHR,*PushDescriptor*KHR,*DynamicRenderingLocalRead*KHRsymbols and drop the suffix.3. Roadmap profile alignment
The two Roadmap profiles (Khronos
Vulkan-Profiles) are used here purely as a menu of features to enable, grouped by year. We do not query for profile support, do not gate behavior on it, and do not advertise conformance — we just walk the lists and turn features on one PR at a time.Each profile is tracked in its own checklist file:
VP_KHR_roadmap_2022, built on Vulkan 1.3, subsumed by our 1.4 floor.VP_KHR_roadmap_2024, inherits Roadmap 2022; mostly absorbed into Vulkan 1.4 core. LVK 1.4.34. Vulkan 1.4 "Additional Functionality" not in any Roadmap profile
The Vulkan 1.4 proposal lists these as required by 1.4 but does not classify them under Roadmap 2022 or 2024.
VkPhysicalDeviceFeatures(Vulkan 1.0 features)largePoints(32a7876)VkPhysicalDeviceVulkan11FeaturesvariablePointers(5f613a1)variablePointersStorageBuffer(2d178c7)VkPhysicalDeviceVulkan14FeaturesshaderSubgroupRotateClusteredbresenhamLinesindexTypeUint8(3a15a51)dynamicRenderingLocalReadmaintenance5maintenance6pushDescriptor(366356a)