So basically, when you run Vulkan, it kinda “takes over” the window. Think of it like Vulkan puts its own TV screen inside your game window and says “okay, I’m in charge of showing stuff here now.”
When you switch to DirectX, you’re telling Vulkan “alright, you can leave now.” Vulkan packs up its things and leaves… but the problem is, it forgets to actually take its TV screen out of the window. So Windows is still showing that last frame Vulkan left behind, like a paused YouTube video.
Meanwhile, DirectX is there, yelling “hey, I’m drawing stuff!” — but Windows ignores it, because it still thinks Vulkan owns the window. That’s why you just see the frozen Vulkan image.
The fix is basically making sure Vulkan really leaves before DirectX moves in. That means:
Wait until Vulkan is 100% done drawing before shutting it down.
Make sure you actually destroy all the stuff Vulkan made for the window (its swapchain, framebuffers, images, etc).
Sometimes you even need to “nudge” Windows to refresh the window (like forcing a redraw), so it stops showing the frozen Vulkan picture.
So in short: Vulkan isn’t secretly still running — it just forgot to give the window back to Windows. DirectX is drawing, but Windows isn’t letting it through until Vulkan fully hands over the keys.