Skip to content

Conversation

@maverikou
Copy link

Implement VK_KHR_push_descriptor support for the Vulkan backend.
This extension allows bypassing descriptor pools and writing descriptors directly to command buffers.

Effects:

  • ImTextureID becomes VkImageView.
  • Descriptor pools become unnecessary.
  • ImGui_ImplVulkan_AddTexture and ImGui_ImplVulkan_RemoveTexture become unnecessary.

This is somewhat related to the design problem raised in #914
While this PR does not solve the problem, it provides a simpler method which should work on any desktop class hardware since 10 years ago. Feel free to keep the PR as reference only in case this is not suitable for merging.

@ocornut
Copy link
Owner

ocornut commented Sep 22, 2025

Thanks for your PR!
I haven’t looked yet but cc: @yaz0r who was toying with reevaluating how we use texture id for the Vulkan backend.

@yaz0r
Copy link
Contributor

yaz0r commented Sep 22, 2025

My musing was mostly about separating the sampler from the texture object, bringing some parity to with the other back-end if we even change samplers.
This would (I believe) still be compatible with those changes (but would need another push command to set the sampler).

My main comment though is that this adds a bit of complexity as it now handles 2 code-path for textures setting, and not any super clear benefit from it? But I could be missing something.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants