Re: xf86-video-intel: 2 commits - src/drmmode_display.c src/i830_exa.c src/i830.h src/i830_memory.c src/i830_video.c
On Wed, 2009-05-20 at 08:20 +0200, Michel Dänzer wrote: 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. Thanks. Somehow both keithp and I missed it. -- Eric Anholt e...@anholt.net eric.anh...@intel.com signature.asc Description: This is a digitally signed message part ___ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg
Re: xf86-video-intel: 2 commits - src/drmmode_display.c src/i830_exa.c src/i830.h src/i830_memory.c src/i830_video.c
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