[Intel-gfx] [PATCH 2/2] dri2: Fix interlace computation
Adam Jackson
ajax at redhat.com
Mon Jan 3 23:52:27 CET 2011
scrn->currentMode is a hack for xf86vidmode and in general is wrong for
RANDRful drivers. Use the mode on the associated CRTC instead.
Signed-off-by: Adam Jackson <ajax at redhat.com>
---
src/intel_dri.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/intel_dri.c b/src/intel_dri.c
index 7096369..0e74b7d 100644
--- a/src/intel_dri.c
+++ b/src/intel_dri.c
@@ -433,8 +433,7 @@ I830DRI2CopyRegion(DrawablePtr drawable, RegionPtr pRegion,
/* Wait for the scanline to be outside the region to be copied */
if (pixmap_is_scanout(get_drawable_pixmap(dst)) &&
- intel->swapbuffers_wait &&
- scrn->currentMode) {
+ intel->swapbuffers_wait) {
BoxPtr box;
BoxRec crtcbox;
int y1, y2;
@@ -449,7 +448,7 @@ I830DRI2CopyRegion(DrawablePtr drawable, RegionPtr pRegion,
* Make sure the CRTC is valid and this is the real front
* buffer
*/
- if (crtc != NULL && !crtc->rotatedData) {
+ if (crtc != NULL && crtc->mode && !crtc->rotatedData) {
pipe = intel_crtc_to_pipe(crtc);
/*
@@ -485,7 +484,7 @@ I830DRI2CopyRegion(DrawablePtr drawable, RegionPtr pRegion,
event = MI_WAIT_FOR_PIPEB_SVBLANK;
}
- if (scrn->currentMode->Flags & V_INTERLACE) {
+ if (crtc->mode->Flags & V_INTERLACE) {
/* DSL count field lines */
y1 /= 2;
y2 /= 2;
--
1.7.3.4
More information about the Intel-gfx
mailing list