• Chris Wilson's avatar
    drm/i915: Wait for pending flips on the GPU · e59f2bac
    Chris Wilson authored
    Currently, if a batch buffer refers to an object with a pending flip,
    then we sleep until that pending flip is completed (unpinned and
    signalled). This is so that a flip can be queued and the user can
    continue rendering to the backbuffer oblivious to whether the buffer is
    still pinned as the scan out. (The kernel arbitrating at the last moment
    to stall the batch and wait until the buffer is unpinned and replaced as
    the front buffer.)
    
    As we only have a queue depth of 1, we can simply wait for the current
    pending flip to complete and continue rendering. We can achieve this
    with a single WAIT_FOR_EVENT command inserted into the ring buffer prior
    to executing the batch, *without* stalling the client.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    e59f2bac
intel_display.c 176 KB