Vulkan Mini Libs V2 - Serializer
Channel: StableCoder
Date: 18/08/2021

There were a number of annoying shortcomings with the origial Vk-Mini-Libs implementation, primarily that each Vulkan Header version had a separate header implementation file, ballooning the size of the repository and otherwise not being nicely backwards and forward compatible.


This meant that previous enums that have been changed, such as old proposed extensions that had been since promoted would be missing, causing odd incompatabilities, and otherwise a number of extension enum values that just were not covered.



This new implementation seeks to fix these, and to do so a shift in how the Vulkan XML is parsed is implemented. Previously parsing and writing files was a 1:1 on the XML, but to be able to capture older version data an intermediate file that tracks when items are introduced or removed needed to be created, and this data updated. Instead there are two phases. The first phase iterates through the Vulkan XML versions, latest to oldest supported, tracking when items are added and removed, along with the required definitions to unlock and use them. Then the second phase takes all that data and generates a single header, where the header is appropriately guarded where necessary.


2021/08/14