Mir

Comment 15 for bug 1216472

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

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
xmir_screen_for_each_damaged_window(xmir_screen *xmir, xmir_window_proc callback)
{
    xmir_window *xmir_win, *tmp_win;
    xorg_list_for_each_entry_safe(xmir_win, tmp_win, &xmir->damage_list, link_damage) {
        if (xmir_window_has_free_buffer(xmir_win) &&
            xmir_window_is_dirty(xmir_win))
            (*callback)(xmir_win, xmir_window_get_dirty(xmir_win));
    }
}

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?