xf86-video-intel: 2 commits - src/drmmode_display.c src/i830_exa.c src/i830.h src/i830_memory.c src/i830_video.c

Michel Dänzer michel at daenzer.net
Tue May 19 23:20:36 PDT 2009


On Tue, 2009-05-19 at 10:09 -0700, Eric Anholt wrote:
> commit 34660fd2df5d61b77ed7041d32ac29053fc94f5a
> Author: Eric Anholt <eric at 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



More information about the xorg mailing list