xf86-video-intel: src/intel_display.c src/intel_dri.c src/intel_video.c
Chris Wilson
ickle at kemper.freedesktop.org
Tue Sep 21 14:54:54 PDT 2010
src/intel_display.c | 1 +
src/intel_dri.c | 6 ++++++
src/intel_video.c | 10 ++++++++--
3 files changed, 15 insertions(+), 2 deletions(-)
New commits:
commit bfba6d6148b938588ffbefdf04f4e71683c66dfd
Author: Krzysztof Halasa <khc at pm.waw.pl>
Date: Tue Sep 21 22:56:26 2010 +0100
Allow interlaced modes.
This may not the best method, but it should be a good base on which to
build...
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/intel_display.c b/src/intel_display.c
index 5d85baa..ffcdb73 100644
--- a/src/intel_display.c
+++ b/src/intel_display.c
@@ -1299,6 +1299,7 @@ intel_output_init(ScrnInfoPtr scrn, struct intel_mode *mode, int num)
output->possible_crtcs = kencoder->possible_crtcs;
output->possible_clones = kencoder->possible_clones;
+ output->interlaceAllowed = TRUE;
intel_output->output = output;
list_add(&intel_output->link, &mode->outputs);
diff --git a/src/intel_dri.c b/src/intel_dri.c
index db1f81a..4f66937 100644
--- a/src/intel_dri.c
+++ b/src/intel_dri.c
@@ -367,6 +367,12 @@ I830DRI2CopyRegion(DrawablePtr drawable, RegionPtr pRegion,
event = MI_WAIT_FOR_PIPEB_SVBLANK;
}
+ if (scrn->currentMode->Flags & V_INTERLACE) {
+ /* DSL count field lines */
+ y1 /= 2;
+ y2 /= 2;
+ }
+
BEGIN_BATCH(5);
/*
* The documentation says that the LOAD_SCAN_LINES
diff --git a/src/intel_video.c b/src/intel_video.c
index 30a0c37..9c918d5 100644
--- a/src/intel_video.c
+++ b/src/intel_video.c
@@ -1348,13 +1348,19 @@ intel_wait_for_scanline(ScrnInfoPtr scrn, PixmapPtr pixmap,
event = MI_WAIT_FOR_PIPEB_SVBLANK;
}
+ if (scrn->currentMode->Flags & V_INTERLACE) {
+ /* DSL count field lines */
+ y1 /= 2;
+ y2 /= 2;
+ }
+
BEGIN_BATCH(5);
/* The documentation says that the LOAD_SCAN_LINES command
* always comes in pairs. Don't ask me why. */
OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | pipe);
- OUT_BATCH((box.y1 << 16) | box.y2);
+ OUT_BATCH((y1 << 16) | y2);
OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | pipe);
- OUT_BATCH((box.y1 << 16) | box.y2);
+ OUT_BATCH((y1 << 16) | y2);
OUT_BATCH(MI_WAIT_FOR_EVENT | event);
ADVANCE_BATCH();
}
More information about the xorg-commit
mailing list