[Intel-gfx] [PATCH] Only sync XV to vblank when drawing to the frontbuffer.
Eric Anholt
eric at anholt.net
Sat May 16 08:23:11 CEST 2009
This fixes emitting syncs to random pipes with boxes bigger than that
pipe's vertical, leading to GPU hangs.
Bug #21738
---
src/i830_video.c | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
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;
+ }
}
if (pipe >= 0) {
--
1.6.2.4
More information about the Intel-gfx
mailing list