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

2009-05-21 Thread Eric Anholt
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

2009-05-20 Thread Michel Dänzer
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