Vixen
02b45cc4

XrVulkanRequirements

struct Core/Vixen.Xr/IXrBackend.cs:26
csharp
public readonly record struct XrVulkanRequirements

What a runtime demands of the Vulkan device it will share.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

The runtime dictates the device, which is why this is asked before one exists. An XR compositor and the application render on the same GPU and share images across a process boundary, and the extensions that make that possible have to be present when the instance and the device are created — not enabled afterwards. So the order is: create the backend, ask what it needs, create the graphics device with it, and only then create a session.

Getting this wrong does not fail politely. A device created without the runtime's extensions will create a session that appears to work and then produces a black headset, which is why this is a hard requirement of the API's shape rather than a note in a document.

Fields and properties (5)

  • public IReadOnlyList<string> InstanceExtensions

    Extensions the VkInstance must be created with.

  • public IReadOnlyList<string> DeviceExtensions

    Extensions the VkDevice must be created with.

  • public Version MinimumApiVersion

    The oldest Vulkan the runtime will work with.

  • public Version MaximumApiVersion

    The newest it has been tested against.

  • public static XrVulkanRequirements None

    Nothing required, which is what a backend with no runtime behind it asks for.

Methods (1)

  • public XrVulkanRequirements(IReadOnlyList<string> InstanceExtensions, IReadOnlyList<string> DeviceExtensions, Version MinimumApiVersion, Version MaximumApiVersion)

    What a runtime demands of the Vulkan device it will share.

Used by (4)

  • IXrBackendVixen.Xr
  • NullXrBackendVixen.Xr
  • OpenXrBackendVixen.Xr.OpenXR
  • OpenXrBackendTestsVixen.Xr.OpenXR.Tests