On further inspection - we're *not* missing a damage event. When adding counters for our thread-proxy messages, damage events received, and swap_buffers sent XMir definitely receives a Damage event and sends a swap_buffers call in reply. It would appear that the buffers we're submitting have a 1-frame delay between rendering and display.
This could be because XMir is rendering to the wrong buffer, or it could be because Mir is doing something crazy, like triple buffering.
On further inspection - we're *not* missing a damage event. When adding counters for our thread-proxy messages, damage events received, and swap_buffers sent XMir definitely receives a Damage event and sends a swap_buffers call in reply. It would appear that the buffers we're submitting have a 1-frame delay between rendering and display.
This could be because XMir is rendering to the wrong buffer, or it could be because Mir is doing something crazy, like triple buffering.