Skip to content

v0.3.2 — bug audit + de-AI rewrite

Pre-release
Pre-release

Choose a tag to compare

@devin-ai-integration devin-ai-integration released this 27 Apr 08:45
· 49 commits to VCK since this release
b0bd1d0

Fixed

  • VMM SubmitStagingCmd — unchecked vkEndCommandBuffer. If End failed, the staging cmd was malformed, the next vkQueueSubmit would VUID-fail, AND any pending acquire barriers would issue layout transitions against resources still in UNDEFINED (the release halves never actually ran). VUID-VkImageMemoryBarrier-oldLayout-01197. Now bails with cmd-buffer free + drops m_PendingAcquire{Buffers,Images}.
  • VMM cross-family acquire path — unchecked vkBeginCommandBuffer / vkEndCommandBuffer. Recording into a not-begun cmd is undefined; submitting a not-ended cmd is a VUID violation. Both now VK_CHECK and bail with cmd-free + pending-acquire drop on failure.
  • VMM cross-family acquire path — fence path could silently skip the submit. If vkCreateFence or the fenced vkQueueSubmit failed, the acquire barriers never ran, leaving resources stranded in "released to graphics family with no matching acquire" state (UB per spec §7.7.4). Added a vkQueueWaitIdle-based fallback so the acquire submit always actually runs (matches the staging fallback).
  • Swapchain CreateSwapchain — unchecked vkCreateSwapchainKHR and both vkGetSwapchainImagesKHR. Continuing past these on failure left a half-built swapchain; now returns false on device-lost so the caller can teardown (rule 14).
  • VulkanOneTimeCommand::Begin — leaked the allocated cmd buffer when vkBeginCommandBuffer failed. m_Cmd stayed populated so the caller couldn't tell Begin failed; a later End() would VUID-fail on a never-begun cmd, or never get called and the allocation leaked until pool teardown. Free + zero m_Cmd on Begin failure.

Build

  • .spv outputs no longer tracked. glslangValidator regenerates them on every build and bytes differ across glslang versions, so tracking them dirtied every local build against a CI-built tree. Added to .gitignore.

Documentation

  • De-AI rewrite pass. Every comment, doc, README, and CONTRIBUTING that read like marketing copy got the AI tells removed (no more "leverages", "seamlessly", "robust", "this ensures"). Voice is terser, comments explain why not what, README leads with a 3-line elevator pitch, CONTRIBUTING has opinions. Technical accuracy preserved; only the voice changed.
  • CHANGELOG, VCK.h header block, and docs/*.md resynced to v0.3.2 state.
  • Wiki tarball rebuilt: VCK.wiki.v0.3.2.tar.gz.