Externals: md4c, picojson and Vulkan NanoVG as submodules #8
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "Externals"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Base:
master@865f085. Two commits, 5 files, authored byagent. Replaces the earlier version that copied ~30,000 lines of third-party sources.Provenance of each library
f9e5eb2f9e5eb2111c9be111c9be92ac560(9-line difference)modules-vulkan@a6a3fc7NanoVG-Vulkan: Subiya HEAD + our fixes
The fork's
modules-vulkanbranch is rebuilt on Subiya's latest0f7110f(2026-09-07). Subiya already contains the upload command pool, safe teardown of contexts that never drew, a dummy texture, descriptor-pool retirement instead of device stalls, one descriptor set per call, separateframeCount, and a realnanovg_vk.ctranslation unit. On top of that, five commits:Track texture slots explicitly — stale ids resolve to nothing, slots are reused only when free, updates of unknown/borrowed ids no longer dereference NULL.
Byte offset for partial texture updates — RGBA updates wrote at
dxbytes instead ofdx * 4.Retire replaced textures per frame slot — Subiya destroys images immediately even while a frame in flight samples them; this is the zoom crash we had fixed before.
Free retired descriptor pools after a full frame cycle — Subiya only freed them with the context, leaking every superseded pool.
nvgUpdateImageFromHandleVk— repoint a borrowed image at a resized render target while keeping its id.A CPU-only C test in the fork (
tests/texture_slots.c) covers slot reuse, stale ids, frame-slot retirement and the RGBA update offset; it passes.API change for consumers
Subiya's API replaces our previous wrapper:
nvgCreateVk(const VKNVGCreateInfo*, flags, queue)(pointer),graphicsQueueFamilyIndexinstead ofqueueFamilyIndex,nvgCreateImageFromHandleVk/nvgUpdateImageFromHandleVkinstead ofnvgCreateImageFromVkImageApi/nvgUpdateVkImageApi, andnanovg_vk.hinstead ofnanovg_vk_api.h. Nothing on master uses NanoVG-Vulkan yet; the Graphics PR will be written against this API.Build changes
Md4cbuildsmd4c/src/md4c.c;NanovgVkbuildsnanovg_vulkan/src/nanovg.candnanovg_vk.c;Picojsonis an interface target.imgui_impl_vulkanwhile keeping the GLFW and OpenGL backends.MODULES_BUILD_DESKTOP/MODULES_BUILD_TESTSgates.Verification
Full CMake configure succeeds;
Md4c,NanovgVk,NanovgandImguibuild from the submodules. No GPU runtime test was run.git submodule update --initis needed after checkout.432e66749cto15536ac53dExternals: md4c, picojson and Vulkan NanoVGto Externals: md4c, picojson and Vulkan NanoVG as submodules15536ac53dto876a4eb4d9876a4eb4d9tod8acea9cc6