Hmm okay, but does it need to be done before vkQueuePresent? Regarding `wayland_surface_ensure_contents`, could we just for instance ensure the surface has contents when it is resized / made visible in wayland_WindowPosChanged?
With `wayland_surface_reconfigure`, it looks awkward that the client drawing is driving the window surface size, I think it should be done separately and client drawing should not involve any windowing logic but simply return errors if the size doesn't match.