summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <agd5f@yahoo.com>2004-10-22 03:51:58 +0000
committerAlex Deucher <agd5f@yahoo.com>2004-10-22 03:51:58 +0000
commit445ed4b9b61347c866ee67dc0cb110904d667b84 (patch)
tree125405ee01563b2e11477041c1e1ada551e195b2
parent54cffc3fe273cf3c9ed2a8aef833d4bd337a8a09 (diff)
- make the overlay work on crtc2 again
- make PutVideo() MergedFB aware
-rw-r--r--src/radeon_video.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/radeon_video.c b/src/radeon_video.c
index 3198e41..bdabc31 100644
--- a/src/radeon_video.c
+++ b/src/radeon_video.c
@@ -2341,7 +2341,7 @@ RADEONDisplayVideo(
OUTREG(RADEON_OV0_P23_H_ACCUM_INIT, p23_h_accum_init);
scale_cntl = RADEON_SCALER_ADAPTIVE_DEINT | RADEON_SCALER_DOUBLE_BUFFER
- | RADEON_SCALER_ENABLE | RADEON_SCALER_SMART_SWITCH | (0x7f<<16);
+ | RADEON_SCALER_ENABLE | RADEON_SCALER_SMART_SWITCH | (0x7f<<16) | scaler_src;
switch(id){
case FOURCC_UYVY:
OUTREG(RADEON_OV0_SCALE_CNTL, RADEON_SCALER_SOURCE_YVYU422 | scale_cntl);
@@ -2937,14 +2937,24 @@ RADEONPutVideo(
vbi_line_width = 0x640; /* 1600 actually */
else
vbi_line_width = 2000; /* might need adjustment */
+
+ if (info->MergedFB)
+ RADEONChooseOverlayCRTC(pScrn, &dstBox);
if(!xf86XVClipVideoHelper(&dstBox, &xa, &xb, &ya, &yb, clipBoxes, width, height))
return Success;
- dstBox.x1 -= pScrn->frameX0;
- dstBox.x2 -= pScrn->frameX0;
- dstBox.y1 -= pScrn->frameY0;
- dstBox.y2 -= pScrn->frameY0;
+ if (info->MergedFB && info->OverlayOnCRTC2) {
+ dstBox.x1 -= info->CRT2pScrn->frameX0;
+ dstBox.x2 -= info->CRT2pScrn->frameX0;
+ dstBox.y1 -= info->CRT2pScrn->frameY0;
+ dstBox.y2 -= info->CRT2pScrn->frameY0;
+ } else {
+ dstBox.x1 -= pScrn->frameX0;
+ dstBox.x2 -= pScrn->frameX0;
+ dstBox.y1 -= pScrn->frameY0;
+ dstBox.y2 -= pScrn->frameY0;
+ }
bpp = pScrn->bitsPerPixel >> 3;
pitch = bpp * pScrn->displayWidth;