Skip to content

Add support for VK_KHR_unified_image_layouts #9373

@GloriousPtr

Description

@GloriousPtr

Version/Branch of Dear ImGui:

Version 1.92.7, Branch: (master/docking)

Back-ends:

imgui_impl_vulkan.cpp

Compiler, OS:

Windows 11 + MSVC 22

Full config/build information:

No response

Details:

Keep getting this validation error when using VK_KHR_unified_image_layouts, seems pretty trivial to fix. Just need to use GENERAL layouts everywhere except UNDEFINED when using this extension.

[ERROR] [20:37:45] [2832]  vk[DebugUtilsMessageTypeFlagsEXT{VALIDATION}]: vkQueueSubmit(): pSubmits[0] command buffer VkCommandBuffer 0x1f3d0d42300[Cmd_Buffer_4] expects VkImage 0x3bb00000003bb (subresource: aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, mipLevel = 0, arrayLayer = 0) to be in layout VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_GENERAL.
The Vulkan spec states: If a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, all image subresources identified by that descriptor must be in the image layout identified when the descriptor was written (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-09600)

Screenshots/Video:

No response

Minimal, Complete and Verifiable Example code:

No response

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions