Skip to content

[Vulkan] vr::VROverlay()->SetOverlayTexture validation layer error #1898

@Nyabsi

Description

@Nyabsi
  • Operating System: Windows 10 21H2 Build 19044
  • SteamVR Version: Beta 2.12.1
  • GPU: RX 6800 XT
  • Driver Version: 25.3.1 (Vulkan Version 1.3.302)

I'm working on a cross-platform Vulkan based OpenVR Overlay using OpenVR SDK 2.7.1 which follows the practices documented at https://github.com/ValveSoftware/openvr/wiki/Vulkan and I am targetting Vulkan 1.1 spec (the error does happen on 1.2 and 1.3 as well)

When calling vr::VROverlay()->SetOverlayTexture, I receive the following validation error from the validation layer:

vkCreateImage(): pCreateInfo->pNext<VkExternalMemoryImageCreateInfo>.handleTypes is 16 but the initialLayout is VK_IMAGE_LAYOUT_PREINITIALIZED.

according to the Vulkan Specification:

If the pNext chain includes a VkExternalMemoryImageCreateInfo or VkExternalMemoryImageCreateInfoNV structure whose handleTypes member is not 0, initialLayout must be VK_IMAGE_LAYOUT_UNDEFINED

Since I am creating my vkCreateImage with initialLayout being VK_IMAGE_LAYOUT_UNDEFINED , when I am not calling vr::VROverlay()->SetOverlayTexture the validation error does not show up.

My only suspicion left is that SteamVR is calling vkCreateImage internally with VK_IMAGE_LAYOUT_PREINITIALIZED which goes against the Vulkan spec.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions