Further notes... The issue seems to occur on frames where some but not all of the outputs are dirty. So one output makes it through to callback (sna_xmir_copy_to_mir), but the other does not:
XMir is intentionally designed to only redraw dirty outputs. So not all get swapped every frame. I wonder however if that is somehow incompatible with how the intel DDX works?
Further notes... The issue seems to occur on frames where some but not all of the outputs are dirty. So one output makes it through to callback (sna_xmir_ copy_to_ mir), but the other does not:
_X_EXPORT void for_each_ damaged_ window( xmir_screen *xmir, xmir_window_proc callback) list_for_ each_entry_ safe(xmir_ win, tmp_win, &xmir->damage_list, link_damage) { has_free_ buffer( xmir_win) &&
xmir_ window_ is_dirty( xmir_win) )
(* callback) (xmir_win, xmir_window_ get_dirty( xmir_win) );
xmir_screen_
{
xmir_window *xmir_win, *tmp_win;
xorg_
if (xmir_window_
}
}
XMir is intentionally designed to only redraw dirty outputs. So not all get swapped every frame. I wonder however if that is somehow incompatible with how the intel DDX works?