xf86-video-intel: 3 commits - src/intel_display.c src/intel_dri.c
Chris Wilson
ickle at kemper.freedesktop.org
Thu Sep 27 06:47:02 PDT 2012
src/intel_display.c | 2 +-
src/intel_dri.c | 10 ++++++++--
2 files changed, 9 insertions(+), 3 deletions(-)
New commits:
commit feef53005b57d6b4489a15f8d0db8245dcb0cfaa
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Sep 27 13:36:55 2012 +0100
uxa: Do not attempt to pageflip whilst not master
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/intel_dri.c b/src/intel_dri.c
index ccb10d1..b0e4830 100644
--- a/src/intel_dri.c
+++ b/src/intel_dri.c
@@ -932,6 +932,9 @@ can_exchange(DrawablePtr drawable, DRI2BufferPtr front, DRI2BufferPtr back)
struct intel_pixmap *front_intel = intel_get_pixmap_private(front_pixmap);
struct intel_pixmap *back_intel = intel_get_pixmap_private(back_pixmap);
+ if (!pScrn->vtSema)
+ return FALSE;
+
if (I830DRI2DrawablePipe(draw) < 0)
return FALSE;
commit 5a45cbacb777e478d8fbda9223b0fb5c705d7249
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Sep 27 13:31:27 2012 +0100
uxa: Confirm the pipe is alive before flipping
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/intel_display.c b/src/intel_display.c
index 60af415..ab73e24 100644
--- a/src/intel_display.c
+++ b/src/intel_display.c
@@ -1575,7 +1575,7 @@ intel_do_pageflip(intel_screen_private *intel,
mode->fe_tv_usec = 0;
for (i = 0; i < config->num_crtc; i++) {
- if (!config->crtc[i]->enabled)
+ if (!intel_crtc_on(config->crtc[i]))
continue;
mode->flip_info = flip_info;
commit edc5b7f741a4bb8e9a58b5eb2201fa9304f94ef7
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Sep 27 13:27:20 2012 +0100
uxa/dri: Confirm Drawable is still attached to an active pipe before flipping
If we schedule a flip to happen on a far distant vblank, it is possible
for us to disable the pipes with a modeset, whilst maintaining the fb
size, or with a DPMS command. If the pipe is disabled and we still try
to flip, then we trigger an EINVAL error from the kernel.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/intel_dri.c b/src/intel_dri.c
index 8cab73f..ccb10d1 100644
--- a/src/intel_dri.c
+++ b/src/intel_dri.c
@@ -455,7 +455,7 @@ I830DRI2CopyRegion(DrawablePtr drawable, RegionPtr pRegion,
BoxPtr box;
BoxRec crtcbox;
int y1, y2;
- int pipe = -1, event, load_scan_lines_pipe;
+ int event, load_scan_lines_pipe;
xf86CrtcPtr crtc;
Bool full_height = FALSE;
@@ -467,7 +467,7 @@ I830DRI2CopyRegion(DrawablePtr drawable, RegionPtr pRegion,
* buffer
*/
if (crtc != NULL && !crtc->rotatedData) {
- pipe = intel_crtc_to_pipe(crtc);
+ int pipe = intel_crtc_to_pipe(crtc);
/*
* Make sure we don't wait for a scanline that will
@@ -932,6 +932,9 @@ can_exchange(DrawablePtr drawable, DRI2BufferPtr front, DRI2BufferPtr back)
struct intel_pixmap *front_intel = intel_get_pixmap_private(front_pixmap);
struct intel_pixmap *back_intel = intel_get_pixmap_private(back_pixmap);
+ if (I830DRI2DrawablePipe(draw) < 0)
+ return FALSE;
+
if (!DRI2CanFlip(drawable))
return FALSE;
More information about the xorg-commit
mailing list