Skip to content

Update Vulkan-Headers to v1.4.347#2530

Merged
asuessenbach merged 2 commits intomainfrom
update-vulkan-headers-pr
Mar 23, 2026
Merged

Update Vulkan-Headers to v1.4.347#2530
asuessenbach merged 2 commits intomainfrom
update-vulkan-headers-pr

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

Please close and reopen this PR to trigger the CI!

@github-actions github-actions bot force-pushed the update-vulkan-headers-pr branch from c476e00 to 1361c74 Compare March 21, 2026 00:21
@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.


GitHub seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

@theHamsta
Copy link
Copy Markdown
Contributor

theHamsta commented Mar 21, 2026

the new vk.xml no longer lists len for ppEnabledLayerNames, therefore no ArrayProxy is generated. Should we break API here and require 0, nullptr or special-case ppEnabledLayerNames?

        <type category="struct" name="VkDeviceCreateInfo">
            <member values="VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
            <member optional="true">const <type>void</type>*     <name>pNext</name></member>
            <member optional="true"><type>VkDeviceCreateFlags</type>    <name>flags</name></member>
            <member optional="true"><type>uint32_t</type>        <name>queueCreateInfoCount</name></member>
            <member len="queueCreateInfoCount">const <type>VkDeviceQueueCreateInfo</type>* <name>pQueueCreateInfos</name></member>
            <member noautovalidity="true" deprecated="unused"><type>uint32_t</type>               <name>enabledLayerCount</name></member>
            <member noautovalidity="true" deprecated="unused">const <type>char</type>* const*      <name>ppEnabledLayerNames</name><comment>Ordered list of layer names to be enabled</comment></member>
            <member optional="true"><type>uint32_t</type>               <name>enabledExtensionCount</name></member>
            <member len="enabledExtensionCount,null-terminated">const <type>char</type>* const*      <name>ppEnabledExtensionNames</name></member>
            <member optional="true">const <type>VkPhysicalDeviceFeatures</type>* <name>pEnabledFeatures</name></member>
        </type>

The newly generated header breaks our sample and most Vulkan-Hpp apps like ggml. We should not break API.

@theHamsta
Copy link
Copy Markdown
Contributor

theHamsta commented Mar 21, 2026

A simple

  if ( name == "ppEnabledLayerNames" )
  {
    memberData.lenExpressions = { "enabledLayerCount", "null-terminated" };
  }

could work around the issue for us. But I'm sure this also affects other binding generators.

Was "enabledExtensionCount,null-terminated" before, now it doesn't contain
any meta information. We could either

  • break API, honor the unused status of the two members
  • special case ppEnabledLayerNames, still generate array proxies
  • raise issue upstream

@theHamsta theHamsta force-pushed the update-vulkan-headers-pr branch 3 times, most recently from cdc4009 to ffcf314 Compare March 21, 2026 09:56
Was `"enabledExtensionCount,null-terminated"` before, now it doesn't contain
any meta information. We could
- either break API
- special case `ppEnabledLayerNames`
- raise issue upstream
@theHamsta theHamsta force-pushed the update-vulkan-headers-pr branch from ffcf314 to 5ade86f Compare March 21, 2026 10:02
@M2-TE
Copy link
Copy Markdown
Contributor

M2-TE commented Mar 21, 2026

I cannot find any specific mention in the changelogs for 1.4.347 that warrants removing the len tag:
KhronosGroup/Vulkan-Docs@6c112cf

The only part that mentions the relevant deprecated params:

Clarify that deprecated parameters are not used, but must be valid in the <<legacy, Legacy appendix> introduction, and change the XML deprecated tag value from 'ignored' to 'unused' accordingly (internal issue 4725)

Though I cannot view the internal issue mentioned here myself.

The tag should probably be added back upstream in the xml, no?
For now though, special-casing like you have done is likely the best choice.

@github-actions github-actions bot force-pushed the update-vulkan-headers-pr branch from 5ade86f to 5aefdff Compare March 22, 2026 00:24
@theHamsta theHamsta force-pushed the update-vulkan-headers-pr branch from 5aefdff to 5ade86f Compare March 23, 2026 08:19
@asuessenbach asuessenbach merged commit e851e4c into main Mar 23, 2026
48 of 49 checks passed
@asuessenbach asuessenbach deleted the update-vulkan-headers-pr branch March 23, 2026 12:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants