v0.3.2 — bug audit + de-AI rewrite
Pre-release
Pre-release
·
49 commits
to VCK
since this release
Fixed
- VMM
SubmitStagingCmd— uncheckedvkEndCommandBuffer. If End failed, the staging cmd was malformed, the nextvkQueueSubmitwould VUID-fail, AND any pending acquire barriers would issue layout transitions against resources still inUNDEFINED(the release halves never actually ran). VUID-VkImageMemoryBarrier-oldLayout-01197. Now bails with cmd-buffer free + dropsm_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 nowVK_CHECKand bail with cmd-free + pending-acquire drop on failure. - VMM cross-family acquire path — fence path could silently skip the submit. If
vkCreateFenceor the fencedvkQueueSubmitfailed, 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 avkQueueWaitIdle-based fallback so the acquire submit always actually runs (matches the staging fallback). - Swapchain
CreateSwapchain— uncheckedvkCreateSwapchainKHRand bothvkGetSwapchainImagesKHR. 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 whenvkBeginCommandBufferfailed.m_Cmdstayed populated so the caller couldn't tell Begin failed; a laterEnd()would VUID-fail on a never-begun cmd, or never get called and the allocation leaked until pool teardown. Free + zerom_Cmdon Begin failure.
Build
.spvoutputs no longer tracked.glslangValidatorregenerates 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/*.mdresynced to v0.3.2 state. - Wiki tarball rebuilt:
VCK.wiki.v0.3.2.tar.gz.