summaryrefslogtreecommitdiff
path: root/src/legacy_crtc.c
diff options
context:
space:
mode:
authorPierre Ossman <pierre@ossman.eu>2008-12-03 21:49:37 +0100
committerPierre Ossman <pierre@ossman.eu>2008-12-04 22:20:56 +0100
commitd1690f5cc096e2f735c8b407c370a1c1cd7a8afc (patch)
tree28d23088139de1800fb7d18c692d2f1c2df1f24b /src/legacy_crtc.c
parent4d98acbca2e630056bf56cdcd0e23007fded2ced (diff)
Improve tearing avoidance for Xvideo in two steps
- Fix up VLINE handling to trigger whenever scanout is outside the visible area. - Render the video as a scissored triangle as R300+ cannot render a quad in a single pass.
Diffstat (limited to 'src/legacy_crtc.c')
-rw-r--r--src/legacy_crtc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/legacy_crtc.c b/src/legacy_crtc.c
index 2e7063c1..751b5efc 100644
--- a/src/legacy_crtc.c
+++ b/src/legacy_crtc.c
@@ -956,7 +956,8 @@ RADEONInitCrtcRegisters(xf86CrtcPtr crtc, RADEONSavePtr save,
save->crtc_pitch |= save->crtc_pitch << 16;
save->crtc_gui_trig_vline = ((0 << RADEON_CRTC_GUI_TRIG_VLINE_START_SHIFT) |
- (mode->CrtcVDisplay << RADEON_CRTC_GUI_TRIG_VLINE_END_SHIFT));
+ (mode->CrtcVDisplay << RADEON_CRTC_GUI_TRIG_VLINE_END_SHIFT) |
+ RADEON_CRTC_GUI_TRIG_VLINE_INV);
if (info->IsDellServer) {
save->dac2_cntl = info->SavedReg->dac2_cntl;
@@ -1150,7 +1151,8 @@ RADEONInitCrtc2Registers(xf86CrtcPtr crtc, RADEONSavePtr save,
save->crtc2_pitch |= save->crtc2_pitch << 16;
save->crtc2_gui_trig_vline = ((0 << RADEON_CRTC_GUI_TRIG_VLINE_START_SHIFT) |
- (mode->CrtcVDisplay << RADEON_CRTC_GUI_TRIG_VLINE_END_SHIFT));
+ (mode->CrtcVDisplay << RADEON_CRTC_GUI_TRIG_VLINE_END_SHIFT) |
+ RADEON_CRTC_GUI_TRIG_VLINE_INV);
/* check to see if TV DAC is enabled for another crtc and keep it enabled */
if (save->crtc2_gen_cntl & RADEON_CRTC2_CRT2_ON)