shader_object: Use VulkanObject in codegen #498
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Refactors shader_object_generator.py to use VulkanObject to generate the shader object implementation files. This is done to ensure future maintainability of shader_object by utilizing definitions of types and variables in it rather than solely relying on the hand maintained shader_object_data.json. However, because Vulkan Object is lacking some API details the bulk of the contents of shader_object_data.json had to be preserved. For example, VkDynamicState enums correspond to various state setting commands but VulkanObject nor vk.xml define those relationships.
Changes in this PR include:
extension_layer_codegento automate running codegen. Must set EXTENSION_LAYER_CODEGEN build option to true to make available.VERSIONtoproject()in the top level CMakeLists.txt, allowing dependencies to easily require a specific version of this repo.