Add a Vulkan renderer backend to imgui-lwjgl3 - #427
Conversation
|
After a quick glance, I can confidently say that the work generally looks solid. The limited scope, implementation within the app module, and working example are exactly what I haven't typically seen in previous implementations. I'll need a bit more time for a detailed review (as I'm simultaneously undertaking a major rewrite of the internal binding structure), but I don't anticipate your PR will be held up for long. At least from this initial look, I don't see anything that would be a blocker. P.S. I want to specifically mention one thing. Given current trends, if any part of your work was done with the help of AI, please note it somewhere. Either as "co-authored" in the commit message, or if the commit is already pushed, simply add a line in the PR description. I have no bias against this whatsoever and actively use AI in my own work, but I just want transparency on the matter. If all the code was written manually, then all I can say is "impressive, very nice" 😅 In that case, there's no need to mention anything anywhere. |
|
Thank you for the quick look and the kind words! To address your note about AI usage: yes, this work was AI-assisted. The Vulkan backend port and the imgui-app integration were written with the help of DeepSeek, and the commit carries a Quick status for reference:
|
Port of the Dear ImGui Vulkan renderer (imgui_impl_vulkan) into the imgui-lwjgl3 module: - ImGuiImplVulkan renderer with descriptor sets, pipeline creation and font atlas upload; shader SPIR-V shipped as classpath resources - ImGuiImplVulkanH helper structures - createVulkanSurface() helpers for the GLFW and SDL3 backends - imgui-app: VULKAN backend with WindowVulkan (swapchain, render pass, per-frame sync objects and resize handling) - example: ExampleVulkan smoke test Co-authored-by: DeepSeek <noreply@deepseek.com>


Summary
Adds a Vulkan renderer backend (
ImGuiImplVulkan, port ofimgui_impl_vulkan) to theimgui-lwjgl3module, along withImGuiImplVulkanHhelper structures andcreateVulkanSurface()helpers for the GLFW and SDL3 backends. SPIR-V shaders ship as classpath resources.imgui-appgains aVULKANbackend (WindowVulkan) with swapchain, render pass, per-frame sync objects and resize handling, and the example module gets anExampleVulkansmoke test.Type of change
Notes for reviewer
Co-authored-by: DeepSeek <noreply@deepseek.com>trailer.Platform_CreateVkSurfacecallback yet); the sampler descriptor set is bound once insetupRenderState(no per-draw sampler switching).p*setters do not always set the matching*Countfields (VkPresentInfoKHR.pSwapchainsin particular), so counts are set explicitly via native setters.GLFW_SCALE_FRAMEBUFFERis disabled on Wayland to avoid GLFW's viewport interfering with the Vulkan WSI.Fixes #397