Comment 8 for bug 930192

Revision history for this message
Sam Spilsbury (smspillaz) wrote :

I've not had a chance to try this, but what do you think about the following fix on the composite plugin? (was reverted a couple of days ago amongst other things)

    timeDiff = compiz::core::timer::timeval_diff (&tv, &mLastRedraw);

    /* handle clock rollback */

    if (timeDiff < 0)
        timeDiff = 0;

    /*
     * Now that we use a "tickless" timing algorithm, timeDiff could be
     * very large if the screen is truely idle.
     * However plugins expect the old behaviour where timeDiff is never
     * larger than the frame rate (optimalRedrawTime).
     * So enforce this to keep animations timed correctly and smooth...
     */

    if (timeDiff > optimalRedrawTime &&
        !reschedule)
        timeDiff = mOptimalRedrawTime;

    painting = true;
    reschedule = false;

    mRedrawTime = timeDiff;