• Lionel Landwerlin's avatar
    master-clock-default: prevent deadlock with GLX_INTEL_swap_event · 6c7f624f
    Lionel Landwerlin authored
    If we call _clutter_stage_do_update() on a ClutterStage that isn't
    mapped/visible, no GL command will be queued, and the Mesa/DRI2
    implementation of SwapBuffers will do nothing. This causes
    GLX_INTEL_swap_event to not be emitted by the X server because no swapping
    has been requested through DRI2 and it eventually leads to a deadlock
    situation in ClutterStageCogl because we're waiting for an event before we
    start the next draw cycle.
    This patch removes the non mapped stages from the list of stages to process.
    This is consistent with a previous patch for the ClutterMasterClockGdk [1].
    [1] : 5733ad58
clutter-master-clock-default.c 21 KB