Skip to content

Unclear way to safely aggregate features in xrCreateVulkanDeviceKHR #194

@Cyphall

Description

@Cyphall

xrCreateVulkanDeviceKHR from XR_KHR_vulkan_enable2 requires that the implementation aggregate its own extension/feature requirements with the app's requirements passed in XrVulkanDeviceCreateInfoKHR::vulkanCreateInfo.

Say, an implementation requires timeline semaphores.
In the case where this feature is not already enabled by the app but the structure enabling it is in the pNext chain (e.g. VkPhysicalDeviceTimelineSemaphoreFeatures or VkPhysicalDeviceVulkan12Features is present but timelineSemaphore is false), since the vulkanCreateInfo field is const, the only way to safely enable timeline semaphores is to deep-copy the whole structure chain.

The issue is that the structure chain may contain structures that the implementation is not aware of, and cannot deep-copy.

What is the expected way to resolve this issue?

Metadata

Metadata

Assignees

No one assigned

    Labels

    synced to gitlabA corresponding issue has been filed in the Khronos internal GitLab

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions