1. The iOS create_surface implementation needs to call out to the main thread to create the window (UIKit requirement) 2. get_surface() can be called and will attempt to create the VkSurface from an invalid view/layer. Also pass the layer for MoltenVK so we don't get pesky 'UIView function not called on main thread' warnings.