Fix support for VK_KHR_pipeline_binary#2634
Fix support for VK_KHR_pipeline_binary#2634marius-pelegrin-arm wants to merge 1 commit intoLunarG:devfrom
VK_KHR_pipeline_binary#2634Conversation
`VkPipelineCreateInfoKHR` is a particular structure as it can take any kind of `PipelineCreateInfo` in its `pNext` chain, in addition to being required to have a non-null `pNext` member. This was not correctly handled by the generated code, this commit aims at fixing the situation. Change-Id: Ie363804058867af5ff57ee32b062001c73f6368a
23ba2a6 to
4ad1a79
Compare
|
CI gfxreconstruct build queued with queue ID 633685. |
|
CI gfxreconstruct build # 8717 running. |
|
CI gfxreconstruct build # 8717 passed. |
|
This seems similar to the way OpenXR handles parent/child classes (for example look at Honestly, this really does seem like something the Vulkan registry is missing as well. In OpenXR, the registry has field tags indicating when a structure has a parent structure ( |
|
I made a change in PR #2668, try that out. |
VkPipelineCreateInfoKHRis a particular structure as it can take any kind ofPipelineCreateInfoin itspNextchain, in addition to being required to have a non-nullpNextmember.This was not correctly handled by the generated code because
Vk*PipelineCreateInfostructures don't have thestructextendsflag set in the Vulkan registry. This commit aims at fixing that by blacklisting this structure and writing the encoder/decoders manually.Ideally, this should be solved in the codegen by not considering only structs with the
structextendsflag as possible encounters in apNextchain