Multiview rendering in Vulkan using VK_KHR_multiview

I have added a new example to my open source C++ Vulkan examples that demonstrates the use of multiview rendering.

Multiview enables rendering to multiple views simultaneously instead of having to use multiple passes. Esp. with stereoscopic rendering (e.g. for VR related applications) there’s usually little change between two views, like different matrices, and having to do multiple passes for such small differences is inefficient.

With multiview an implementation can now render different views simultaneously in a single pass and the Vulkan extension even adds hints for the implementation to even further improve performance (see correlation mask down below).

This example demonstrates the use of this with the VK_KHR_multiview extension and also implements a basic barrel distortion effect (per-fragment) used in vr applications.