266 + // Creating the surface will try to swap buffers, so this can not complete
267 + // while the display is off.
268 + auto s_handle = mir_connection_create_surface(connection, ¶ms, surface_callback, this);
This is wrong.
SwitchingBundle will allocate three buffers for a surface before requiring the client to wait for compositing to release the first one.
266 + // Creating the surface will try to swap buffers, so this can not complete create_ surface( connection, ¶ms, surface_callback, this);
267 + // while the display is off.
268 + auto s_handle = mir_connection_
This is wrong.
SwitchingBundle will allocate three buffers for a surface before requiring the client to wait for compositing to release the first one.