summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Sapountzis <gsap7@yahoo.gr>2007-03-04 18:21:49 +0200
committerGeorge Sapountzis <gsap7@yahoo.gr>2007-03-04 20:43:31 +0200
commit1e270b411cf691c69194932b864ee2c9db292263 (patch)
treeb2adb2767515cc90b43a4b75909091b108d89399
parent54f9b8c1d01ecb97e2d4d247918f0efc86ed6037 (diff)
[mach64] Bug 5586: overlay scaler limited to 720 pixels on ATI Rage Pro.
-rw-r--r--src/atimach64xv.c27
1 files changed, 21 insertions, 6 deletions
diff --git a/src/atimach64xv.c b/src/atimach64xv.c
index 844f08dc..997fa699 100644
--- a/src/atimach64xv.c
+++ b/src/atimach64xv.c
@@ -765,8 +765,10 @@ ATIMach64ClipVideo
CARD32 HScale, VScale;
/* Check hardware limits */
- if ((Height <= 0) || (Height > 2048) || (Width <= 0) || (Width > 720) ||
- ((Width > 384) && (pATI->Chip < ATI_CHIP_264VTB)))
+ if ((Height <= 0) || (Height > 2048) || (Width <= 0) || (Width > 768) ||
+ ((Width > 384) && (pATI->Chip < ATI_CHIP_264VTB)) ||
+ ((Width > 720) && (pATI->Chip < ATI_CHIP_264GTPRO ||
+ pATI->Chip > ATI_CHIP_264LTPRO)))
return FALSE;
ATIMach64ScaleVideo(pATI, pScreenInfo->currentMode,
@@ -1132,8 +1134,10 @@ ATIMach64AllocateSurface
if (pATI->ActiveSurface)
return BadAlloc;
- if ((Height <= 0) || (Height > 2048) || (Width <= 0) || (Width > 720) ||
- ((Width > 384) && (pATI->Chip < ATI_CHIP_264VTB)))
+ if ((Height <= 0) || (Height > 2048) || (Width <= 0) || (Width > 768) ||
+ ((Width > 384) && (pATI->Chip < ATI_CHIP_264VTB)) ||
+ ((Width > 720) && (pATI->Chip < ATI_CHIP_264GTPRO ||
+ pATI->Chip > ATI_CHIP_264LTPRO)))
return BadValue;
Width = (Width + 1) & ~1;
@@ -1375,10 +1379,15 @@ ATIMach64XVInitialiseAdaptor
{
enc->width = 384;
}
- else
+ else if (pATI->Chip < ATI_CHIP_264GTPRO ||
+ pATI->Chip > ATI_CHIP_264LTPRO)
{
/* Do nothing */
}
+ else
+ {
+ enc->width = 768;
+ }
pAdaptor->nEncodings = nATIMach64VideoEncoding;
pAdaptor->pEncodings = ATIMach64VideoEncoding;
@@ -1426,10 +1435,16 @@ ATIMach64XVInitialiseAdaptor
surf0->max_width = 384;
surf1->max_width = 384;
}
- else
+ else if (pATI->Chip < ATI_CHIP_264GTPRO ||
+ pATI->Chip > ATI_CHIP_264LTPRO)
{
/* Do nothing */
}
+ else
+ {
+ surf0->max_width = 768;
+ surf1->max_width = 768;
+ }
if (pATI->Chip < ATI_CHIP_264GTPRO)
{