The Vulkan backend was the odd one out: it cleared the whole swapchain
image to the frame-counter colour (vkCmdClearColorImage), while every
other backend draws an animated background + a moving vertical bar + a
top-left frame-counter block. Bring it in line.
Use a render pass (loadOp CLEAR paints the animated background, final
layout PRESENT_SRC so no manual barriers) plus vkCmdClearAttachments to
clear the bar and block rects -- so it renders the full FramePattern
while still needing no pipeline / shaders / SPIR-V, matching the
clear-based character of the dx11/dx12/gl backends. Swapchain images
gain COLOR_ATTACHMENT usage (keep TRANSFER_SRC for the capture hook).
No new dependency: render pass / framebuffer / image view /
ClearAttachments are core Vulkan, already available through the vendored
volk submodule. mock_game_test decodes the vk frame-counter block
correctly through the capture layer, same as before.