Skip to content

Conversation

@mematthias
Copy link
Contributor

This change updates the Vulkan XML registry to clarify the structextends relationship of VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI.

Currently, this structure extends only VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI. This is the only known case in the registry where a feature struct extends another feature struct, rather than VkPhysicalDeviceFeatures2 and VkDeviceCreateInfo directly.

This raises several questions for clarification:

  1. Intentional dependency?
    Is VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI intended to be activatable only when VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI is also enabled?

  2. Possible correction to structextends:
    Should the structextends attribute be changed to VkPhysicalDeviceFeatures2,VkDeviceCreateInfo
    (and remove VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI from structextends),
    following the pattern used by other feature definitions?

  3. Specification clarity:
    The current Vulkan specification section on feature enablement (excerpt below) does not explicitly mention dependent feature relationships:

    "Features advertise additional functionality which can be enabled in the API. [...]
    Features are reported via the extensible structure VkPhysicalDeviceFeatures2, [...]
    Each extension should introduce one new feature structure, if needed.
    This structure can be added to the pNext chain of the VkPhysicalDeviceFeatures2 structure."
    

    Would it be helpful to add an explicit note or clarification to the specification describing whether a feature struct can depend on another feature struct being enabled, or whether such nested feature relationships are allowed at all?

@oddhack
Copy link
Contributor

oddhack commented Nov 3, 2025

I asked the Huawei contact for this to take a look - AFAICT they are not in the Khronos Vulkan github team so I can't assign them here.

@oddhack oddhack requested a review from billhollings November 12, 2025 15:44
Copy link

@billhollings billhollings left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change should be acceptable. However, we will need to update the associated spec wording since the wording matches the existing linkage.

In addition, it would be helpful to future edits if we do indeed modify the spec text above about extension features, to clarify that all feature structs should be direct children of VkDeviceFeatures2, and not nested.

We'll either modify this MR, or generate a superseding MR to include this additional info.

@billhollings billhollings self-assigned this Nov 19, 2025
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.

3 participants