Quick answer: Vulkan game showing stretched/squashed image after window resize? Swapchain wasn't recreated for new size - listen for VK_ERROR_OUT_OF_DATE_KHR and recreate.

Resize the window. Render area scales but doesn't refit; image stretches.

Recreate on out-of-date

if (result == VK_ERROR_OUT_OF_DATE_KHR) {
  RecreateSwapchain();
}

Listen for the error; rebuild swapchain at new size.

Or rebuild on size change

Hook OS resize events; trigger swapchain recreation. Doesn't rely on the error.

Maintain aspect ratio

Even with correct swapchain, aspect ratio is a project decision. Letterbox or stretch; pick consistently.

“Swapchains are sized at creation. Resize is recreation.”

Test window resize across all aspects (portrait, landscape, square). Aspect-related bugs surface during the transition.

Related reading