It happens with both SDL3 and GLFW.
Less so with GLFW. I have to aggressively resize the window but I think this is because GLFW has a timer/throttle on the resize callback.
MaybeError SwapChain::Initialize(SwapChainBase* previousSwapChain) {
Device* device = ToBackend(GetDevice());
PhysicalDevice* physicalDevice = ToBackend(GetDevice()->GetPhysicalDevice());
VkSwapchainKHR previousVkSwapChain = VK_NULL_HANDLE;
if (previousSwapChain != nullptr) {
// it is supported with vkGetPhysicalDeviceSurfaceSupportKHR.
// multiple backends one after the other. It probably needs to block until the backend
// and GPU are completely finished with the previous swapchain.
DAWN_TRY(CheckVkSuccess(
device->fn.DeviceWaitIdle(device->GetVkDevice()),
"DeviceWaitIdle"));