Approaches for clean window resizing

Regarding having nice smooth clean window resizing…

To my knowledge, the recommended way to do this is to avoid repeatedly recreating the swapchain during resize, but to do so periodically - with the aid of sufficiently large swapchain images and leveraging viewport + scissor during the resize (utilising the larger but technically out of date swapchain)

It also seems to be the case that this is only meaningfully supported on platforms where VK_EXT_surface_maintenance1 is available, which defines viewport scaling. The spec indicates that otherwise - for most platforms - the swapchain image size must be equal to the window size.

Further… this requires the use of dynamic viewports… which can only be enabled through VkDynamicState, which can only be defined when creating a pipeline.

Does that all sound correct? Just making sure I didn’t miss anything. I’m testing with a very minimal setup and haven’t gotten to re-enabling pipelines yet.