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>
This commit is contained in:
parent
f63c7df686
commit
bfba6d6148
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue