Do not update root Pixmap private BO in ModifyPixmapHeader in flip mode

In flip mode, the root Pixmap is also being used as the Front buffer of a
DRI2Drawable, and, therefore, its BO is no longer the root scanout
(pOMAP->scanout).  Instead it was switched to one of the per-CRTC scanouts
in OMAPDRI2ScheduleSwap, just before switching to flip mode.

During a Framebuffer resize (RandR12ScreenSetSize()),
drmmode_xf86crtc_resize() calls OMAPModifyPixmapHeader() to update the
root Pixmap's private BO.  However, as noted above, in flip mode, the
root Pixmap's private BO will not actually be the root scanout.  So, we
shouldn't not update it during ModifyPixmapHeader.  Instead, the root
Pixmap's private BO will be updated to the root BO allocated in resize()
at the next transition to blit mode.

Signed-off-by: Daniel Kurtz <>

TEST=On veyron_pinky, daisy and peach_pi:
 Plug HDMI => (extended desktop)
 log in
 start some high FPS activity on internal display (e.g.,
 unplug HDMI
  => Video keeps playing; user is not logged out

Change-Id: Iabde2442cabec66aff0d8999a14b3af5064f8afd
Tested-by: Daniel Kurtz <>
Reviewed-by: Dominik Behr <>
Commit-Queue: Daniel Kurtz <>
Trybot-Ready: Daniel Kurtz <>
1 file changed