Skip to content
  • Kristian Høgsberg's avatar
    intel: Implement the DRI2 invalidate function properly · d4496278
    Kristian Høgsberg authored
    This uses a stamp mechanisms to mark the DRI drawable as invalid.
    Instead of immediately updating the buffers we just bump the drawable
    stamp and call out to DRI2GetBuffers "later".
    
    "Later" used to be at LOCK_HARDWARE time, and this patch brings back
    callouts at the points where we used to call LOCK_HARDWARE.  A new function,
    intel_prepare_render(), is called where we used to call LOCK_HARDWARE,
    and if the buffers are invalid, we call out to DRI2GetBuffers there.
    
    This lets us invalidate buffers only when notified instead of on
    every glViewport() call.  If the loader calls the DRI invalidate
    entrypoint, we disable viewport triggered buffer invalidation.
    
    Additionally, we can clean up the old viewport mechanism a bit,
    since we can just invalidate the buffers and not worry about
    reentrancy and whatnot.
    d4496278