diff options
author | Krzysztof Halasa <khc@pm.waw.pl> | 2010-09-21 22:56:26 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-09-21 22:57:36 +0100 |
commit | bfba6d6148b938588ffbefdf04f4e71683c66dfd (patch) | |
tree | 0b9926406b17bf530d42977cdc8d99c85dd40bce /src/intel_video.c | |
parent | f63c7df6866fed61551d39209b1a262e2a0c4b28 (diff) |
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@chris-wilson.co.uk>
Diffstat (limited to 'src/intel_video.c')
-rw-r--r-- | src/intel_video.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/intel_video.c b/src/intel_video.c index 30a0c375..9c918d5d 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(); } |