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