diff options
author | Pierre Ossman <pierre@ossman.eu> | 2008-12-03 21:49:37 +0100 |
---|---|---|
committer | Pierre Ossman <pierre@ossman.eu> | 2008-12-04 22:20:56 +0100 |
commit | d1690f5cc096e2f735c8b407c370a1c1cd7a8afc (patch) | |
tree | 28d23088139de1800fb7d18c692d2f1c2df1f24b /src/legacy_crtc.c | |
parent | 4d98acbca2e630056bf56cdcd0e23007fded2ced (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.c | 6 |
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) |