Is the swapchain class unnecessary?

This may be a bit random, but it seems as though the swapchain is a bit extra for the vulkan sdk.

Memory creation allows you to specify memory type index, and it seems like a good place to capture memory that is currently allocated by swapchains.

Why must we work with swap chains?

Because that would mean you would have the opportunity to mess with the memory behind swap chain images. You’d have to be able to allocate some at will, reapportion it, etc.

Swap chains give the maximum freedom to the display driver to play whatever games it wants with swapchain images and their associated backing memory. Rather than you telling the display system that here’s the image it is to use, it can tell you what image you may use.

The entire system is meant to give display implementations as much freedom as possible, since there is such a wide variety of them.