diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2009-04-07 11:33:44 -0400 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2009-04-07 11:33:44 -0400 |
commit | 8ec27be3c8043a6ddc816b0b1480dd19f8d73832 (patch) | |
tree | 874ab0e78533f123a9743dc301e15395e1c66048 /src/r600_textured_videofuncs.c | |
parent | f8c7d6a6162196a743f6885ecaf63ba50de1722a (diff) |
radeon: fix Xv vsync for multi-head
Diffstat (limited to 'src/r600_textured_videofuncs.c')
-rw-r--r-- | src/r600_textured_videofuncs.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/r600_textured_videofuncs.c b/src/r600_textured_videofuncs.c index 3dfe151a..88745d5c 100644 --- a/src/r600_textured_videofuncs.c +++ b/src/r600_textured_videofuncs.c @@ -446,17 +446,21 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv) EREG(accel_state->ib, SPI_INTERP_CONTROL_0, 0); - if (pPriv->vsync) - cp_wait_vline_sync(pScrn, accel_state->ib, pPixmap, - radeon_covering_crtc_num(pScrn, + if (pPriv->vsync) { + xf86CrtcPtr crtc = radeon_xv_pick_best_crtc(pScrn, pPriv->drw_x, pPriv->drw_x + pPriv->dst_w, pPriv->drw_y, - pPriv->drw_y + pPriv->dst_h, - pPriv->desired_crtc), - pPriv->drw_y, - pPriv->drw_y + pPriv->dst_h); - + pPriv->drw_y + pPriv->dst_h); + if (crtc) { + RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private; + + cp_wait_vline_sync(pScrn, accel_state->ib, pPixmap, + radeon_crtc->crtc_id, + pPriv->drw_y - crtc->y, + (pPriv->drw_y - crtc->y) + pPriv->dst_h); + } + } accel_state->vb_index = 0; |