Skip to content

v0.1.0 — Vulkan Core Kit

Pre-release
Pre-release

Choose a tag to compare

@devin-ai-integration devin-ai-integration released this 27 Apr 08:43
· 154 commits to VCK since this release

The first release under the VCK name. Project was rebranded from VVCS
("Vulkan-VCS") to VCK — Vulkan Core Kit in commit deced77. This
release establishes the public surface (VCK.h amalgam header), the
three-layer architecture (core / expansion / execution), the in-tree
example builder (build.bat + ANSI menu), the structured logger, and
a Windows CI gate. The project is Windows-only at this point;
cross-platform support lands in v0.2.0.

Added

  • Project rebrandVVCS → VCK (Vulkan Core Kit). README, build
    scripts, header guards, and namespace VCK:: finalised.
  • VCK.h amalgam header — single public include surface; per-class
    declarations stop being duplicated and the amalgam now #includes
    the layer headers directly (rule 21 precursor).
  • Three-layer architecturecore/ (VulkanContext,
    VulkanDevice, VulkanSwapchain, VulkanPipeline,
    VulkanCommand, VulkanSync, VulkanBuffer, VulkanImage,
    VulkanHelpers), expansion (framebuffers, depth, samplers,
    textures, model pipelines, descriptor sets, mipmaps), execution
    (FrameScheduler, JobGraph, GpuSubmissionBatcher,
    BackpressureGovernor, DebugTimeline, TimelineSemaphore).
  • VCK::Config master init-chain control struct — cfg.device,
    cfg.swapchain, cfg.pipeline, cfg.scheduler, cfg.aa, cfg.debug
    knobs; passed once to VulkanContext::Initialize.
  • VulkanPipeline::Config — cull mode, front-face winding, blend
    state, push-constant ranges, descriptor-set layouts.
  • Mailbox present mode by default with FIFO fallback when the
    surface doesn't expose Mailbox.
  • Six VCKExpansion examplesHelloExample, ModelExample,
    VMMExample, FrameSchedulerExample, TripleBufferExample,
    LockstepExample, plus three execution-layer examples
    (SubmissionBatchingExample, JobGraphExample,
    DebugTimelineExample).
  • example/build.bat — Windows MinGW builder with [1]-[9] / [A] / [0]
    ANSI-coloured menu, BUILD_ALL section that compiles every example in
    one pass, and CRLF-safe shader compile via glslangValidator.
  • VMM (Vulkan Memory Manager) — three-layer allocator
    (VmmPersistent / VmmTransient / VmmStaging) wrapping VMA's
    pool-aware allocators. VmmBuffer / VmmImage are typed
    POD-by-handle wrappers. LogStats dump every N frames for the
    example.
  • VCKLog — coloured [VCK] [Tag] body logger with Info /
    Notice / Warn / Error levels and an init-time global toggle
    for debug-gated Info lines.
  • docs/ at repo root — split out from README into
    Build.md, Examples.md, Design.md, Home.md. README slimmed to
    badges + 60-second tour + pointers.
  • GitHub wiki — initial structure; _Sidebar.md, design rules.
  • CI: Windows workflow.github/workflows/build.yml runs
    build.bat A on windows-latest for every push / PR. SDK installer
    • vk_video/*.h sparse-checkout patch (the LunarG installer's
      vulkan_video component is optional but vulkan_core.h hard-includes
      it).
  • .gitattributes — forces CRLF on *.bat so Windows CMD doesn't
    fragment comment lines into garbage tokens.

Changed

  • build.bat redesigned with an ANSI UI; chcp 65001 for UTF-8;
    em-dashes scrubbed from console-bound strings (CMD prints them as ?
    on default codepages).
  • AllocConsole removed in favour of g++'s default
    console-subsystem stdout — no flicker on launch, no leftover console
    if the program crashes.
  • VulkanContext::Initialize drops the leftover
    BuildRequiredExtensions helper (Win32-only dead code with no header
    declaration).

Fixed

  • VMM lifecycle bugs — wrong destruction order between
    VmmTransient ring slots and VmmStaging was leaking allocations
    on Shutdown. Routed VMM logs to a Windows console.
  • FrameScheduler Lockstep + AsyncMax deadlocks — Lockstep was
    waiting on the slot fence before signalling the previous frame's
    release; AsyncMax could double-acquire the same slot under contention.
  • build.bat BUILD_ALL trailing whitespace in set EX=... causing
    the all-build pass to skip examples whose name had a trailing space.
  • MinGW compileSubmitInfo and VCK::Config need explicit
    default ctors; gcc 13 wouldn't aggregate-init through inheritance.
  • JobGraph::Add — counted invalid (out-of-range) deps toward the
    job's wait count, so Execute() could deadlock waiting for a job that
    would never run.
  • VCKExpansion.h — forward-declared VulkanDepthBuffer before
    VulkanFramebufferSet (compile order fix).
  • HelloExample — quad winding flipped so the embedded "Hello,
    World" text isn't back-face culled.