On Tue, 2009-05-19 at 10:09 -0700, Eric Anholt wrote: > commit 34660fd2df5d61b77ed7041d32ac29053fc94f5a > Author: Eric Anholt <e...@anholt.net> > Date: Fri May 15 23:21:05 2009 -0700 > > Only sync XV to vblank when drawing to the frontbuffer. > > This fixes emitting syncs to random pipes with boxes bigger than that > pipe's vertical, leading to GPU hangs. > > Bug #21738 > > diff --git a/src/i830_video.c b/src/i830_video.c > index 1c3a5b7..6fec8ff 100644 > --- a/src/i830_video.c > +++ b/src/i830_video.c > @@ -2495,13 +2495,15 @@ I830PutImage(ScrnInfoPtr pScrn, > if (sync) { > BoxPtr box; > int y1, y2; > - int pipe, event, load_scan_lines_pipe; > - > - if (pI830->use_drm_mode) > - pipe = drmmode_get_pipe_from_crtc_id(pI830->bufmgr, crtc); > - else { > - I830CrtcPrivatePtr intel_crtc = crtc->driver_private; > - pipe = intel_crtc->pipe; > + int pipe = -1, event, load_scan_lines_pipe; > + > + if (pPixmap != pScreen->GetScreenPixmap(pScreen)) { > + if (pI830->use_drm_mode) > + pipe = drmmode_get_pipe_from_crtc_id(pI830->bufmgr, crtc); > + else { > + I830CrtcPrivatePtr intel_crtc = crtc->driver_private; > + pipe = intel_crtc->pipe; > + }
This seems to do the opposite of what the commit message says, i.e. only sync when not drawing to the front buffer. -- Earthling Michel Dänzer | http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer _______________________________________________ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg